I'm working on a clean way to do pattern-like operations in Unit Lib. The idea is that a special set of UMaps can create new values at each iteration (using a Stream). This functionality I've already made in UPatDef, which is a subclass of UMapDef. The functionality of playback is implemented in UPattern, which basically is a generative UChain. The UPattern generates new events in which it makes normal values of all UPatDef based UMaps that are in the chain, and then plays them. An example of this is in the examples folder. What still needs to be done:
polishing and testing StreamUMapDef and UPattern
make a sensible GUI for UPattern
make a bunch of StreamUMapDefs, such as brown noise, sequencers, perhaps midi/csv importers, series generators etc. For the WFS implementation I'm thinking of stream versions of all the trajectory UMapDefs and perhaps more.
create a 'render' option which would render out the UPattern to individual UChains in an UScore.
allow UMapDefs to handle time information (required for the timeToNext and sustain slots in UPattern)
correctly handle prepare times (currently only works with units that don't require prepare time)
implement nrt rendering
Things that require decisions or perhaps discussion
should the StreamUMapDefs be in the same GUI window as normal UMapDefs, or in a separate column? There may be too many to put them just in a single category..
should they perhaps get a different color in the GUI? (I'm thinking of green)
how should a UPattern show up in the UScore window?
I'm working on a clean way to do pattern-like operations in Unit Lib. The idea is that a special set of UMaps can create new values at each iteration (using a Stream). This functionality I've already made in UPatDef, which is a subclass of UMapDef. The functionality of playback is implemented in UPattern, which basically is a generative UChain. The UPattern generates new events in which it makes normal values of all UPatDef based UMaps that are in the chain, and then plays them. An example of this is in the examples folder. What still needs to be done:
Things that require decisions or perhaps discussion