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?