Quantcast

[Csnd] Problem with simple two note risset-glissando

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[Csnd] Problem with simple two note risset-glissando

Jeanette C.
Hey hey,
I'm trying to setup a Risset-Shepard glissando with two notes. I know that
there are examples, but I need to work it out completely to change it to a
slightly different domain and have absolute control.

In my demo the zero amplitude doesn't exactly respond to the skip of the
oscillator. This is the relevant code snippet:
*** BEGIN risset.csd ***
...
  kamp oscil iamp, ifreq, 1, iph ; ft1 being a sine wave GEN10, the amp
  curve
  k1 = abs((kamp+1)*.5) ; modify so the shape only goes from 0-1
  k2 oscil ifamp, ifreq, 2, iph ; the frequency curve, ft2 being rising
  ; GEN5 not normalised from 1 to 4
  a1 oscil k1, k2, 1
  outs a1*.5, a1*.5
...
*** END risset.csd ***
With one instance at phase 0, I hear the tone increasing in volume and
frequency, decreasing in volume, while still going up, fading to
nothing, fading back still rising higher and then dropping to the lowest
possible frequency, while rather quiet, but definitely audible. There
appears to be a frequency mismatch, or the oscil opcode doesn't properly
deal with the two function tables in question. The both have the same
number of points (32768).

Any hints would be very welcome. Thank you.

Best wishes,

Jeanette

--------
When you need someone, you just turn around and I will be there <3

Csound mailing list
[hidden email]
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
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [Csnd] Problem with simple two note risset-glissando

Victor Lazzarini
Hi Jeanette,

the risset glissando needs two things: an exponential for the frequency (which you have) and
a window function for the amplitude (e.g. Gaussian). Maybe the problem you have is that you are
not using the correct window function. See this for example:

===========================
gifn1 ftgen 0,0,16384,20,6,1 ; Gaussian
gifn2 ftgen 0,0,16384,5,1,16384,2^-10 ; exp 10 octaves

instr 1
 idur = p6 ; cycle duration
 itop = p5 ; topmost gliss freq
 ioff = p4 ; offset
 kf oscili 1,1/idur,gifn2,ioff; reads the frequency table (glissando)
 ka oscili 1,1/idur,gifn1,ioff  ; reads the amplitude table (bell function)
 asig oscili ka,kf*itop ; produces the sound
      out 0dbfs*asig/10
endin

ik init 0
while ik < 10 do
 schedule(1,0,120,ik/10,3000,60)
 ik += 1
od
event_i "e", 0, 120
=============================


========================
Prof. Victor Lazzarini
Dean of Arts, Celtic Studies, and Philosophy,
Maynooth University,
Maynooth, Co Kildare, Ireland
Tel: 00 353 7086936
Fax: 00 353 1 7086952

> On 15 Apr 2017, at 15:57, Jeanette C. <[hidden email]> wrote:
>
> Hey hey,
> I'm trying to setup a Risset-Shepard glissando with two notes. I know that there are examples, but I need to work it out completely to change it to a slightly different domain and have absolute control.
>
> In my demo the zero amplitude doesn't exactly respond to the skip of the oscillator. This is the relevant code snippet:
> *** BEGIN risset.csd ***
> ...
> kamp oscil iamp, ifreq, 1, iph ; ft1 being a sine wave GEN10, the amp
> curve
> k1 = abs((kamp+1)*.5) ; modify so the shape only goes from 0-1
> k2 oscil ifamp, ifreq, 2, iph ; the frequency curve, ft2 being rising
> ; GEN5 not normalised from 1 to 4
> a1 oscil k1, k2, 1
> outs a1*.5, a1*.5
> ...
> *** END risset.csd ***
> With one instance at phase 0, I hear the tone increasing in volume and
> frequency, decreasing in volume, while still going up, fading to
> nothing, fading back still rising higher and then dropping to the lowest
> possible frequency, while rather quiet, but definitely audible. There
> appears to be a frequency mismatch, or the oscil opcode doesn't properly
> deal with the two function tables in question. The both have the same
> number of points (32768).
>
> Any hints would be very welcome. Thank you.
>
> Best wishes,
>
> Jeanette
>
> --------
> When you need someone, you just turn around and I will be there <3
>
> Csound mailing list
> [hidden email]
> 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

