[PD] [OT] Sequencing design

Hans-Christoph Steiner hans at eds.org
Sun Dec 4 17:10:09 CET 2005


Oops:

http://at.or.at/hans/solitude

I use the [shell] external, but its optional, its only used for  
auto-generating filenames when recording.

.hc


On Dec 3, 2005, at 5:22 PM, dorkvac bazynchnai wrote:

> hi hans
>
> the solitude link appears to be broken (at least on this side) but i'd  
> be interested in that patch (as long as it doesn't require  
> non-standard externals)
>
> -brendan
>
> Hans-Christoph Steiner wrote:
>
>>
>> Hmm, now that you mention data structures, I build a sequencer of  
>> sorts  starting from the data structures example included in Pd.  You  
>> can  download it here:
>>
>> http://at.or.at/solitude/
>>
>> Basically, it sequences playing lots of overlapping samples.  But its  
>>  not your typical sequencer.
>>
>> .hc
>>
>> On Dec 3, 2005, at 5:33 AM, Frank Barknecht wrote:
>>
>>> Hallo,
>>> bstine at telus.net hat gesagt: // bstine at telus.net wrote:
>>>
>>>> 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.
>>>
>>>
>>> It is indeed a big question. There are several approaches to
>>> sequencing in general, some are also used in Miller's Pd docs and of
>>> course in his book (http://crca.ucsd.edu/~msp/techniques.htm) in the
>>> chapter on control computations. In the RRADical sequencers mentioned
>>> here I took a very simple approach, which is limited to pop music in
>>> 4/4 and with constant beat dvisions: I just divide a beat into 16 or
>>> 32 event slots, which are visited by a counter. If there is an event
>>> stored, when the counter hits a specific slot, it is output. Events
>>> can be one or two numbers in the current sequencers. This looks like:
>>>
>>> slot ev1 ev2
>>> 0    60 127
>>> 1
>>> 2    60 0
>>> 3    40 75
>>> ...
>>> 16   60 127
>>>
>>> Then I just use many of these to build real patterns.
>>>
>>> Note that this is indeed very limited. A better approach IMO is to
>>> introduce a more general notion of an "Event" and then store the time
>>> of occurence or the so called Inter-onset Interval. The IOI is more
>>> popular in computer music I think, as you can do a lot of fine
>>> calculations on it, like scaling the IOI will make a sequence run in  
>>> a
>>> differnet tempo etc.
>>>
>>> [qlist] uses IOI times and can be used to record and playback events.
>>> However it's hard to get at the data stored inside a qlist to do
>>> funkier things. To find out the IOI between two events a
>>>
>>>   [t b b]
>>>   |    |
>>>   [timer]
>>>
>>> has proven to be very reliable.
>>>
>>> Miller's data structure sequencer in the data structure examples is
>>> also somehow using IOI internally. The data structure events use
>>> x-position as onset times, but then Miller calculates the actual IOIs
>>> to drive a [delay] to the next event.
>>>
>>> Data structures are really nice to do sequencing. You can put a lot  
>>> of
>>> data, not just note and velocity, into the structure, position it and
>>> play it, do transformations by traversing all notes etc.
>>>
>>> An example on how to record into a data structure windows is here:
>>> http://royalrabbit.goto10.org/svn/goto10/pd-patches/fbar/pipeseq/
>>>
>>> Instead of using a data structure window to store a sequence, in  
>>> other
>>> patches I also used the h_list and h_map externals from PDConainter
>>> for sequencing. They lack the graphical appearance, but have some
>>> other nice features. The basic idea there is to either [timer]-tag
>>> rows in a [h_list], then sent the complete list to [pipe], or use a
>>> [del]-construction similar to the data structure sequencer which uses
>>> IOI times. This is more flexible if you want to to stuff like tempo
>>> changes while a sequence is playing - which never happens in techno
>>> music so there all this unnecessary anyways.
>>>
>>> For reading about this stuff, I can for example recommend Robert
>>> Rowe's "Machine Musicianship" at MIT Press, IIRC.
>>>
>>> Ciao
>>> --   Frank Barknecht                 _ ______footils.org_  
>>> __goto10.org__
>>>
>>> _______________________________________________
>>> PD-list at iem.at mailing list
>>> UNSUBSCRIBE and account-management ->   
>>> http://lists.puredata.info/listinfo/pd-list
>>>
>>
>> ______________________________________________________________________ 
>> __ ____
>>
>> "I have the audacity to believe that peoples everywhere can have  
>> three  meals a day for their bodies, education and culture for their  
>> minds,  and dignity, equality and freedom for their spirits."
>>                                             - Martin Luther King, Jr.
>>
>>
>> _______________________________________________
>> PD-list at iem.at mailing list
>> UNSUBSCRIBE and account-management ->  
>> http://lists.puredata.info/listinfo/pd-list
>>
>>

________________________________________________________________________ 
____

                     There is no way to peace, peace is the way.
						        				-A.J. Muste





More information about the Pd-list mailing list