One example the demonstrates the need for dynamic vectorsizes is the gabor.psola.pat example from FTM. Also granular approaches may benefit (for example, implementing some of the ideas from Curtis Roads' engine).


  • A graph has many objects.
  • An object has many inlets.
  • An inlet has many inputs.
  • An input has many channels.
  • Priorities, how to we control the order of operations?

Some important things to keep in mind:

  • Matrix mixer/router development, with particular thought about what happens when 5.1 audio is routed to stereo etc.
  • Signals of varying data rate (for example as proposed by Pulkki), e.g. compressed signals or higher res signals
  • Signals of steady data rate but varying vector/buffer size (as in FTM/Gabor)
  • Dynamic number of channels (perhaps useful for FFT and spectral processing?)
  • Would be ideal if we could have a wrapper for standard MSP external objects as Multicore objects.
    • Call the DSP method directly from this wrapper?
    • Create our own internal DSP chain for it?
    • start simple as with biquad~, meaning 1 in and 1 out
    • it seems like the easiest way out is to just use patcher scripting.

Building the graph

Specifications of specific objects/functions