Csound mailing list
[hidden email]
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
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [Csnd] Problem with simple two note risset-glissando

Steven Yi
I thought I'd mention that Reginald Bain wrote an excellent article on
Risset's Glissando in the Csound Journal:

http://csoundjournal.com/issue17/bain_risset_arpeggio.html

On Sat, Apr 15, 2017 at 11:23 AM, Victor Lazzarini
<[hidden email]> wrote:

> Hi Jeanette,
>
> the risset glissando needs two things: an exponential for the frequency (which you have) and
> a window function for the amplitude (e.g. Gaussian). Maybe the problem you have is that you are
> not using the correct window function. See this for example:
>
> ===========================
> gifn1 ftgen 0,0,16384,20,6,1 ; Gaussian
> gifn2 ftgen 0,0,16384,5,1,16384,2^-10 ; exp 10 octaves
>
> instr 1
>  idur = p6 ; cycle duration
>  itop = p5 ; topmost gliss freq
>  ioff = p4 ; offset
>  kf oscili 1,1/idur,gifn2,ioff; reads the frequency table (glissando)
>  ka oscili 1,1/idur,gifn1,ioff  ; reads the amplitude table (bell function)
>  asig oscili ka,kf*itop ; produces the sound
>       out 0dbfs*asig/10
> endin
>
> ik init 0
> while ik < 10 do
>  schedule(1,0,120,ik/10,3000,60)
>  ik += 1
> od
> event_i "e", 0, 120
> =============================
>
>
> ========================
> Prof. Victor Lazzarini
> Dean of Arts, Celtic Studies, and Philosophy,
> Maynooth University,
> Maynooth, Co Kildare, Ireland
> Tel: 00 353 7086936
> Fax: 00 353 1 7086952
>
>> On 15 Apr 2017, at 15:57, Jeanette C. <[hidden email]> wrote:
>>
>> Hey hey,
>> I'm trying to setup a Risset-Shepard glissando with two notes. I know that there are examples, but I need to work it out completely to change it to a slightly different domain and have absolute control.
>>
>> In my demo the zero amplitude doesn't exactly respond to the skip of the oscillator. This is the relevant code snippet:
>> *** BEGIN risset.csd ***
>> ...
>>       kamp oscil iamp, ifreq, 1, iph ; ft1 being a sine wave GEN10, the amp
>>       curve
>>       k1 = abs((kamp+1)*.5) ; modify so the shape only goes from 0-1
>>       k2 oscil ifamp, ifreq, 2, iph ; the frequency curve, ft2 being rising
>>       ; GEN5 not normalised from 1 to 4
>>       a1 oscil k1, k2, 1
>>       outs a1*.5, a1*.5
>> ...
>> *** END risset.csd ***
>> With one instance at phase 0, I hear the tone increasing in volume and
>> frequency, decreasing in volume, while still going up, fading to
>> nothing, fading back still rising higher and then dropping to the lowest
>> possible frequency, while rather quiet, but definitely audible. There
>> appears to be a frequency mismatch, or the oscil opcode doesn't properly
>> deal with the two function tables in question. The both have the same
>> number of points (32768).
>>
>> Any hints would be very welcome. Thank you.
>>
>> Best wishes,
>>
>> Jeanette
>>
>> --------
>> When you need someone, you just turn around and I will be there <3
>>
>> Csound mailing list
>> [hidden email]
>> 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
>
> Csound mailing list
> [hidden email]
> 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

Csound mailing list
[hidden email]
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
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [Csnd] Problem with simple two note risset-glissando

Jeanette C.
Hi Victor and Steven,
thanks to the two of you. It appears my first problem was only using two
tones. It seems that three is the minimum with the typical gaussian window
function. And that was my second blunder. Now it works perfectly and I'm
already writing my specific UDO.

Thank a lot!

TTFN,

Jeanette

--------
When you need someone, you just turn around and I will be there <3

Csound mailing list
[hidden email]
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
Loading...