rogerallen / ramu

Automatically exported from code.google.com/p/ramu
0 stars 0 forks source link

Channel enhancements #3

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What is the issue in the broadest sense?

users cannot simply replace ramu.Channel with ramu.osxmidi.Channel

How do you propose we solve this issue?

1. The handling of time outside osxmidi should be in floating-point
seconds.  Internally, it can be in long 'nanos'.
2. Reconcile the channel vs osxmidi.channel interface to be exactly the
same thing.

Original issue reported on code.google.com by rallen on 24 May 2009 at 5:09

GoogleCodeExporter commented 9 years ago
Hmm, how to reconcile this with the "now()" vs. time=0.0 idea...

Original comment by rallen on 24 May 2009 at 5:12

GoogleCodeExporter commented 9 years ago
Seems we need another layer of abstraction...

Notes & SequencedNotes should be timed in terms of beats.

Channels are timed in seconds.

Adapting these concepts of time should be done via some adapter that converts 
beats
to seconds.  tempo=beats/second is all that's required.   Other things like 4/4 
time
= 4 beats/measure & quarter-note = 1 beat seem to live near here too.  Perhaps
different 'channels' require different time-adapters.  Seems like we should 
call this
object Rhythm.

--

re: now() - seems like every channel can have that.  stdout channel can just 
keep a
rnning count of what has been sent.

similarly, each channel can tell you what one second is.  1.0?  1e9? 

Original comment by rallen on 26 May 2009 at 5:44

GoogleCodeExporter commented 9 years ago
As of r10, you can interchange ramu.channel & ramu.osxmidi.channel.  Time is
specified in float(1.0) = 1 second.

Original comment by rallen on 31 May 2009 at 4:05