Hi Greg,
I can't seem to find the original post for this, hope I'm not missing any important points!
On Mon, 23 Oct 2006, Greg Surges wrote:
I'm a music composition/technology major at the University of Wisconsin-Milwaukee, currently taking a course in PD, and also studying it in private lessons.
That's really interesting! Sara Kolster and I just lectured at UW earlier this year, and did a PD workshop at the Hotcakes Gallery. Who is teaching PD there now?
I am wondering if anyone has any experience with matrix-type switching, i.e. a modular system in which any module can connect to any other module in any order.
Like Frank Barknecht mentioned, the IEM matrix objects are one way to go. Otherwise, you could dynamically generate [send~] + [receive~] pairs via named abstractions.
I also need the ability for the system to allow recursive patching.
Recursive patching can really cause problems in PD, since it relies quite heavily on a specific order of operations to keep from getting into DSP loops. Using [send~] and [receive~] pairs is one way around this, since they automatically include a delay of one DSP block. But you still have problems of a depth-first order of operations, so that if you use oscillatorA to amplitude modulate oscillatorB (for example), and oscillatorB goes on to modify some parameter of osciallatorA again, you have to be very careful about where all these patches are depth-wise in relation to each other. If one is "less deep" (i.e. fewer subpatches/abstractions down) than the other, your feedback system will not work. The first amplitude modulation will not occur because the second modulation which starts the whole chain hasn't happened yet, resulting in a no signal situation which would not occur in the analog synthesis world AFAIK. I have not seen this issue addressed or documented very well (aside from the warnings about depth first message passing in Miller's examples), and I just recently ran into it myself which trying to make a supercomplex self-modulating synthesizer. Let me know if this does/doesn't make sense or apply to your work, and I'll try to clarify.
best, derek