< Back to IRCAM Forum

Mubu.concat scheduling question

Hi,

After working for quite some time now on a setup relying on mubu.concat~, I took a step back to really get a better understanding of the scheduling part in mubu.concat as I’ve been tearing some hair off to implement what I want. (basically my setup involves mixing of catart-style triggering of segments using a wacom and a more “sequencing” approach to play/randomize sequences using play attribute)

I spent some time testing how the advance/delay/offset attributes work and inter-relate as it was still blury after all the time spent with mubu.concat. Am I right summing the advance attribute as follow ?

@advance: When periodic playing is enabled (’@play 1’), @advance defines how much (in ms) mubu.concat internal scheduling will look ahead to get segments played on time. For example, when setting to be played a marker that has a 100 ms offset defined, setting an advance time of 100 ms will trigger the marker 100 ms before the end of previous marker (hence playing the marker start right after the end of previous marker).

Am I correct ?

In any case, it could be nice to have more explanation about this in mubu package or links toward papers or something.

There is still (at least) one thing I dont understand. When play mode is set, I am not sure I get how/when attributes are updated. For example, using the following sequences of messages:

resampling -1200, outputgains 1 0, markerindex $1, bang, resampling 0, outputgains 1 1

What I’d expect is that both resampling and outputgains values are set, then next marker index is set, then ‘bang’ to reset the period and trigger the grain, then set back resampling and outputgains to default value for the next grain to be triggered.

But if I send these messages while play is on, it seems first resampling and outputgains message are ignored. Why ?

Thanks in advance

Best,
Julien

Hi Julien, thanks for the thorough research for your questions.

  1. Your interpretation of @advance is correct and indeed the documentation is not sufficient. We’ll add more details to the help file.

  • bang in play mode unfortunately and historically is handled differently, just rescheduling the metronome, hence the messages after the bang immediately reset the parameters.
    • (You could hook the reset messages to the rightmost outlet where the index of the just triggered grain is sent.)
  • Fortunately, since 10.7 there is a bong method (note the ‘o’) that will trigger a grain immediately and unconditionally (also ignoring allowrepeat), without rescheduling periodic grains.
  • Then again, for mixing sequenced and triggered grains, it might be easier to have 2 separate mubu.concat.

Hope this helps,
Diemo