<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>lib/monomer/core/communicator.rb</filename>
    </added>
    <added>
      <filename>lib/monomer/core/message.rb</filename>
    </added>
    <added>
      <filename>lib/monomer/core/state.rb</filename>
    </added>
    <added>
      <filename>spec/spec_helper.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1,4 +1,5 @@
-monomer
+== monomer
+
   created by Sam Aaron, with contributions from Ullrich Sch&#228;fer
 
 This is a Ruby library to interact with the fantastic box of wonder that is the monome (http://monome.org)
@@ -29,7 +30,7 @@ Enjoy!
 * make sure you have something set up to receive the midi (garage band will do),
 * enjoy!
 
-Caveats
+== Caveats
 
 This library has been developed and tested using a monome 128 and on OS X Leopard. If you have any issues with the 40h, 64 and 256 monomes, please contact me and I'll help as soon as I can. Monomer requires the JRuby interpreter. It's much faster (with cool stuff like JIT support) and has a decent thread implementation. Make sure you're using v1.1.2+ If things aren't working on Windows and you know how to fix them, I'll be happy to receive pull requests. Also cable orientation other than up isn't available yet, although it is planned.
 </diff>
      <filename>README</filename>
    </modified>
    <modified>
      <diff>@@ -3,6 +3,7 @@
 #monomer version of Stretta's Blinken Park: http://docs.monome.org/doku.php?id=app:blinken_park
 
 require File.dirname(__FILE__) + '/../lib/monomer'
+require File.dirname(__FILE__) + '/toggle'
 
 class BlinkinLights &lt; Monomer::Listener
   before_start do
@@ -21,15 +22,15 @@ class BlinkinLights &lt; Monomer::Listener
   end
   
   on_key_down do |x,y|
-    @spawn_rate = ((x.to_f / monome.max_x.to_f) * 1) + 0.2
-    @sustain = y + 0.2
+    @spawn_rate = ((x.to_f / monome.max_x.to_f) * 1) + 0.01
+    @sustain = y + 0.1
     puts &quot;spawn_rate: #{@spawn_rate}&quot;
     puts &quot;sustain:    #{@sustain}&quot;
   end
   
   def self.light_random_led(sustain)
-    x = rand(monome.max_x + 1)
-    y = rand(monome.max_y + 1)
+    x = rand(monome.max_x)
+    y = rand(monome.max_y)
     monome.led_on(x,y)
     @midi.on(x * 8) rescue nil #need to figure out what the midi integers really mean...
     sleep sustain
@@ -39,4 +40,4 @@ class BlinkinLights &lt; Monomer::Listener
   
 end
 
-Monomer::Monome.create.with_listeners(BlinkinLights).start  if $0 == __FILE__
\ No newline at end of file
+Monomer::Monome.create.with_listeners(BlinkinLights, Toggle).start  if $0 == __FILE__
\ No newline at end of file</diff>
      <filename>apps/blinkin_lights.rb</filename>
    </modified>
    <modified>
      <diff>@@ -6,7 +6,7 @@ require File.dirname(__FILE__) + '/../lib/monomer'
 
 class Random &lt; Monomer::Listener
   on_start do
-    10000000.times do
+    10_000_000.times do
       flash_random_led
     end
   end</diff>
      <filename>apps/random.rb</filename>
    </modified>
    <modified>
      <diff>@@ -7,7 +7,6 @@ require File.dirname(__FILE__) + '/../lib/monomer'
 class Toggle &lt; Monomer::Listener
   
   on_key_down do |x,y|
-    @midi.on (y * 8 + x)
     monome.toggle_led(x,y)
   end
 </diff>
      <filename>apps/toggle.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,19 +1,23 @@
 $:.unshift File.dirname(__FILE__) # For use/testing when no gem is installed
 
-#require core
-require 'monomer/communicator'
+#require monomer
 require 'monomer/monome'
-require 'monomer/state'
-require 'monomer/message'
 require 'monomer/listener'
 require 'monomer/midi_out'
 
+#require core
+require 'monomer/core/communicator'
+require 'monomer/core/state'
+require 'monomer/core/message'
+
 #require osc
 require 'osc/osc'
 
 #require java and midi
-require 'java'
-require 'midi/javamidi'
+if RUBY_PLATFORM.include?('java') 
+  require 'java'
+  require 'midi/javamidi'
+end
 
 #require crazy shit
 require '_why/metaid'</diff>
      <filename>lib/monomer.rb</filename>
    </modified>
    <modified>
      <diff>@@ -39,7 +39,7 @@ module Monomer
       meta_def :on_start do
         block
       end
-      
+            
       def start
         thread = Thread.new do
           self.class.on_start.call
@@ -51,12 +51,13 @@ module Monomer
       meta_def :on_key_down do
         block
       end
-      
+
       def button_pressed(x,y)
         Thread.new do
           self.class.on_key_down.call(x,y)
         end
       end
+      
     end
     
     def self.on_key_up(&amp;block)</diff>
      <filename>lib/monomer/listener.rb</filename>
    </modified>
    <modified>
      <diff>@@ -13,7 +13,7 @@ module Monomer
     
     
     def off(note, velocity=1)
-      @midi_out.send(Midi::MessageOff.new(velocity, note))
+      @midi_out.send(Midi::MessageOff.new(velocity, note  ))
     end
     
     def yo(m)</diff>
      <filename>lib/monomer/midi_out.rb</filename>
    </modified>
    <modified>
      <diff>@@ -16,8 +16,8 @@ module Monomer
     
     def initialize(monome_type='128', prefix='monomer', in_port=8000, out_port=8080)
       raise &quot;Unknown monome type&quot; unless ['40h', '64', '128', '256'].include? monome_type
-      @state = State.new(monome_type)
-      @communicator = Communicator.new(self, @state, monome_type, prefix, in_port, out_port)
+      @state = Core::State.new(monome_type)
+      @communicator = Core::Communicator.new(self, @state, monome_type, prefix, in_port, out_port)
       @listeners = []
       @button_pressed_listeners = []
       @button_released_listeners = []
@@ -107,6 +107,8 @@ module Monomer
     
     def determine_listener_hooks
       @listeners.each do |listener|
+        puts &quot;listener: #{listener}&quot;
+        puts &quot;listener.methods.sort - Object.new.methods: #{listener.methods.sort - Object.new.methods}&quot;
         @button_released_listeners  &lt;&lt; listener if listener.respond_to? :button_released
         @button_pressed_listeners   &lt;&lt; listener if listener.respond_to? :button_pressed
         @on_start_listeners         &lt;&lt; listener if listener.respond_to? :start</diff>
      <filename>lib/monomer/monome.rb</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>lib/monomer/communicator.rb</filename>
    </removed>
    <removed>
      <filename>lib/monomer/message.rb</filename>
    </removed>
    <removed>
      <filename>lib/monomer/state.rb</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>c0e6da96b47c4fb19fc85c91944e1f7c2300ae85</id>
    </parent>
  </parents>
  <author>
    <name>Sam Aaron</name>
    <email>samaaron@gmail.com</email>
  </author>
  <url>http://github.com/samaaron/monomer/commit/b7f37597f581a565e1d8b162d573a713519131d1</url>
  <id>b7f37597f581a565e1d8b162d573a713519131d1</id>
  <committed-date>2008-06-19T15:02:19-07:00</committed-date>
  <authored-date>2008-06-19T15:02:19-07:00</authored-date>
  <message>shuffled core classes about into their own module to try and make the separation between end-user classes and internal classes more clear. Plus lots of other changes to do with internal refactoring. Still more work to do though...</message>
  <tree>90fc1758b18ba1fa1157d1d35e47b09596208dd7</tree>
  <committer>
    <name>Sam Aaron</name>
    <email>samaaron@gmail.com</email>
  </committer>
</commit>
