I am trying out things with additive synthesis using a master instr looping event_i.
I want to apply reverb on the whole synth in an other instrument in which I send the global audio : the problem is it doesn’t work properly since the reverb is applied on several voices at once.
Does anyone know how I could make it work as if it was the synth (audio being looped with the master instr) was monophonic ? I know I should be using adsynt (which might have been created for that kind of problem) but I don’t like since I can’t control each partial/voice. I tried recursion but the thing happens (which makes sense).
Thank you !
sure it will be possible. if you can send some example code i might be
able to help.
Here is an example
csoundforum.csd (1.6 KB)
hi jacques -
yes now i know what you mean. the problem is this line:
gasig = poscil3(0.02 * kenv, (55 + amod) * p4, gicosine, 0)
imagine that you start 40 instances of instrument “sig”. each instance
will overwrite gasig, so only the last instance is succesful, so to say.
this is what you describe in your comment in line 52.
you have several options:
- you can use the same approach as you did. when you
- add in the header
gasig init 0
- change the line above to
gasig += poscil(...)
- add in instr “rvrb” the line
gasig = 0
then it should work.
- you can use the opcodes chnmix / chnget / chnclear instead.
there are examples at
The Csound FLOSS Manual
i learned from your combination of trigger and dust. i must look
closer; actually i never used dust, but it looks very handy.
in line 25, i’d prefer to write:
schedulek(“loop”, 0, kdur)
and in line 33-36:
while inum < imax do
schedule(“sig”, 0, p3, inum)
inum += 1
The first option you suggested works, thanks a lot ! Now it makes sense
I’ll also try to make it work with channel opcodes.
Thank you for your suggestions, that helps a lot.
I made the dust trigger thing right before sending the .csd, I don’t find it quite elegant, but it kind of works :))
All the best,