Ok, this might be weird, graphical, node based interfaces are programming languages, so I’m trying to figure out what the basic design patterns are. Specifically how the Virtual Ports work.
From DinA -> To VirtualA From VirtualA -> "Do Something" -> To VirtualA From VirtualA -> "Do Something Else" -> To VirtualA From VirtualA -> DinA
is this the same thing as this?
From DinA -> "Do Something" -> "Do Something Else" -> To DinA
Also, there is a Dispatcher to create parallel pipelines, but you merge directly in the To Din node? there are no Listener node that would merge 2 virtual ports back into one?
From DinA -> Dispatcher(VirtualA, VirtualB) From VirtualA -> FilterChannels(ch02-ch16) -> "Do Something To ch01" -> To DinA From VirtualB -> FilterChannels(ch01) -> "Do Something to All the other Channels" -> To DinA
is this how I would create an effect that only modifies notes on
ch01 and passes everything else thru unchanged?
Because this would mean that pipelines can be used as functions (more or less) and the 2 patterns above allow me to process things in series
A() -> B() or in parrallel
Dispatcher(A,B), A(), B() right?
Lastly, how would I modulate notes from one channel using notes from another channel? The simplest example would be to create a “master transpose” effect, and use the note value on
ch01 to modulate the note values on all the other channels? So
C4 would be no change,
C#4 would raise all notes by a semitone, and
B4 would lower by two. Can you map the offset parameter of the Note Transpose effect to a Virtual Port?