Mikelson waveguide slide-flute
| Date | 2015-09-08 11:16 |
| From | Tarmo Johannes |
| Subject | Mikelson waveguide slide-flute |
Hi,
I am trying to study Hans Mikelson waveguid flute from the Csound Book,
Chapter "Mathematical modeling with Csound: From Waveguides to Chaos"
Has anyone gone it thorugh or can explain me, what is the a-signal
afqc = 1/ifqc - asum1/20000 -9/sr + ifqc/12000000
It is used to read from the delay buffers representing the flute embouchure
and bore delay lines:
aflute1 deltapi afqc
ax deltapi afcs/2
The afcs is depends on asum1 that is basically random noise?
The entire intrument is pasted below
Thanks!
tarmo
instr 1902
aflute1 init 0
ifqc = cpspch(p5)
ipress = p6
ibreath = p7
ifeedbk1 = p8
ifeedbk2 = p9
; FLOW SETUP
kenv1 linseg 0, .06, 1.1*ipress, .2, ipress, p3-.16, ipress, .02, 0
;kenv1 linseg 0, 0.2, 1.1*ipress,0.02,0
kenv2 linseg 0, .01, 1, p3-.02, 1, .01, 0 ; declick, basically
kenvibr linseg 0, .5, 0, .5, 1, p3-1, 1 ; VIBRATO ENVELOPE - start after
0.5 seconds
; THE VALUES MUST BE APPROXIMATELY -1 TO 1 OR THE CUBIC WILL BLOW UP
aflow1 rand kenv1
kvibr oscil .1*kenvibr, 5, 3
; ibreath CAN BE USED TO ADJUST THE NOISE LEVEL
asum1 = ibreath*aflow1 + kenv1 + kvibr ; why + kenv1
asum2 = asum1 + aflute1*ifeedbk1
afqc = 1/ifqc - asum1/20000 -9/sr + ifqc/12000000 ; what is this
?
; EMBOUCHURE DELAY SHOULD BE 1/2 THE BORE DELAY
; ax delay asum2, (1/ifqc-10/sr)/2
atemp1 delayr 1/ifqc/2
ax deltapi afqc/2 ; - asum1/ifqc/10 + 1/1000 ;
delayw asum2
apoly = ax - ax*ax*ax
asum3 = apoly + aflute1*ifeedbk2 ; was asum3
gasum3+= asum3
avalue tone gasum3, 2000
; BORE, THE BORE LENGTH DETERMINES PITCH. SHORTER IS HIGHER PITCH
atemp2 delayr 1/ifqc
aflute1 deltapi afqc
delayw avalue
out avalue*p4*kenv2
endin
------------------------------------------------------------------------------
_______________________________________________
Csound-users mailing list
Csound-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/csound-users
Send bugs reports to
https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here |
| Date | 2015-09-08 12:23 |
| From | Oeyvind Brandtsegg |
| Subject | Re: Mikelson waveguide slide-flute |
I have looked as this earlier, but the details are a bit in the dark just now. But let's see, the basic delay time comes from 1/ifqc, vibrato is added by kvibr and the kenv1 envelope seems to variations in pressure over the time span of a note. There seems to also be a (possibly empirical?) adjustment of the delay time for tuning purposes, compensating for delay in the tone filter ( -9/sr + ifqc/12000000). The noise component in the delay time is probably related to breathy-ness (one aspect of which is the noise going into the delay line and another is the amount of turbulence = random modulation of the delay time). Consider this guesswork, but hope it may help more than it confiuses. Oeyvind 2015-09-08 12:16 GMT+02:00 Tarmo Johannes |
| Date | 2015-09-08 13:29 |
| From | Tarmo Johannes |
| Subject | Re: Mikelson waveguide slide-flute |
| Attachments | None None |
|
Thank you, Oeyvind!
afqc = 1/ifqc-asum1/20000-9/sr+ifqc/12000000
Yes, I guess you are right - everything after the 1/ifqc is probably empirical correction for the frequency. If to think, the value is practically 1/ifqc - that is length of the delay line (inversion of frequency), all other values are so small that it varies just very little.
tarmo
On Tuesday 08 September 2015 13:23:44 Oeyvind Brandtsegg wrote: > I have looked as this earlier, but the details are a bit in the dark > just now. But let's see, > the basic delay time comes from 1/ifqc, > vibrato is added by kvibr and the kenv1 envelope seems to variations > in pressure over the time span of a note. > There seems to also be a (possibly empirical?) adjustment of the delay > time for tuning purposes, compensating for delay in the tone filter ( > -9/sr + ifqc/12000000). > The noise component in the delay time is probably related to > breathy-ness (one aspect of which is the noise going into the delay > line and another is the amount of turbulence = random modulation of > the delay time). > Consider this guesswork, but hope it may help more than it confiuses. > Oeyvind > > 2015-09-08 12:16 GMT+02:00 Tarmo Johannes <tarmo.johannes@otsakool.edu.ee>: > > Hi, > > > > I am trying to study Hans Mikelson waveguid flute from the Csound Book, > > Chapter "Mathematical modeling with Csound: From Waveguides to Chaos" > > > > Has anyone gone it thorugh or can explain me, what is the a-signal > > > > afqc = 1/ifqc - asum1/20000 -9/sr + ifqc/12000000 > > > > It is used to read from the delay buffers representing the flute > > embouchure > > and bore delay lines: > > > > aflute1 deltapi afqc > > > > ax deltapi afcs/2 > > > > The afcs is depends on asum1 that is basically random noise? > > > > The entire intrument is pasted below > > > > Thanks! > > > > tarmo > > > > instr 1902 > > > > aflute1 init 0 > > ifqc = cpspch(p5) > > ipress = p6 > > ibreath = p7 > > ifeedbk1 = p8 > > ifeedbk2 = p9 > > > > ; FLOW SETUP > > kenv1 linseg 0, .06, 1.1*ipress, .2, ipress, p3-.16, ipress, .02, 0 > > ;kenv1 linseg 0, 0.2, 1.1*ipress,0.02,0 > > > > kenv2 linseg 0, .01, 1, p3-.02, 1, .01, 0 ; declick, basically > > kenvibr linseg 0, .5, 0, .5, 1, p3-1, 1 ; VIBRATO ENVELOPE - start > > after 0.5 seconds > > > > ; THE VALUES MUST BE APPROXIMATELY -1 TO 1 OR THE CUBIC WILL BLOW UP > > aflow1 rand kenv1 > > kvibr oscil .1*kenvibr, 5, 3 > > > > ; ibreath CAN BE USED TO ADJUST THE NOISE LEVEL > > asum1 = ibreath*aflow1 + kenv1 + kvibr ; why + kenv1 > > asum2 = asum1 + aflute1*ifeedbk1 > > > > afqc = 1/ifqc - asum1/20000 -9/sr + ifqc/12000000 ; what is > > this ? > > > > ; EMBOUCHURE DELAY SHOULD BE 1/2 THE BORE DELAY > > ; ax delay asum2, (1/ifqc-10/sr)/2 > > atemp1 delayr 1/ifqc/2 > > > > > > ax deltapi afqc/2 ; - asum1/ifqc/10 + 1/1000 ; > > > > delayw asum2 > > > > apoly = ax - ax*ax*ax > > asum3 = apoly + aflute1*ifeedbk2 ; was asum3 > > gasum3+= asum3 > > > > > > avalue tone gasum3, 2000 > > > > ; BORE, THE BORE LENGTH DETERMINES PITCH. SHORTER IS HIGHER PITCH > > atemp2 delayr 1/ifqc > > aflute1 deltapi afqc > > > > delayw avalue > > > > out avalue*p4*kenv2 > > > > endin > > > > -------------------------------------------------------------------------- > > ---- _______________________________________________ > > Csound-users mailing list > > Csound-users@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/csound-users > > Send bugs reports to > > > > https://github.com/csound/csound/issues > > > > Discussions of bugs and features can be posted here
|