Bart,
You attempt to synchronize your actions/queues to a sequence different from the traditional “score” used in the score following jargon. There are two ways to do this in Antescofo: (1) using “user-defined inlet” types, and (2) by binding actions to outside variables using whenever or the like in Antescofo language.
The first approach has been existing for some time. The second is very elegant and new. I attempt to describe the first here but feel free to ask for the second (since it’ll force us to document and publish an example!!).
An instantiated Antescofo object without any @inlets
definition will create an object expecting audio input (for polyphonic pitch). If you use @inlets
then you can either use existing keywords (KL for polyphonic audio, MIDI for polyphonic MIDI input, hz for continuous pitch frequency input for Sigmund~ and the like) or a user-defined keyword! For example, creating an Antescofo object as [antescofo~ @inlets foo] in Max/Pd will create an object expecting the user-defined FOO input type.
Once this is done, the rest is the same as before! Especially, your score structure stays the same. The only difference is that from here on, the score event sequence has a different semantic. You should think of regular NOTE, CHORD, TRILL and MULTI as mere data-containers. Once the score is constructed, then it is just a matter of STARTing the score and sending your numerical data to the object as numerical lists for it to work.
This is how basic Event score commands change their meaning in a user-defined scenario:
- NOTE: indicates a “scalar” input
- CHORD: indicates vector input (polyphony!)
- TRILL: combination of scalar and vector that can enter in any order
- MULTI: combination of above but ordered
- VARIANCE: sensitivity/tolerance to scalar data (in audio/midi mode it’s in midicents!)
Note that the syntax does not change AT ALL. It’s just the meaning of “pitch” which is replaced by your own definition! That’s why I suggest thinking about containers.
Everything works! You can also define several inlet types and CHANGE between them inside your score using @inlet command as you mentioned in previous posts. The only thing that does not work for the time being is the combination of highly continuous input (audio) with highly discrete input (MIDI) in the same score which causes boundary problems in recognition (I should find some time to finish this up!).