Thanks now it is clear! libero
> Date: Thu, 27 Dec 2007 23:30:44 +0000 > From: Andy Farnell <[EMAIL PROTECTED]> > Subject: Re: [PD] complex metronomes sequencing problem > To: "Libero Mureddu" <[EMAIL PROTECTED]> > Cc: pd-list@iem.at > Message-ID: <[EMAIL PROTECTED]> > Content-Type: text/plain; charset=US-ASCII > > > > Sorry Libero, I made an error in that post that may have lead you on > a goose chase. I meant to say [t f f f f f], implying that the float > (representing time) to which you are comparing time points with [==] > should be distributed across all objects in an ordered way. > > > On Mon, 24 Dec 2007 14:20:10 +0100 > "Libero Mureddu" <[EMAIL PROTECTED]> wrote: > > > Hi, > > > > On Dec 24, 2007 12:28 AM, Andy Farnell <[EMAIL PROTECTED]> wrote: > > > On Mon, 24 Dec 2007 00:00:13 +0100 > > > "Libero Mureddu" <[EMAIL PROTECTED]> wrote: > > > > > > > Hi Andy, > > > > > > > > thanks for your message, it clarified a lot my problem. > > > > In fact I need a "time aware" synchronous system, could you send a > > > > basic example of that? I can guess that I need a metro plus counter > > > > and different [mod]s, but I dont get how to use [moses] and [change] > > > > for that. > > > > > > [moses] comes in when you want to create separate bars or phrases > > > and attach copies or similar parts to them. > > > > > > Say we have a subpatch or abstraction that plays a phrase [melody1] > > > and it takes a count from 0-127, and another phrase in [melody2] that > > > is different but the same length. To have them alternate you can say > > > > > > [count 256] > > > | > > > [moses 127] > > > | \ > > > [melody1] [- 128] > > > | > > > [melody2] > > > > > > [change] is useful when you did an integer division or remainder > > > with [/][int] or [div]. Even though the float output doesn't change > > > in value it is repeated for every bang of the timebase. For example > > > a counter mod 16 divided into four bars or four like this > > > > > > [count 16] > > > | > > > [/ 4] > > > | > > > [int] > > > > > > will output {0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3} > > > > > > Adding [change] turns this into {0, 1, 2, 3] changing on every fourth > > > beat. > > > > > > > > > > > In another attempt that I did, I made a select with many arguments, > > > > each one representing a "playing point". Unfortunately it seems > > > > impossible to send a list of arguments as message and set dynamically > > > > all the values for set (at least I was unable to do that). > > > > [multiselect] that should do that is broken. > > > > > > > > > This idiom is useful to make a n beat sequencer with settable > > > > > > [unpack f f f] > > > | | | > > > \ | \ | \ | > > > [==] [==] [==] ....... > > > > > > With all the left inlets connected to the timebase (remember to use a > > > big [t b b b b b ...]. A 1 is output for each match of a list you can > > > update. Use [sel 1] to turn that to a bang if necessary. > > > > > > > Do you mean something like the attached patch? Where the big [t b b b > > b b...] should be placed and for what? > > Thanks a lot, > > > > Libero > > > > > > > > > > > > > > Do you have an example of the sample timing based idea that you > > > > mentioned? In fact, the compositions I'm working on are not longer > > > > than 4-5 minutes. > > > > > > > > Thanks > > > > Libero > > > > > > > > > > There's a few things to browse here, including an early example of a > > > signal > > > domain composition with loops and synths; > > > > > > http://www.obiwannabe.co.uk/html/music/musictuts/Composition-000/Composition-000.html > > > http://www.obiwannabe.co.uk/html/music/musictuts/Composition-001/Composition-001.html > > > http://www.obiwannabe.co.uk/html/music/musictuts/Composition-002/Composition-002.html > > > http://www.obiwannabe.co.uk/html/compositions/compositions.html > > > > > > > > > > > From: Andy Farnell <[EMAIL PROTECTED]> > > > > > Subject: Re: [PD] complex metronomes sequencing problem > > > > > To: pd-list@iem.at > > > > > Message-ID: <[EMAIL PROTECTED]> > > > > > Content-Type: text/plain; charset=US-ASCII > > > > > > > > > > > > > > > > > > > > If you have two or more independent metronomes that form a > > > > > polyrhythmic > > > > > relationship then stopping them will lose the relationship. Each will > > > > > begin its timing series from the same "zero point". > > > > > > > > > > A synchronous system is probably better if you want to start and stop > > > > > the composition at arbitrary points and have it resume. > > > > > > > > > > The general problem with a synchronous system is that the smallest > > > > > timing > > > > > resolution is the division of the master clock at all points. > > > > > > > > > > But there are also two quite distinct approaches to synchronous > > > > > sequencers in > > > > > Pd having different properties. > > > > > > > > > > One is based on bangs and built from many subsystems that each hold > > > > > their own > > > > > state. These "state aware" subsequences use a local counter and a > > > > > [select] > > > > > object. The advantage here is that if you stop the master bang > > > > > message source, > > > > > each will remain in it's last state until new bangs start to flow. The > > > > > disadvantage is that no part of the system is "time aware", so you > > > > > cannot > > > > > jump forwards or backwards a number of beats to see what the sequence > > > > > is > > > > > like without explicitly going through all steps. > > > > > > > > > > The second kind is "time aware". Instead of sending bangs you send > > > > > float > > > > > messages which represent the current time. You can use combinations of > > > > > [moses], [mod], [change] and simple arithmetic to make subsystems > > > > > behave > > > > > in different ways. You can jump forwards, backwards or pause the > > > > > sequence > > > > > in any way you like. > > > > > > > > > > If you want sample accurate timing you can try an interesting > > > > > approach that > > > > > Chun Lee and I have both experimented with, composition entirely in > > > > > the > > > > > signal domain. You start with a very slow [phasor~] or [vline~] and > > > > > calculate > > > > > all sequence timings using a mixture of [wrap~], [rpole~]/[rzero~] and > > > > > [min~]/[max~] to constrain, integrate or differentiate the timebase. > > > > > This has > > > > > some really nice features, like being able to warp the timebase and > > > > > get swings > > > > > or extremely smooth tempo changes. You can also warp parts > > > > > independently and > > > > > have them converge on some point in the future with sample accuracy > > > > > (like > > > > > spinning back a sample table and having it land exactly on the > > > > > beat... which > > > > > you cannot do in any other software afaik). The disadvantage to this > > > > > is that > > > > > you're limited to songs of less than about 5 mins because of rounding > > > > > errors. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On Sun, 23 Dec 2007 21:08:08 +0100 > > > > > "Libero Mureddu" <[EMAIL PROTECTED]> wrote: > > > > > > > > > > > Hello to everybody! > > > > > > > > > > > > I have a problem and I'd need that someone could point me at least > > > > > > to > > > > > > the right approach to solve it. > > > > > > > > > > > > > > > > > > Let's say I have three simple metronomes running, built with metro. > > > > > > Their speed is 1000 1001 and 1002 ms (in my case I have 88 of them, > > > > > > running at different speeds). > > > > > > I'd like to have the possibility to: > > > > > > > > > > > > a) keep the proportion constant between them and change the global > > > > > > tempo (i.e. 100, 100.1, 100.2 etc) > > > > > > b) I'd like to stop and restore the metros with their right time > > > > > > differences: if they start at the same time (from the same bang), > > > > > > they > > > > > > create a particular net of rhythms, that I'd like to control, > > > > > > analyze > > > > > > and change. I'd like to be able to stop them at a certain point and > > > > > > restart from another but keeping the same rhythmic combination. > > > > > > > > > > > > I know that this exist and is called sequencer :-) > > > > > > But I want to control this using pd but I don't know really how to > > > > > > do > > > > > > it, and also this is the simplest example: some parts could start > > > > > > at a > > > > > > certain point a change towards a different tempo in a certain time, > > > > > > having different dynamic according to a particular pattern etc. etc. > > > > > > So I think pd would a good platform to implement this. > > > > > > > > > > > > I was thinking to have a global metro running at 1 ms speed with a > > > > > > counter that reads many different arrays: the first of 1000 values > > > > > > (the first "1" and the other values "0"), the second of 1001 values > > > > > > and the third 1002 values and so on. > > > > > > > > > > > > But this works if I decide in advance the metros speed and leave it > > > > > > fixed, but I want to be able to modify the speed and still being > > > > > > able > > > > > > to restart, stop etc. > > > > > > Other idea was to have many qlists, but again, a note approach would > > > > > > give the problem of sync between the different notes. > > > > > > > > > > > > Any help appreciated! > > > > > > > > > > > > Thanks, best regards and > > > > > > > > > > > > Merry Christmas! > > > > > > > > > > > > Libero > > > > > > _______________________________________________ PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list