<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>lib/cosy/renderer/midi_gamelan_renderer.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -35,6 +35,7 @@ Cosy depends on the following Ruby libraries:
 *  midilib 
 *  midiator
 *  osc (optional)
+*  gamelan (optional)
 
 To run Cosy you will need to install the gems for those libraries:
 
@@ -48,6 +49,11 @@ Optionally, if you want to use OSC support, you will also need to:
 
 	gem install osc
 	
+Optionally, if you want to use the &lt;a href=&quot;http://github.com/jvoorhis/gamelan&quot;&gt;Gamelan&lt;/a&gt; 
+scheduler you also need:
+
+	gem install gamelan	
+	
 	
 ## Running Cosy ##
 
@@ -80,13 +86,12 @@ The closest thing to documentation right now is the online preview at:
 
 TODOs:
 
-* Support a mode where octave selection is based on proximity to the previous note
-  (instead of always using the previous note's octave, stay within a perfect fourth
-  of the previous note)
 * Allow independent control over the note duration and the inter-note-onset intervals
   (i.e. support staccato vs. legato)
 * A way to change the current octave, pitch, velocity, and duration without
   outputting anything
+* Pre-render to a Timeline object to make rendering and embedding Cosy easier
+* Methods for transposition, inversion, retrograde, inverting chords, etc
 * Allow chains to be formed across scopes. For example, support:&lt;br/&gt;
   $melody=e:q d c:h; $melody:mp
 * When chaining, I don't always want the pitch to advance when the
@@ -100,6 +105,7 @@ TODOs:
 * a clean API for manipulating the sequencing tree on-the-fly as the sequencer is running
   (interactive control as well as self-modifying sequences)
 * arpeggiators
+* pitches from summed intervals across independent parallel sequences a la Numerology
 * new node traversal behaviors, for example loops that go up/down instead of starting over when the
   last note is reached
 </diff>
      <filename>README.md</filename>
    </modified>
    <modified>
      <diff>@@ -40,6 +40,11 @@ module Cosy
         ) { |val| options.osc=true }
 
         opts.separator &quot;&quot;
+        opts.on(&quot;--gamelan&quot;, 
+          &quot;Use the gamelan scheduler.&quot;
+        ) { |val| options.gamelan=true }
+
+        opts.separator &quot;&quot;
         opts.on(&quot;-h&quot;, &quot;--help&quot;, 
           &quot;Display this help and exit.&quot;
         ) { |val| puts opts.to_s; exit }
@@ -83,7 +88,8 @@ else
   cosy_syntax = &quot;&quot;
   File.open(input_path) do |file| 
     file.each_line do |line| 
-      if not line[0..1] == &quot;--&quot; # a comment
+      first_two = line[0..1]
+      if first_two != &quot;--&quot; and first_two != &quot;##&quot;  # a comment
         cosy_syntax += line
       end
     end
@@ -98,12 +104,20 @@ begin
       :output =&gt; output_path
     }).render
   else
-    require 'cosy/renderer/midi_renderer'
-    if options.osc
-      require 'cosy/renderer/midi_osc_renderer'    
-      clazz = Cosy::MidiOscRenderer
+    if options.gamelan
+      require 'cosy/renderer/midi_gamelan_renderer'
+      clazz = Cosy::MidiGamelanRenderer
+      # TODO: this won't work with OSC
+      # I think I should merge all of these options into one renderer that uses
+      # the gamelan scheduler and supports OSC
     else
-      clazz = Cosy::MidiRenderer
+      require 'cosy/renderer/midi_renderer'
+      if options.osc
+        require 'cosy/renderer/midi_osc_renderer'    
+        clazz = Cosy::MidiOscRenderer
+      else
+        clazz = Cosy::MidiRenderer
+      end
     end
     clazz.new({
       :input  =&gt; cosy_syntax, </diff>
      <filename>bin/cosy</filename>
    </modified>
    <modified>
      <diff>@@ -3,6 +3,8 @@ These examples can be converted to a MIDI file with the bin/cosy command.
 Run bin/cosy with no arguments for usage instructions.
 
 -- Cosy input files can have comments by starting a line with two hyphens,
--- like this line.
+## or two hash marks, like these lines.
 
+### I like to use 3 or more hash marks to avoid any chance of confusion with
+### Cosy's #label syntax.
 </diff>
      <filename>examples/README</filename>
    </modified>
    <modified>
      <diff>@@ -111,8 +111,7 @@ module Cosy
             renderer.render
             stop_time = renderer.time if renderer.time &gt; stop_time
           end
-          @time = stop_time
-          next  
+          @time = stop_time 
 
         when NoteEvent
           pitches, velocity, duration = event.pitches, event.velocity, event.duration
@@ -153,9 +152,9 @@ module Cosy
               end
             end
           end
-
           STDERR.puts &quot;Unsupported Event: #{event.inspect}&quot;
         end
+        
       end
 
       if not @parent</diff>
      <filename>lib/cosy/renderer/midi_file_renderer.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>eafb0f070bf72855628b9f70adfe23ba3509c301</id>
    </parent>
  </parents>
  <author>
    <name>Adam Murray</name>
    <email>adamjmurray@gmail.com</email>
  </author>
  <url>http://github.com/adamjmurray/cosy/commit/693185b19d4117b9580e1790734c8a3d69b023f6</url>
  <id>693185b19d4117b9580e1790734c8a3d69b023f6</id>
  <committed-date>2009-02-10T23:12:20-08:00</committed-date>
  <authored-date>2009-02-10T23:12:20-08:00</authored-date>
  <message>Finally committed my realtime renderer based on the gamelan scheduler. 

I really need to refactor those renderer classes...

Cosy files now support ## style comments because I hate --</message>
  <tree>3df449c1380fc6dacc41c0d64e7ae0a9af32f874</tree>
  <committer>
    <name>Adam Murray</name>
    <email>adamjmurray@gmail.com</email>
  </committer>
</commit>
