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

