[Csound] feedback explosion
Date | 2015-10-11 02:40 |
From | Beinan Li |
Subject | [Csound] feedback explosion |
Hello Csound, I took this reverb sample code from the book Virtual Sound (Bianchini, Cipriani 2011), and added an input signal to it. Now I'm getting an obvious feedback buildup, which I don't where to start to debug. Tried the display opcode on a-rate signals but it outputs nothing for me. The code is here: Instr 1 plays an audio file. Instr 99 is the multitap delayline reverb unit. The amplitude scalers look fine to me and I've tried to downscale the aout to no avail. Also, I'd like to know what opcodes to use to view/print the a-rate signals. I only found "display" promising among its category: <CsoundSynthesizer> <CsOptions> -odac ;;;realtime audio out </CsOptions> <CsInstruments> sr = 44100 ksmps = 10 nchnls = 1 0dbfs = 1 ga1 init 0 instr 1 ain soundin "voice.wav" ga1 = ga1+ain out ga1 endin instr 99 ; reverb via multi-tap delayline afeed init 0 iloop = 1 ar delayr .2 display ar, .1 delayw ga1 + afeed ar1 deltapi .063*iloop ar2 deltapi .071*iloop ar3 deltapi .107*iloop ar4 deltapi .129*iloop afeed = (ar1+ar2+ar3+ar4)*.2 aout = ar+ar1+ar2+ar3+ar4 out aout ga1 = 0 endin </CsInstruments> <CsScore> i1 0 6 </CsScore> </CsoundSynthesizer> Thanks, Beinan |
Date | 2015-10-11 02:51 |
From | Justin Smith |
Subject | Re: [Csound] feedback explosion |
ga1 is all but guaranteed to blow up because more and more signal is added to it, and it is never cleared out. If you moved the "ga1 = 0" line to the end of one of your instruments, it would get cleared out properly at each k cycle. On Sat, Oct 10, 2015 at 6:40 PM Beinan Li <li.beinan@gmail.com> wrote:
|
Date | 2015-10-11 03:01 |
From | Beinan Li |
Subject | Re: [Csound] feedback explosion |
Thanks Justin, but "ga1 = 0" is at the end of my instr 99. Thanks, Beinan On Sat, Oct 10, 2015 at 9:51 PM, Justin Smith <noisesmith@gmail.com> wrote:
|
Date | 2015-10-11 03:03 |
From | Justin Smith |
Subject | Re: [Csound] feedback explosion |
sorry, I read too hastily but it doesn't appear that i99 is being run, and instr 1 is repeatedly adding to ga1 On Sat, Oct 10, 2015 at 7:01 PM Beinan Li <li.beinan@gmail.com> wrote:
|
Date | 2015-10-11 07:35 |
From | Beinan Li |
Subject | Re: [Csound] feedback explosion |
Aghh, you are right! Thank you! Also finally got the "display" opcode working. It turned out that by default all displays are suppressed (a "displays suppressed" message was in the console output. Using "--display" option directly in csound command line will pop up a (TK?) windows and show the running waveform of the chose signal in the code. If simply using --displays in the CsOptions element of the .csd, then I get a pseudo-signal printouts using ASCII characters in Terminal. I wish there were a printf for a-rate signals to see the numbers. Thanks, Beinan On Sat, Oct 10, 2015 at 10:03 PM, Justin Smith <noisesmith@gmail.com> wrote:
|
Date | 2015-10-11 08:07 |
From | Kevin Welsh |
Subject | Re: [Csound] feedback explosion |
Printing at the audio rate would produce a *LOT* of numbers, but if a lot of numbers is really what I want then printing at the control rate with printk2 is usually good enough for my purposes. Check out printk, printk2, and sprintfk... maybe one of those will do what you need it to. On Sun, Oct 11, 2015 at 2:35 AM, Beinan Li |
Date | 2015-10-11 09:31 |
From | Victor Lazzarini |
Subject | Re: [Csound] feedback explosion |
You can also use rms and printk2 to get amplitudes. Victor Lazzarini Dean of Arts, Celtic Studies, and Philosophy Maynooth University Ireland > On 11 Oct 2015, at 08:07, Kevin Welsh |
Date | 2015-10-11 15:12 |
From | Beinan Li |
Subject | Re: [Csound] feedback explosion |
Thank you all. rms + printk2 make sense. Thanks, Beinan On Sun, Oct 11, 2015 at 4:31 AM, Victor Lazzarini <Victor.Lazzarini@nuim.ie> wrote: You can also use rms and printk2 to get amplitudes. |