Oh, well do check out the RRadical sequencer then. It's in the abstractions folder of CVS. It is a piano roll type, so you could probably get a lot out of that.
~Kyle
On 12/2/05, bstine@telus.net bstine@telus.net wrote:
hey Kyle! I'm definitely interesting in patch state saving, but what i'm looking for is theory for the sequencing mechanism. It's because I'm trying to write a simple sequencer...pretty much just a piano roll.
I figure the "sequencer" is either a callback that's called every X milliseconds or some kind of event queue with timestamps thats checked by a thread. I tried making a callback mechanism in java and it was awful, skipped beats all the time. The event queue seems to work better but I was wondering what other people have done. The [metro] object in PD has perfect timing, if anyone could explain how it works I'd much appreciate it.
thanks
-brendan
Quoting Kyle Klipowicz kyleklip@gmail.com:
This is a good question! Hopefully Frank's RRadical project, in particular the Memento class of state saving abstractions, will make this easier to deal with. Also the new [list] class of objects should help out with this stuff.
Unfortunately, if you are a newbie, it can be a bit of a pain in the ass to install Memento/RRadical and have it work. This will change, I'm guessing, once Frank updates it to Pd 0.39 standards of graph on parent and list.
In the meantime, you can use things like [textfile] and [qlist] to keep track of notes, velcities, times, and other controller messages.
Anyone with more experience want to offer some expertise?
~Kyle
On 12/2/05, bstine@telus.net bstine@telus.net wrote:
Hi all
I know this is a little off topic, but this seems like the best place to
ask. I
was wondering what the best way to implement a sequencer is. I know that's
a
big question, but I mean in the most abstract way. I've been experimenting
with
java and have tried keeping the MIDI notes in a sorted list and have a
thread
that, after its started, checks the elapsed time (in 1/64th ticks) compared
to
the first MIDI note's timestamp. If the timestamp matches the current tick
then
it does something with that note. I've been sending messages to Pure Data
and
tested the accuracy of the clock with the [timer] object, but sometimes
there
are audible differences in the timing when trying to output notes at
regular
intervals.
I hope that paragraph was coherent...my question is what is a good way to implement a sequencer (if anyone has an abstract explanation)? I'd like to
be
able to record notes on the fly, if possible.
thanks
-brendan
PD-list@iem.at mailing list UNSUBSCRIBE and account-management ->
http://lists.puredata.info/listinfo/pd-list
-- http://perhapsidid.blogspot.com (((())))(()()((((((((()())))()(((((((())()()())()))) (())))))(()))))))))))))(((((((((((()()))))))))((()))) ))(((((((((((())))())))))))))))))))__________ _____())))))(((((((((((((()))))))))))_______ ((((((())))))))))))((((((((000)))oOOOOOO
-- http://perhapsidid.blogspot.com (((())))(()()((((((((()())))()(((((((())()()())()))) (())))))(()))))))))))))(((((((((((()()))))))))((()))) ))(((((((((((())))())))))))))))))))__________ _____())))))(((((((((((((()))))))))))_______ ((((((())))))))))))((((((((000)))oOOOOOO