[Csnd] shutoff when level exceeds something
Date | 2014-03-01 01:15 |
From | Michael Mossey |
Subject | [Csnd] shutoff when level exceeds something |
I'm playing around with instruments that work like this: a delay line with feedback, and the feedback goes through some kind of filter, so basically you hear a sound first filtered once, then twice, then three times, and so on. I like this effect. However, if I use filters with positive gain, eventually the signal gets amplified and overloads the output. I could tweak the sound duration, feedback ratio, and filter Q and so forth by hand, but I want to use these are part of algorithmic composition so I don't want to have to tweak everything. Another possibility is to have the sound cutoff automatically when it exceeds a certain level. Is there a way to do that? Mike |
Date | 2014-03-01 10:13 |
From | Victor Lazzarini |
Subject | Re: [Csnd] shutoff when level exceeds something |
Did you try using balance? It will help keep the signal within bounds. Another thing you can try is clip. Victor On 1 Mar 2014, at 01:15, Michael Mossey |
Date | 2014-03-01 11:13 |
From | jpff@cs.bath.ac.uk |
Subject | [Csnd] Re: |
Attachments | None |
Date | 2014-03-01 11:30 |
From | Michael Mossey |
Subject | Re: [Csnd] shutoff when level exceeds something |
I was getting clicks when using balance, I think because the input signal was suddenly changing levels. I may have to rethink this a little bit in order to make use of balance smoothly. I do use clip to prevent blowing my speakers but it doesn't give me the sound I'm going for... I use it just as a safety precaution. Mike On 3/1/2014 2:13 AM, Victor Lazzarini wrote: > Did you try using balance? It will help keep the signal within bounds. Another thing you can try is clip. > > Victor > On 1 Mar 2014, at 01:15, Michael Mossey |
Date | 2014-03-01 11:42 |
From | Victor Lazzarini |
Subject | Re: [Csnd] shutoff when level exceeds something |
what you can try then is to decrease the low pass filter frequency in balance (the optional parameter), so that it takes longer to react. Victor On 1 Mar 2014, at 11:30, Michael Mossey |
Date | 2014-03-01 12:02 |
From | Rory Walsh |
Subject | Re: [Csnd] shutoff when level exceeds something |
Can you simply reduce the overall gain going back into the delay line, after it has come from the filter? On 1 March 2014 01:15, Michael Mossey |
Date | 2014-03-01 15:22 |
From | Rory Walsh |
Subject | Re: [Csnd] shutoff when level exceeds something |
I had no idea you could do this with balance. Nice touch. On 1 March 2014 11:42, Victor Lazzarini |
Date | 2014-03-01 22:22 |
From | Michael Mossey |
Subject | Re: [Csnd] shutoff when level exceeds something |
On 3/1/2014 4:02 AM, Rory Walsh wrote: > Can you simply reduce the overall gain going back into the delay line, > after it has come from the filter? My issue is that this is algorithmic composition. I want the algorithms to tweak things like the feedback gain because I want it to be tweaking the "sound world." But I don't have any hard-and-fast rules I can follow about what makes it blow up (depends on the duration of the note also, and that's also something tweaked by the algorithms). If I could hand-adjust every note, no problem. Mike |
Date | 2014-03-02 12:44 |
From | Oeyvind Brandtsegg |
Subject | Re: [Csnd] shutoff when level exceeds something |
Yeah, I recognize the problem, I think I would go for a combined solution: - find a mapping function between the parameters so that feedback amount would be automatically scaled depending on the value for other parameters. This is not going to be perfect, but it may help avoid the most extreme blowups. - automatically adjust level with balance or similar auto gain, possibly bypass this unless the signal gets loud. - measure rms, creating a control signal, use this as a conditional to run turnoff, e.g. a1 (some audio signal) krms rme a1 if krms > 1.0 then turnoff endif 2014-03-01 23:22 GMT+01:00 Michael Mossey |
Date | 2014-03-02 14:05 |
From | Michael Mossey |
Subject | Re: [Csnd] shutoff when level exceeds something |
Thanks Oeyvind. Very helpful ideas. I can tell you speak from the voice of experience. Mike On 3/2/2014 4:44 AM, Oeyvind Brandtsegg wrote: > Yeah, I recognize the problem, I think I would go for a combined solution: > - find a mapping function between the parameters so that feedback > amount would be automatically scaled depending on the value for other > parameters. This is not going to be perfect, but it may help avoid the > most extreme blowups. > - automatically adjust level with balance or similar auto gain, > possibly bypass this unless the signal gets loud. > - measure rms, creating a control signal, use this as a conditional to > run turnoff, e.g. > a1 (some audio signal) > krms rme a1 > if krms > 1.0 then > turnoff > endif > > > > 2014-03-01 23:22 GMT+01:00 Michael Mossey |
Date | 2014-03-03 08:59 |
From | joachim heintz |
Subject | Re: [Csnd] shutoff when level exceeds something |
hi michael - there is a very clever instrument of martin neukom which mesaures rms and uses this to scale the feedback amount of a delay line. i have inserted it in the csound floss manual, in chapter 01 C (EXAMPLE 01C02_rms_feedback_system.csd). perhaps it's worth to have a look at it. best - joachim Am 02.03.2014 15:05, schrieb Michael Mossey: > Thanks Oeyvind. Very helpful ideas. I can tell you speak from the voice > of experience. > Mike > > On 3/2/2014 4:44 AM, Oeyvind Brandtsegg wrote: >> Yeah, I recognize the problem, I think I would go for a combined >> solution: >> - find a mapping function between the parameters so that feedback >> amount would be automatically scaled depending on the value for other >> parameters. This is not going to be perfect, but it may help avoid the >> most extreme blowups. >> - automatically adjust level with balance or similar auto gain, >> possibly bypass this unless the signal gets loud. >> - measure rms, creating a control signal, use this as a conditional to >> run turnoff, e.g. >> a1 (some audio signal) >> krms rme a1 >> if krms > 1.0 then >> turnoff >> endif >> >> >> >> 2014-03-01 23:22 GMT+01:00 Michael Mossey |