bizzare instrument
Date | 2017-06-20 09:22 |
From | "Joe ." |
Subject | bizzare instrument |
Something bizzare is happening in this instrument. About 10 seconds in, something happens, and it changes pitches and timbre for some reason. I can't find an explanation. Thanks- Joe <CsoundSynthesizer> <CsOptions> </CsOptions> <CsInstruments> sr = 44100 ksmps = 1 nchnls = 2 0dbfs = 1.0 giFt = ftgen:i(1, 0, 8192, 10, 1) #define AmplitudeFrequencyConverters # iAmplitude = ampdb(p4) iCPS = cps2pch:i(p5, 12) # instr 1 $AmplitudeFrequencyConverters aynrand = rand:a(1, -101, 1) aOut1 butterbp aynrand, iCPS/2, 1.5 aOut2 butterbp aynrand, iCPS/2*2, 1.5 aOut3 butterbp aynrand, iCPS/2*3, 1.5 aOut4 butterbp aynrand, iCPS/2*4, 1.5 aOut5 butterbp aynrand, iCPS/2*5, 1.5 aOut6 butterbp aynrand, iCPS/2*6, 1.5 aOut7 butterbp aynrand, iCPS/2*7, 1.5 aOut8 butterbp aynrand, iCPS/2*8, 1.5 aOut9 butterbp aynrand, iCPS/2*9, 1.5 aOut10 butterbp aynrand, iCPS/2*10, 1.5 aOut11 butterbp aynrand, iCPS/2*11, 1.5 aOut sum aOut1, aOut2, aOut3*0.5, aOut4*0.5, aOut5*0.25, aOut6*0.25, aOut7*0.125,aOut8*0.125, aOut9*0.125,aOut10*0.125, aOut11*0.125 aBalance = oscil:a(iAmplitude, iCPS) aOut balance aOut, aBalance aOut = aOut*linseg:a(0, 1, 1, p3-2, 0.5, 1, 0) aFubar = delayr:a(0.5) aLeft1 = deltap:a(0.1) aLeft2 = deltap:a(0.105) aLeft3 = deltap:a(0.11) aLeft sum aLeft1, aLeft2, aLeft3 aRight1 = deltap:a(0.2) aRight2 = deltap:a(0.205) aRight3 = deltap:a(0.21) aRight sum aRight1, aRight2, aRight3 delayw aOut outs aLeft, aRight endin </CsInstruments> <CsScore> i1 0 18 -24 6.07 </CsScore> </CsoundSynthesizer> /* Joe */ |
Date | 2017-06-20 09:27 |
From | "Joe ." |
Subject | Re: bizzare instrument |
it has to do with the bandwidth of the filter. If you make it bigger, it'll do the thing faster. /* Joe */ On Tue, Jun 20, 2017 at 3:22 AM, Joe . <not007ful@gmail.com> wrote:
|
Date | 2017-06-20 10:31 |
From | "Jeanette C." |
Subject | Re: bizzare instrument |
Hi Joe, just a thought, but could it be the delays feeding back to much? Otherwise some opcodes have states in which they get unstable. Did you see anything in the Butterworth filters? These are just thoughts... HTH. Best wishes, Jeanette -------- * website: http://juliencoder.de - for summer is a state of sound * SoundCloud: https://soundcloud.com/jeanette_c Open my eyes, I look deep inside, I run away... <3 (Britney Spears) Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here |
Date | 2017-06-20 10:46 |
From | Iain McCurdy |
Subject | Re: bizzare instrument |
The problem is caused by the balance opcode as it tries to pull the amplitude of the almost non-existent signal from the filter up to that of your oscil. Increasing the bandwidth causes it to happen sooner because the resonance from the filters will die away quicker. You could remove the balance and instead boost the gain of the filters signal by a factor of about 100. If you still want to dynamically flatten it a bit, a compressor might be better than 'balance'.
From: A discussion list for users of Csound <CSOUND@LISTSERV.HEANET.IE> on behalf of Joe . <not007ful@GMAIL.COM>
Sent: 20 June 2017 08:22 To: CSOUND@LISTSERV.HEANET.IE Subject: [Csnd] bizzare instrument Something bizzare is happening in this instrument. About 10 seconds in, something happens, and it changes pitches and timbre for some reason. I can't find an explanation. Thanks- Joe
<CsoundSynthesizer> <CsOptions> </CsOptions> <CsInstruments> sr = 44100 ksmps = 1 nchnls = 2 0dbfs = 1.0 giFt = ftgen:i(1, 0, 8192, 10, 1) #define AmplitudeFrequencyConverters # iAmplitude = ampdb(p4) iCPS = cps2pch:i(p5, 12) # instr 1 $AmplitudeFrequencyConverters aynrand = rand:a(1, -101, 1) aOut1 butterbp aynrand, iCPS/2, 1.5 aOut2 butterbp aynrand, iCPS/2*2, 1.5 aOut3 butterbp aynrand, iCPS/2*3, 1.5 aOut4 butterbp aynrand, iCPS/2*4, 1.5 aOut5 butterbp aynrand, iCPS/2*5, 1.5 aOut6 butterbp aynrand, iCPS/2*6, 1.5 aOut7 butterbp aynrand, iCPS/2*7, 1.5 aOut8 butterbp aynrand, iCPS/2*8, 1.5 aOut9 butterbp aynrand, iCPS/2*9, 1.5 aOut10 butterbp aynrand, iCPS/2*10, 1.5 aOut11 butterbp aynrand, iCPS/2*11, 1.5 aOut sum aOut1, aOut2, aOut3*0.5, aOut4*0.5, aOut5*0.25, aOut6*0.25, aOut7*0.125,aOut8*0.125, aOut9*0.125,aOut10*0.125, aOut11*0.125 aBalance = oscil:a(iAmplitude, iCPS) aOut balance aOut, aBalance aOut = aOut*linseg:a(0, 1, 1, p3-2, 0.5, 1, 0) aFubar = delayr:a(0.5) aLeft1 = deltap:a(0.1) aLeft2 = deltap:a(0.105) aLeft3 = deltap:a(0.11) aLeft sum aLeft1, aLeft2, aLeft3 aRight1 = deltap:a(0.2) aRight2 = deltap:a(0.205) aRight3 = deltap:a(0.21) aRight sum aRight1, aRight2, aRight3 delayw aOut outs aLeft, aRight endin </CsInstruments> <CsScore> i1 0 18 -24 6.07 </CsScore> </CsoundSynthesizer> /* Joe */
|
Date | 2017-06-20 13:58 |
From | "Joe ." |
Subject | Re: bizzare instrument |
Thanks! /* Joe */ On Tue, Jun 20, 2017 at 4:46 AM, Iain McCurdy <i_mccurdy@hotmail.com> wrote:
|
Date | 2017-06-20 14:10 |
From | "Joe ." |
Subject | Re: bizzare instrument |
noob question coming at you- what did you mean when you said "Increasing the bandwidth causes it to happen sooner because the resonance from the filters will die away quicker."? /* Joe */ On Tue, Jun 20, 2017 at 7:58 AM, Joe . <not007ful@gmail.com> wrote:
|
Date | 2017-06-20 15:24 |
From | "Joe ." |
Subject | Re: bizzare instrument |
here's another bizzare thing- all instruments I've written with this sort of model can't produce the Bb above middle C. They will produce an F a few octaves above instead. Only note that has problems. /* Joe */ On Tue, Jun 20, 2017 at 8:10 AM, Joe . <not007ful@gmail.com> wrote:
|
Date | 2017-06-20 16:29 |
From | Iain McCurdy |
Subject | Re: bizzare instrument |
With regard to your first question about bandwidths: the problem you were experiencing occurred when the time-smeared output of the bandpass filters had reached a certain state of decay, well below what we are able to hear - although balance was pulling this up into the audible range with high factor gain. Increasing the bandwidth of this type of filter means that the same state of decay is reached more quickly. I hope this clarifies it.
The second point about the Bb. It sounds like this could be related to how you are using cps2pch. when using cps2pch:i(p5, 12), a Bb will end with .11, e.g 7.11 and C will end with .00, e.g. 8.00. Is this how you are using it? From: A discussion list for users of Csound <CSOUND@LISTSERV.HEANET.IE> on behalf of Joe . <not007ful@GMAIL.COM>
Sent: 20 June 2017 14:24 To: CSOUND@LISTSERV.HEANET.IE Subject: Re: [Csnd] bizzare instrument here's another bizzare thing- all instruments I've written with this sort of model can't produce the Bb above middle C. They will produce an F a few octaves above instead. Only note that has problems.
/* Joe */
On Tue, Jun 20, 2017 at 8:10 AM, Joe . <not007ful@gmail.com> wrote:
|
Date | 2017-06-20 17:01 |
From | Iain McCurdy |
Subject | Re: bizzare instrument |
Sorry, the Bb above middle C is going to be 8.10. From: A discussion list for users of Csound <CSOUND@LISTSERV.HEANET.IE> on behalf of Joe . <not007ful@GMAIL.COM>
Sent: 20 June 2017 14:24 To: CSOUND@LISTSERV.HEANET.IE Subject: Re: [Csnd] bizzare instrument here's another bizzare thing- all instruments I've written with this sort of model can't produce the Bb above middle C. They will produce an F a few octaves above instead. Only note that has problems.
/* Joe */
On Tue, Jun 20, 2017 at 8:10 AM, Joe . <not007ful@gmail.com> wrote:
|
Date | 2017-06-20 17:37 |
From | "Joe ." |
Subject | Re: bizzare instrument |
yes, that is how I'm using it. /* Joe */ On Tue, Jun 20, 2017 at 11:01 AM, Iain McCurdy <i_mccurdy@hotmail.com> wrote:
|
Date | 2017-06-20 18:27 |
From | Iain McCurdy |
Subject | Re: bizzare instrument |
8.10 works for me with your instrument as expected. Can you send an example that doesn't produce the correct note for you? From: A discussion list for users of Csound <CSOUND@LISTSERV.HEANET.IE> on behalf of Joe . <not007ful@GMAIL.COM>
Sent: 20 June 2017 16:37 To: CSOUND@LISTSERV.HEANET.IE Subject: Re: [Csnd] bizzare instrument yes, that is how I'm using it.
/* Joe */
On Tue, Jun 20, 2017 at 11:01 AM, Iain McCurdy
<i_mccurdy@hotmail.com> wrote:
|
Date | 2017-06-21 12:33 |
From | "Joe ." |
Subject | Re: bizzare instrument |
Attachments | test2.wav |
<CsoundSynthesizer> <CsOptions> </CsOptions> <CsInstruments> sr = 44100 ksmps = 1 nchnls = 2 0dbfs = 15.0 giFt = ftgen:i(1, 0, 8192, 10, 1) #define AmplitudeFrequencyConverters # iAmplitude = ampdb(p4) iCPS = cps2pch:i(p5, 12) # instr 1 $AmplitudeFrequencyConverters aynrand = rand:a(1, -101, 1) if p7 = 1001 then aEnvelope = linseg:a(0, 1, 1, p3-2, 0.5, 1, 0) endif aOut1 butterbp aynrand, iCPS, 0.002 aOut2 butterbp aynrand, iCPS*2, 0.002 aOut3 butterbp aynrand, iCPS*3, 0.002 aOut4 butterbp aynrand, iCPS*4, 0.002 aOut5 butterbp aynrand, iCPS*5, 0.002 aOut6 butterbp aynrand, iCPS*6, 0.002 aOut7 butterbp aynrand, iCPS*7, 0.002 aOut8 butterbp aynrand, iCPS*8, 0.002 if p6 = 101 then aOut sum aOut1, aOut2*0.3, aOut3*0.25, aOut4*0.2 , aOut5*0.167, aOut6*0.14 , aOut7*0.125, aOut8*0.111 elseif p6 = 102 then aOut sum aOut1, aOut2*0.3 elseif p6 = 103 then aOut sum aOut1, aOut2*0.3, aOut3*0.25, aOut4*0.2 endif aOut = aOut*aEnvelope aFubar = delayr:a(0.5) aLeft1 = deltap:a(0.1) aLeft2 = deltap:a(0.105) aLeft3 = deltap:a(0.11) aLeft sum aLeft1, aLeft2, aLeft3 aRight1 = deltap:a(0.2) aRight2 = deltap:a(0.205) aRight3 = deltap:a(0.21) aRight sum aRight1, aRight2, aRight3 delayw aOut outs aLeft*200000*linseg:a(1, p3-2, 0.5), aRight*200000*linseg:a(0.5, p3, 1) endin </CsInstruments> <CsScore>
i1 0 3 -6 8.09 101 1001 i1 3 3 -6 8.10 101 1001 i1 6 3 -6 8.11 101 1001 </CsScore> </CsoundSynthesizer> |
Date | 2017-06-21 13:05 |
From | Iain McCurdy |
Subject | Re: bizzare instrument |
I see what is happening now: the pitch is being correctly interpretted, in fact you can just about hear the fundamental of the Bb, but what dominates is one of the higher partials. What is happening is that the delays are introducing subtractive interference which is altering the audible outputs form the filters. If you listen to the sound mix before the delays, and mute the output from the delays you will hear that everything is in order. I'm not sure what the solution is, perhaps you could change the delay times so that the move in ratio with the fundamental frequency. From: A discussion list for users of Csound <CSOUND@LISTSERV.HEANET.IE> on behalf of Joe . <not007ful@GMAIL.COM>
Sent: 21 June 2017 11:33 To: CSOUND@LISTSERV.HEANET.IE Subject: Re: [Csnd] bizzare instrument <CsoundSynthesizer> <CsOptions> </CsOptions> <CsInstruments> sr = 44100 ksmps = 1 nchnls = 2 0dbfs = 15.0 giFt = ftgen:i(1, 0, 8192, 10, 1) #define AmplitudeFrequencyConverters # iAmplitude = ampdb(p4) iCPS = cps2pch:i(p5, 12) # instr 1 $AmplitudeFrequencyConverters aynrand = rand:a(1, -101, 1) if p7 = 1001 then aEnvelope = linseg:a(0, 1, 1, p3-2, 0.5, 1, 0) endif aOut1 butterbp aynrand, iCPS, 0.002 aOut2 butterbp aynrand, iCPS*2, 0.002 aOut3 butterbp aynrand, iCPS*3, 0.002 aOut4 butterbp aynrand, iCPS*4, 0.002 aOut5 butterbp aynrand, iCPS*5, 0.002 aOut6 butterbp aynrand, iCPS*6, 0.002 aOut7 butterbp aynrand, iCPS*7, 0.002 aOut8 butterbp aynrand, iCPS*8, 0.002 if p6 = 101 then aOut sum aOut1, aOut2*0.3, aOut3*0.25, aOut4*0.2 , aOut5*0.167, aOut6*0.14 , aOut7*0.125, aOut8*0.111 elseif p6 = 102 then aOut sum aOut1, aOut2*0.3 elseif p6 = 103 then aOut sum aOut1, aOut2*0.3, aOut3*0.25, aOut4*0.2 endif aOut = aOut*aEnvelope aFubar = delayr:a(0.5) aLeft1 = deltap:a(0.1) aLeft2 = deltap:a(0.105) aLeft3 = deltap:a(0.11) aLeft sum aLeft1, aLeft2, aLeft3 aRight1 = deltap:a(0.2) aRight2 = deltap:a(0.205) aRight3 = deltap:a(0.21) aRight sum aRight1, aRight2, aRight3 delayw aOut outs aLeft*200000*linseg:a(1, p3-2, 0.5), aRight*200000*linseg:a(0.5, p3, 1) endin </CsInstruments> <CsScore> i1 0 3 -6 8.09 101 1001 i1 3 3 -6 8.10 101 1001 i1 6 3 -6 8.11 101 1001 </CsScore> </CsoundSynthesizer>
|
Date | 2017-06-21 15:07 |
From | "Joe ." |
Subject | Re: bizzare instrument |
Thanks very much Iain /* Joe */ On Wed, Jun 21, 2017 at 7:05 AM, Iain McCurdy <i_mccurdy@hotmail.com> wrote:
|