--- Koen Dejonghe wrote: I even made the daring attempt to write a CSound orc/sco 'program' in a structured way. --- end of quote --- your C code looks almost the same as SAOL code. (although im not really familiar with it or never figured out its intended use) with the new macro implementation by john, you can do similiar (but not as elegent) things inside csound itself: #define CHORUS(Out#Amp#Note#Fn) # a1 oscili $Amp*.33, $Note, $Fn a2 oscili $Amp*.33, $Note * .996, $Fn a3 oscili $Amp*.33, $Note * 1.004, $Fn $Out = a1 + a2 + a3 # instr 1 iChorusAmp = p4 iChorusNote = cpspch(p5) iChorusFn = p6 $CHORUS(aChorusOut#iChorusAmp#iChorusNote#iChorusFn) out aChorusOut