On Wednesday 12 September 2007 14:46:30 Michael Gogins wrote: > I agree that this is an irritating limitation of Csound. > > My prototype synthesizer silencevst has this feature, which was inspired by > the impressive tracker Buzz. > > This feature could be added to Csound without breaking backward > compatibility, by defining some new opcodes and orchestra syntax. > > New opcodes: > > xvalue inlet, iname > outlet iname, xvalue > > Usage: > > instr 1 > asignal inlet "audioInput" > asignal = asignal * 2.0 > outlet "audioOutput", asignal > endin > > New global orchestra connection opcode (placed after all instr > definitions): > > connect 1, "audioInput", 2, "audioOutput" ; connect instr 2 outlet > "audioOutput" to instr 1 inlet "audioInput" > > Or connections could be done in the instrument definition, with outlet > arguments to inlet opcodes: > > instr 2 > asignal inlet "audioInput", 1, "audioOutput" ; connect "audioOutput" outlet > of instr 1 to this inlet out asignal > endin This seems like a sensible approach, since the use would be similar to an effect rack. An additional disconnect opcode would be useful: one might want to concatenate several instruments and produce only the final sound. > > Perhaps something less clunky could be developed, but this would work well > enough. For polyphonic instruments, all signals would be summed. And for > multiple outlets connected to one inlet, all signals would be summed. Actually, I must say I was thinking originally in an addition to the sco syntax: allow outputs to be saved to variables which would then be passed to other instruments as pfields. -- Felipe Sateler