Hallo, Libero Mureddu hat gesagt: // Libero Mureddu wrote:
I have another question about your ioi-sequencer (very nice indeed!), my problem is that I would like to have a possibility to move forward (or backward) in time, especially if I give as messages value as [1.6( and [1.7( respectively: with the sequence you put, is quite easy to calculate when the pattern obtained is going to repeat, and then work with it compositionally. But with the "phasing" value that I want to use, the whole created pattern is very long in time, and I still would like to have a precise control into it. What I really like in your example is the possibility to send messages of any length on the fly, but how could I then have a master tempo counter (if it is what it is required) and still have this flexibility?
The IOI approach conceptually has no master tempo, it just has times between events. So you could dynamically change the time till the next event on the fly. In the example I posted, the IOI times come from reading a preset list item by item, but you could also get the IOI times from anywhere else.
You could for example read the next IOI every time an event happens from a settable [float]:
[r next-event]
|
[delay]
|
[t b b] [r next-IOI]
| | |
[s EV] [float]
|
[s next-event]
Here you can set the value of "next-IOI" in whatever way you like, for example from a score in a [textfile], a list as in the example, a [random] process etc.
It is a bit tricky to jump to a certain position of the piece that way, though, as you could do if you would have your whole composition written out explicitly. Or rather: It's easy to jump to a certain position if you have only one [delay]-sequencer, but as soon as you have two, syncing the starting positions is difficult.
Maybe you can just make one of the delay-sequencers your master metro, and encode the periods of the other delays as difference values to the period of the master.
Example: You have one master metro at 100. Then you want one metro/delay A run at 101, another one, B, at 102. For the first bang, delay A will come 1msec late, so its delay will be 1msec. The next time, A bangs, it will come 2 msec late, and so on, so A will be n times 1msec late, modulo 101. For metro/delay B this will be (n*2msec) % 102.
Attached is an example for this re-encoding in action. You can use the master position number box in the to left to jump to a certain position. (This is not really a IOI approach anymore, though.)
Frank Barknecht _ ______footils.org__