Hallo,
I'm trying to use the following orchestra to control the range of glissatos. I'd like to calculate the range on a microtonal base, using a variable index to power the 1/8 of tone index 1.0145453349375237.
The orchestra doesn't work properly.
Maybe you may help me.
Thank you.
sr = 44100
kr = 4410
ksmps = 10
nchnls = 1
instr 1
idur = p3
iampoff = ampdb(p4)
iatt =p5
idec =p6
ifreqmin = p7
iindex = p8
ifreqgliss = ifreqmin * (1.0145453349375237 ^ iindex)
iwaveform = 1
kfreq expon ifreqmin, idur, ifreqmin + ifreqgliss
ken linen iampoff, iatt, idur, idec
ar oscil iampoff, kfreq, iwaveform
ar = ar * ken
out ar
endin
f1 0 4096 10 1
; ==== parte immobile
; iamp iatt idec ifrmin ifrange
i1 0 5 0 .5 .5 261.63 1
i1 0 5 0 .5 .5 349.23 1
i1 0 5 0 .5 .5 440.0 1
; ==== parte mobile
Version: 3
Render: Real
Ask: Yes
Functions: Window
WindowBounds: 339 44 1099 717
Options: -b1024 -A -s -m7 -R
ioView nobackground {65535, 65535, 65535}
ioListing {10, 10} {400, 500}



Amplitudes are wrong
I took a look, and it seems to me all that's probably wrong is that you are not setting your amplitude values properly. Running your program as above, I get a maximum output of '3', which is not audible!
There were just a few changes needed to get a glissando (which I imagine sounds like you intended) out of it. For a start, using a "0dB" value for your instrument, and passing that through 'ampdb' gives you a resulting iampoff of '1', which passed through the rest of your code doesn't get boosted much! (You typically want a value of a few thousand -- 32767 being the max.)
You can either multiply that iampoff by a suitable factor, or use "ampdbfs" -- which scales '0dB' to 32767, and then reduce that enough so that you don't overload things -- remembering too that you have several instruments running together that will add their outputs. I tried, for example:
iampoff = ampdb(p4) * 3000.However, later on you use your iampoff variable more than you need to, so in fact it is squared in your output. I suggest removing the redundant
ar = ar * kenline and replacing 'iampoff' in the previous line with 'ken':ar oscil ken, kfreq, iwaveform.Good luck!