<rdf:RDF
    xmlns:s='http://snipsnap.org/rdf/snip-schema#'
    xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'
    xml:base='http://www.loadbang.net/rdf'>
    <s:Snip rdf:about='http://www.loadbang.net/rdf#Software/net.loadbang.shado/README'
         s:name='Software/net.loadbang.shado/README'
         s:cUser='nick'
         s:oUser=''
         s:mUser='nick'>
        <s:content>{code:none}&#xA;OVERVIEW&#xA;&#xA;shado is a compositing and sprite library for the monome. It is&#xA;written in Java, but designed to be dynamically scripted in a language&#xA;like Python and hosted in MaxMSP (or Pluggo, for VST plugins). The&#xA;common usage scenario is to install shado alongside our Java Python&#xA;interpreter in a MaxMSP system, and drive it via Python scripts&#xA;triggered and controlled by MaxMSP messages.&#xA;&#xA;The file README.MANUAL will eventually be the manual for shado; for&#xA;now, it contains an explanation of the shado architecture - quite&#xA;possibly, along with the examples, just about enough to start writing&#xA;shado &quot;programs&quot;.&#xA;&#xA;See README.RELEASES for information about releases, and any API&#xA;changes.&#xA;&#xA;INSTALLATION&#xA;&#xA;This package contains the core shado library, plus a copy of the&#xA;net.loadbang OSC (Open SoundControl) library, plus all sources and&#xA;javadocs.  If you are a hardcore Java developer as well as a monome&#xA;user, this might be all you need, but it&apos;s more likely that you will&#xA;want to run MaxMSP and use Python as your scripting language.&#xA;&#xA;(NB: we have used Max 5 for our example patchers. Since most of the&#xA;work is in Python, and since the script systems also run under Max 4,&#xA;we&apos;ve back-ported the &quot;simple&quot; demo patcher to Max 4.)&#xA;&#xA;For Python, you need the net.loadbang.jython package:&#xA;&#xA;&#9;http://www.loadbang.net/space/Software/net.loadbang.jython&#xA;&#xA;Feel free to opt for the Groovy interpreter instead, but all our&#xA;example scripts are in Python, and we marginally prefer it as a&#xA;language: it&apos;s slightly clearer to read, and it has generators and&#xA;list comprehensions, which are very well suited to building sequencers&#xA;and musical algorithms.&#xA;&#xA;shado now makes some use of net.loadbang.lib so we now include it&#xA;here. This library is also used by the Jython and Groovy packages. We&#xA;need net.loadbang.lib-1.4; older releases of Jython and Groovy have&#xA;1.3 or earlier, so discard these versions.&#xA;&#xA;The net.loadbang.jython release comes with its own example patcher and&#xA;a pile of scripts, so it may be a good familiarisation exercise to&#xA;explore these before working with shado proper.&#xA;&#xA;Once you have installed net.loadbang.jython as per its instructions,&#xA;copy the enclosed JAR files (net.loadbang.osc-[...].jar and&#xA;net.loadbang.shado-[...].jar) into the Cycling &apos;74/java/lib directory&#xA;(or modify max.java.config.txt to include the appropriate directory).&#xA;Be sure to remove old or obsolete versions.&#xA;&#xA;Copy the files in the examples/ directory into Max&apos;s search path. (If&#xA;you are using the free Max Runtime, copy them into a directory inside&#xA;the MaxMSP application directory.)&#xA;&#xA;GETTING STARTED&#xA;&#xA;Try to get the examples in the &quot;simple&quot; directory up and&#xA;running. Since shado uses OSC, you will need to run MonomeSerial in&#xA;OSC mode.&#xA;&#xA;If your monome is on the same machine as Max, and you use a&#xA;prefix &quot;/shado&quot; with the default OSC ports, then the example patcher&#xA;(max5/simple.maxpat) and its scripts should run unaltered (although&#xA;the examples assume a monome sixty four). Fire up the patcher, select&#xA;the name of a script from the tabs, turn on the metros, and push some&#xA;monome buttons.&#xA;&#xA;If you want to configure anything, edit the file config.py and change&#xA;the declarations at the top. All the examples use this module to build&#xA;the OSC renderer.&#xA;&#xA;Change the &quot;udpreceive&quot; statement in the Max patcher if you want to&#xA;listen on a different OSC port. (If you don&apos;t have a Max 5 license,&#xA;you can edit the .maxpat file directly in a text editor.)&#xA;&#xA;More detailed documentation will be coming soon. In the meantime, look&#xA;at the file README.MANUAL: it contains an overview of shado&apos;s&#xA;architecture and components, and should have enough fragments of&#xA;Python code to get you started. Peruse the javadocs for more&#xA;detail.&#xA;&#xA;This release contains all the Python scripts and the patcher for the&#xA;Gerry Anderson UFO demo - the system is called &quot;tapestry&quot;. If you feel&#xA;brave, have a poke around.&#xA;&#xA;ISSUES&#xA;&#xA;We&apos;re not yet using our OSC library for input - it needs a tidy-up -&#xA;so button press events are currently captured in Max and routed into&#xA;the system via Python. (This makes it a bit tricky to kick off a shado&#xA;program standalone from a console, although this is definitely one of&#xA;our aims.)&#xA;&#xA;LICENSE&#xA;&#xA;This software is issued under the terms of the GNU General Public&#xA;License (see COPYING). NOTE: the other loadbang.net libraries are&#xA;issued under the GNU Lesser General Public License, but the shado&#xA;library has a more restrictive (or, if you prefer, &quot;more free&quot;)&#xA;license in that the library cannot be used in proprietary programs -&#xA;we regard shado as a component of artistic expression, and do not feel&#xA;that proprietary use fits with this philosophy.&#xA;&#xA;This program is free software: you can redistribute it and/or modify&#xA;it under the terms of the GNU General Public License as published by&#xA;the Free Software Foundation, either version 3 of the License, or (at&#xA;your option) any later version.&#xA;&#xA;This program is distributed in the hope that it will be useful, but&#xA;WITHOUT ANY WARRANTY; without even the implied warranty of&#xA;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU&#xA;General Public License for more details.&#xA;&#xA;You should have received a copy of the GNU General Public License&#xA;along with this program.  If not, see http://www.gnu.org/licenses/ .&#xA;&#xA;CONTACT&#xA;&#xA;Nick Rothwell, nick@cassiel.com / nick@loadbang.net&#xA;{code}</s:content>
        <s:mTime>2008-07-23 18:38:54.0</s:mTime>
        <s:cTime>2008-06-27 21:33:10.0</s:cTime>
        <s:comments
             rdf:type='http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag'/>
        <s:snipLinks>
            <rdf:Bag>
                <rdf:li rdf:resource='http://www.loadbang.net/rdf#Software/net.loadbang.shado'/>
                <rdf:li rdf:resource='http://www.loadbang.net/rdf#'/>
                <rdf:li rdf:resource='http://www.loadbang.net/rdf#Software/net.loadbang.shado/README.MANUAL'/>
                <rdf:li rdf:resource='#snipsnap-search'/>
                <rdf:li rdf:resource='http://www.loadbang.net/rdf#Software/net.loadbang.jython'/>
                <rdf:li rdf:resource='http://www.loadbang.net/rdf#Software/net.loadbang.shado/Tutorials'/>
                <rdf:li rdf:resource='http://www.loadbang.net/rdf#Software/net.loadbang.web'/>
                <rdf:li rdf:resource='#nick'/>
                <rdf:li rdf:resource='http://www.loadbang.net/rdf#Software/Registry'/>
            </rdf:Bag>
        </s:snipLinks>
        <s:attachments
             rdf:type='http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag'/>
    </s:Snip>
</rdf:RDF>
