From d42614a2d5b913edbabbb95faac1181911970679 Mon Sep 17 00:00:00 2001 From: David Plans Casal Date: Mon, 12 Dec 2005 13:17:40 +0000 Subject: presentation about current state of Frank development svn path=/trunk/externals/frankenstein/; revision=4195 --- bay.orc | 871 +++++++++++++++++++++++++----------------------- doc/LAMdecember2005.ppt | Bin 0 -> 3507200 bytes makefile.darwin | 4 +- test-harmonizer2.pd | 772 +++++++++++++++++++++++++++++++----------- 4 files changed, 1035 insertions(+), 612 deletions(-) create mode 100644 doc/LAMdecember2005.ppt diff --git a/bay.orc b/bay.orc index e754d31..78edb68 100755 --- a/bay.orc +++ b/bay.orc @@ -1,418 +1,463 @@ -; ================================================================ -; Header -; ================================================================ -sr=44100 -kr=882 -ksmps=50 -nchnls=2 - -; ================================================================ -; Globals -; ================================================================ -zakinit 10,10 - -; Global variable for the reverb unit -ga1 init 0 - -; ================================================================ -; Tables -; ================================================================ -; Waveform for the string-pad -iwave ftgen 1, 0, 4096, 10, 1, .5, .33, .25, .0, .1, .1, .1 - -; Senoid required by chorus -isine ftgen 2, 0, 4096, 10, 1 - - -; ================================================================ -; Instruments -; ================================================================ - - -instr 1 ;String pad -; String-pad borrwoed from the piece "Dorian Gray", -; http://akozar.spymac.net/music/ Modified to fit my needs - -; ihz = p4 -; idb = p5/127 * 70 ; rescale MIDI velocity to 70db -; ipos = p6 -; iamp = ampdb(idb) - -; modified by dmorelli -khz invalue "hz1" +; ================================================================ +; Header +; ================================================================ +sr=44100 +kr=882 +ksmps=50 +nchnls=2 + +; ================================================================ +; Globals +; ================================================================ +zakinit 10,10 + +; Global variable for the reverb unit +ga1 init 0 + +; ================================================================ +; Tables +; ================================================================ +; Waveform for the string-pad +iwave ftgen 1, 0, 4096, 10, 1, .5, .33, .25, .0, .1, .1, .1 + +; Senoid required by chorus +isine ftgen 2, 0, 4096, 10, 1 + + +; ================================================================ +; Instruments +; ================================================================ + + +instr 1 ;String pad +; String-pad borrwoed from the piece "Dorian Gray", +; http://akozar.spymac.net/music/ Modified to fit my needs + +; ihz = p4 +; idb = p5/127 * 70 ; rescale MIDI velocity to 70db +; ipos = p6 +; iamp = ampdb(idb) + +; modified by dmorelli +khz invalue "hz1" kpos invalue "pos1" -kamp invalue "amp1" -kctrl = kamp*70 -kctrl = ampdb(kctrl) - ; Slow attack and release -; kctrl linseg 0, p3/4, iamp, p3/2, 0 - ; Slight chorus effect - afund oscil kctrl, khz, 1 ; audio oscillator - acel1 oscil kctrl, khz - .1, 1 ; audio oscillator - flat - acel2 oscil kctrl, khz + .1, 1 ; audio oscillator - sharp - asig = afund + acel1 + acel2 - - ; Cut-off high frequencies depending on midi-velocity - ; (larger velocity implies more brighter sound) - asig butterlp asig, (p5-60)*40+900 - - ; Panning - kppan = kpos*1.570796325 ; half of PI (radians of 90o angle) - kpleft = cos(kppan) ; half sign "down" - kpright = sin(kppan) ; half sign "up" - asig1 = asig*kpleft; - asig2 = asig*kpright; - ; To the chorus effect, through zak channels 1 and 2 - zawm asig1, 1 - zawm asig2, 2 -endin - - -instr 2 ;String pad -; String-pad borrwoed from the piece "Dorian Gray", -; http://akozar.spymac.net/music/ Modified to fit my needs - -; ihz = p4 -; idb = p5/127 * 70 ; rescale MIDI velocity to 70db -; ipos = p6 -; iamp = ampdb(idb) - -; modified by dmorelli -khz invalue "hz2" +kamp invalue "amp1" +kctrl = kamp*70 +kctrl = ampdb(kctrl) + ; Slow attack and release +; kctrl linseg 0, p3/4, iamp, p3/2, 0 + ; Slight chorus effect + afund oscil kctrl, khz, 1 ; audio oscillator + acel1 oscil kctrl, khz - .1, 1 ; audio oscillator - flat + acel2 oscil kctrl, khz + .1, 1 ; audio oscillator - sharp + asig = afund + acel1 + acel2 + + ; Cut-off high frequencies depending on midi-velocity + ; (larger velocity implies more brighter sound) + asig butterlp asig, (p5-60)*40+900 + + ; Panning + kppan = kpos*1.570796325 ; half of PI (radians of 90o angle) + kpleft = cos(kppan) ; half sign "down" + kpright = sin(kppan) ; half sign "up" + asig1 = asig*kpleft; + asig2 = asig*kpright; + ; To the chorus effect, through zak channels 1 and 2 + zawm asig1, 1 + zawm asig2, 2 +endin + + +instr 2 ;String pad +; String-pad borrwoed from the piece "Dorian Gray", +; http://akozar.spymac.net/music/ Modified to fit my needs + +; ihz = p4 +; idb = p5/127 * 70 ; rescale MIDI velocity to 70db +; ipos = p6 +; iamp = ampdb(idb) + +; modified by dmorelli +khz invalue "hz2" kpos invalue "pos2" -kamp invalue "amp2" -kctrl = kamp*70 -kctrl = ampdb(kctrl) - ; Slow attack and release -; kctrl linseg 0, p3/4, iamp, p3/2, 0 - ; Slight chorus effect - afund oscil kctrl, khz, 1 ; audio oscillator - acel1 oscil kctrl, khz - .1, 1 ; audio oscillator - flat - acel2 oscil kctrl, khz + .1, 1 ; audio oscillator - sharp - asig = afund + acel1 + acel2 - - ; Cut-off high frequencies depending on midi-velocity - ; (larger velocity implies more brighter sound) - asig butterlp asig, (p5-60)*40+900 - - ; Panning - kppan = kpos*1.570796325 ; half of PI (radians of 90o angle) - kpleft = cos(kppan) ; half sign "down" - kpright = sin(kppan) ; half sign "up" - asig1 = asig*kpleft; - asig2 = asig*kpright; - ; To the chorus effect, through zak channels 1 and 2 - zawm asig1, 1 - zawm asig2, 2 -endin - -instr 3 ;String pad -; String-pad borrwoed from the piece "Dorian Gray", -; http://akozar.spymac.net/music/ Modified to fit my needs - - ; ihz = p4 -; idb = p5/127 * 70 ; rescale MIDI velocity to 70db -; ipos = p6 -; iamp = ampdb(idb) - -; modified by dmorelli -khz invalue "hz3" +kamp invalue "amp2" +kctrl = kamp*70 +kctrl = ampdb(kctrl) + ; Slow attack and release +; kctrl linseg 0, p3/4, iamp, p3/2, 0 + ; Slight chorus effect + afund oscil kctrl, khz, 1 ; audio oscillator + acel1 oscil kctrl, khz - .1, 1 ; audio oscillator - flat + acel2 oscil kctrl, khz + .1, 1 ; audio oscillator - sharp + asig = afund + acel1 + acel2 + + ; Cut-off high frequencies depending on midi-velocity + ; (larger velocity implies more brighter sound) + asig butterlp asig, (p5-60)*40+900 + + ; Panning + kppan = kpos*1.570796325 ; half of PI (radians of 90o angle) + kpleft = cos(kppan) ; half sign "down" + kpright = sin(kppan) ; half sign "up" + asig1 = asig*kpleft; + asig2 = asig*kpright; + ; To the chorus effect, through zak channels 1 and 2 + zawm asig1, 1 + zawm asig2, 2 +endin + +instr 3 ;String pad +; String-pad borrwoed from the piece "Dorian Gray", +; http://akozar.spymac.net/music/ Modified to fit my needs + + ; ihz = p4 +; idb = p5/127 * 70 ; rescale MIDI velocity to 70db +; ipos = p6 +; iamp = ampdb(idb) + +; modified by dmorelli +khz invalue "hz3" kpos invalue "pos3" -kamp invalue "amp3" -kctrl = kamp*70 -kctrl = ampdb(kctrl) - ; Slow attack and release -; kctrl linseg 0, p3/4, iamp, p3/2, 0 - ; Slight chorus effect - afund oscil kctrl, khz, 1 ; audio oscillator - acel1 oscil kctrl, khz - .1, 1 ; audio oscillator - flat - acel2 oscil kctrl, khz + .1, 1 ; audio oscillator - sharp - asig = afund + acel1 + acel2 - - ; Cut-off high frequencies depending on midi-velocity - ; (larger velocity implies more brighter sound) - asig butterlp asig, (p5-60)*40+900 - - ; Panning - kppan = kpos*1.570796325 ; half of PI (radians of 90o angle) - kpleft = cos(kppan) ; half sign "down" - kpright = sin(kppan) ; half sign "up" - asig1 = asig*kpleft; - asig2 = asig*kpright; - ; To the chorus effect, through zak channels 1 and 2 - zawm asig1, 1 - zawm asig2, 2 -endin -instr 4 ;String pad -; String-pad borrwoed from the piece "Dorian Gray", -; http://akozar.spymac.net/music/ Modified to fit my needs - -; ihz = p4 -; idb = p5/127 * 70 ; rescale MIDI velocity to 70db -; ipos = p6 -; iamp = ampdb(idb) - -; modified by dmorelli -khz invalue "hz4" +kamp invalue "amp3" +kctrl = kamp*70 +kctrl = ampdb(kctrl) + ; Slow attack and release +; kctrl linseg 0, p3/4, iamp, p3/2, 0 + ; Slight chorus effect + afund oscil kctrl, khz, 1 ; audio oscillator + acel1 oscil kctrl, khz - .1, 1 ; audio oscillator - flat + acel2 oscil kctrl, khz + .1, 1 ; audio oscillator - sharp + asig = afund + acel1 + acel2 + + ; Cut-off high frequencies depending on midi-velocity + ; (larger velocity implies more brighter sound) + asig butterlp asig, (p5-60)*40+900 + + ; Panning + kppan = kpos*1.570796325 ; half of PI (radians of 90o angle) + kpleft = cos(kppan) ; half sign "down" + kpright = sin(kppan) ; half sign "up" + asig1 = asig*kpleft; + asig2 = asig*kpright; + ; To the chorus effect, through zak channels 1 and 2 + zawm asig1, 1 + zawm asig2, 2 +endin + + +instr 4 ;String pad +; String-pad borrwoed from the piece "Dorian Gray", +; http://akozar.spymac.net/music/ Modified to fit my needs + +; ihz = p4 +; idb = p5/127 * 70 ; rescale MIDI velocity to 70db +; ipos = p6 +; iamp = ampdb(idb) + +; modified by dmorelli +khz invalue "hz4" kpos invalue "pos4" -kamp invalue "amp4" -kctrl = kamp*70 -kctrl = ampdb(kctrl) - ; Slow attack and release -; kctrl linseg 0, p3/4, iamp, p3/2, 0 - ; Slight chorus effect - afund oscil kctrl, khz, 1 ; audio oscillator - acel1 oscil kctrl, khz - .1, 1 ; audio oscillator - flat - acel2 oscil kctrl, khz + .1, 1 ; audio oscillator - sharp - asig = afund + acel1 + acel2 - - ; Cut-off high frequencies depending on midi-velocity - ; (larger velocity implies more brighter sound) - asig butterlp asig, (p5-60)*40+900 - - ; Panning - kppan = kpos*1.570796325 ; half of PI (radians of 90o angle) - kpleft = cos(kppan) ; half sign "down" - kpright = sin(kppan) ; half sign "up" - asig1 = asig*kpleft; - asig2 = asig*kpright; - ; To the chorus effect, through zak channels 1 and 2 - zawm asig1, 1 - zawm asig2, 2 -endin - - - - - -; strumento senza invalue - -instr 9 ;String pad -; String-pad borrwoed from the piece "Dorian Gray", -; http://akozar.spymac.net/music/ Modified to fit my needs - - ihz = p4 - idb = p5/127 * 70 ; rescale MIDI velocity to 70db - ipos = p6 - iamp = ampdb(idb) - -; modified by dmorelli - +kamp invalue "amp4" +kctrl = kamp*70 +kctrl = ampdb(kctrl) + ; Slow attack and release +; kctrl linseg 0, p3/4, iamp, p3/2, 0 + ; Slight chorus effect + afund oscil kctrl, khz, 1 ; audio oscillator + acel1 oscil kctrl, khz - .1, 1 ; audio oscillator - flat + acel2 oscil kctrl, khz + .1, 1 ; audio oscillator - sharp + asig = afund + acel1 + acel2 + + ; Cut-off high frequencies depending on midi-velocity + ; (larger velocity implies more brighter sound) + asig butterlp asig, (p5-60)*40+900 + + ; Panning + kppan = kpos*1.570796325 ; half of PI (radians of 90o angle) + kpleft = cos(kppan) ; half sign "down" + kpright = sin(kppan) ; half sign "up" + asig1 = asig*kpleft; + asig2 = asig*kpright; + ; To the chorus effect, through zak channels 1 and 2 + zawm asig1, 1 + zawm asig2, 2 +endin + +instr 5 ;String pad +; String-pad borrwoed from the piece "Dorian Gray", +; http://akozar.spymac.net/music/ Modified to fit my needs + +; ihz = p4 +; idb = p5/127 * 70 ; rescale MIDI velocity to 70db +; ipos = p6 +; iamp = ampdb(idb) + +; modified by dmorelli +khz invalue "hz5" +kpos invalue "pos5" +kamp invalue "amp5" +kctrl = kamp*70 +kctrl = ampdb(kctrl) + ; Slow attack and release +; kctrl linseg 0, p3/4, iamp, p3/2, 0 + ; Slight chorus effect + afund oscil kctrl, khz, 1 ; audio oscillator + acel1 oscil kctrl, khz - .1, 1 ; audio oscillator - flat + acel2 oscil kctrl, khz + .1, 1 ; audio oscillator - sharp + asig = afund + acel1 + acel2 + + ; Cut-off high frequencies depending on midi-velocity + ; (larger velocity implies more brighter sound) + asig butterlp asig, (p5-60)*40+900 + + ; Panning + kppan = kpos*1.570796325 ; half of PI (radians of 90o angle) + kpleft = cos(kppan) ; half sign "down" + kpright = sin(kppan) ; half sign "up" + asig1 = asig*kpleft; + asig2 = asig*kpright; + ; To the chorus effect, through zak channels 1 and 2 + zawm asig1, 1 + zawm asig2, 2 +endin + +; live input per reverbero + +instr 8 ;live input + asig1,asig2 ins + zawm asig1, 1 + zawm asig2, 2 +endin + + +; strumento senza invalue + +instr 9 ;String pad +; String-pad borrwoed from the piece "Dorian Gray", +; http://akozar.spymac.net/music/ Modified to fit my needs + + ihz = p4 + idb = p5/127 * 70 ; rescale MIDI velocity to 70db + ipos = p6 + iamp = ampdb(idb) + +; modified by dmorelli + ;kpos invalue "pos1" -;kamp invalue "amp1" -;kctrl = kamp*70 -;kctrl = ampdb(kctrl) - ; Slow attack and release - kctrl linseg 0, p3/4, iamp, p3/2, 0 - ; Slight chorus effect - afund oscil kctrl, ihz, 1 ; audio oscillator - acel1 oscil kctrl, ihz - .1, 1 ; audio oscillator - flat - acel2 oscil kctrl, ihz + .1, 1 ; audio oscillator - sharp - asig = afund + acel1 + acel2 - - ; Cut-off high frequencies depending on midi-velocity - ; (larger velocity implies more brighter sound) - asig butterlp asig, (p5-60)*40+900 - - ; Panning - ippan = ipos*1.570796325 ; half of PI (radians of 90o angle) - ipleft = cos(ippan) ; half sign "down" - ipright = sin(ippan) ; half sign "up" - asig1 = asig*ipleft; - asig2 = asig*ipright; - ; To the chorus effect, through zak channels 1 and 2 - zawm asig1, 1 - zawm asig2, 2 -endin - -; ================================================================ -; EFFECTS -; ================================================================ - - -; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -; Chorus effect, borrowed from http://www.jlpublishing.com/Csound.htm -; I made some of its parameters accesible trhough score -instr 10 ;Chorus - ; Read input from zak - a1 zar 1 - a2 zar 2 - idlyml=p4 ;delay in milliseconds - k1 oscili idlyml/p5, 1, 2 - ar1l vdelay3 a1, idlyml/5+k1, 900 ;delayed sound 1 - ar1r vdelay3 a2, idlyml/5+k1, 900 ;delayed sound 1 - k2 oscili idlyml/p5, .995, 2 - ar2l vdelay3 a1, idlyml/5+k2, 700 ;delayed sound 2 - ar2r vdelay3 a2, idlyml/5+k2, 700 ;delayed sound 2 - k3 oscili idlyml/p5, 1.05, 2 - ar3l vdelay3 a1, idlyml/5+k3, 700 ;delayed sound 3 - ar3r vdelay3 a2, idlyml/5+k3, 700 ;delayed sound 3 - k4 oscili idlyml/p5, 1, 2 - ar4l vdelay3 a1, idlyml/5+k4, 900 ;delayed sound 4 - ar4r vdelay3 a2, idlyml/5+k4, 900 ;delayed sound 4 - aoutl = (a1+ar1l+ar2l+ar3l+ar4l)*.5 - aoutr = (a2+ar1r+ar2r+ar3r+ar4r)*.5 - - ; To the output mixer - zawm aoutl, 5 - zawm aoutr, 6 - ; and also to the reverb unit - ga1 = ga1 + (aoutl+aoutr)*.5 -endin - -; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -; Reverb -; 8 delay line FDN reverb, with feedback matrix based upon -; physical modeling scattering junction of 8 lossless waveguides -; of equal characteristic impedance. Based on Julius O. Smith III, -; "A New Approach to Digital Reverberation using Closed Waveguide -; Networks," Proceedings of the International Computer Music -; Conference 1985, p. 47-53 (also available as a seperate -; publication from CCRMA), as well as some more recent papers by -; Smith and others. -; -; Coded by Sean Costello, October 1999 -instr 25 ;Reverb - ; Note: ga1 is the global input to the reverb. - afilt1 init 0 - afilt2 init 0 - afilt3 init 0 - afilt4 init 0 - afilt5 init 0 - afilt6 init 0 - afilt7 init 0 - afilt8 init 0 - idel1 = (2473.000/sr) - idel2 = (2767.000/sr) - idel3 = (3217.000/sr) - idel4 = (3557.000/sr) - idel5 = (3907.000/sr) - idel6 = (4127.000/sr) - idel7 = (2143.000/sr) - idel8 = (1933.000/sr) - - - igain = p4 ; gain of reverb. Adjust empirically - ; for desired reverb time. .6 gives - ; a good small "live" room sound, .8 - ; a small hall, .9 a large hall, - ; .99 an enormous stone cavern. - - ipitchmod = p5 ; amount of random pitch modulation - ; for the delay lines. 1 is the "normal" - ; amount, but this may be too high for - ; held pitches such as piano tones. - ; Adjust to taste. - - itone = p6 ; Cutoff frequency of lowpass filters - ; in feedback loops of delay lines, - ; in Hz. Lower cutoff frequencies results - ; in a sound with more high-frequency - ; damping. - - ; k1-k8 are used to add random pitch modulation to the - ; delay lines. Helps eliminate metallic overtones - ; in the reverb sound. - k1 randi .001, 3.1, .06 - k2 randi .0011, 3.5, .9 - k3 randi .0017, 1.11, .7 - k4 randi .0006, 3.973, .3 - k5 randi .001, 2.341, .63 - k6 randi .0011, 1.897, .7 - k7 randi .0017, 0.891, .9 - k8 randi .0006, 3.221, .44 - ; apj is used to calculate "resultant junction pressure" for - ; the scattering junction of 8 lossless waveguides - ; of equal characteristic impedance. If you wish to - ; add more delay lines, simply add them to the following - ; equation, and replace the .25 by 2/N, where N is the - ; number of delay lines. - apj = .25 * (afilt1 + afilt2 + afilt3 + afilt4 + afilt5 + afilt6 + afilt7 + afilt8) - - - adum1 delayr 1 - adel1 deltapi idel1 + k1 * ipitchmod - delayw ga1 + apj - afilt1 - - adum2 delayr 1 - adel2 deltapi idel2 + k2 * ipitchmod - delayw ga1 + apj - afilt2 - - adum3 delayr 1 - adel3 deltapi idel3 + k3 * ipitchmod - delayw ga1 + apj - afilt3 - - adum4 delayr 1 - adel4 deltapi idel4 + k4 * ipitchmod - delayw ga1 + apj - afilt4 - - adum5 delayr 1 - adel5 deltapi idel5 + k5 * ipitchmod - delayw ga1 + apj - afilt5 - - adum6 delayr 1 - adel6 deltapi idel6 + k6 * ipitchmod - delayw ga1 + apj - afilt6 - - adum7 delayr 1 - adel7 deltapi idel7 + k7 * ipitchmod - delayw ga1 + apj - afilt7 - - adum8 delayr 1 - adel8 deltapi idel8 + k8 * ipitchmod - delayw ga1 + apj - afilt8 - - ; 1st order lowpass filters in feedback - ; loops of delay lines. - afilt1 tone adel1 * igain, itone - afilt2 tone adel2 * igain, itone - afilt3 tone adel3 * igain, itone - afilt4 tone adel4 * igain, itone - afilt5 tone adel5 * igain, itone - afilt6 tone adel6 * igain, itone - afilt7 tone adel7 * igain, itone - afilt8 tone adel8 * igain, itone - - ; The outputs of the delay lines are summed - ; and sent to the stereo outputs. This could - ; easily be modified for a 4 or 8-channel - ; sound system. - aout1 = (afilt1 + afilt3 + afilt5 + afilt7) - aout2 = (afilt2 + afilt4 + afilt6 + afilt8) - ;outs aout1, aout2 - ; To the output mixer - zawm aout1, 5 - zawm aout2, 6 - ga1 = 0 -endin - - -; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -; Output mixer -; It applies a bass enhancement, compression and fadeout -; to the whole piece, -instr 30 ;Mixer - ; Read input from zak - a1 zar 5 - a2 zar 6 - ; Bass enhancement - al1 butterlp a1, 100 - al2 butterlp a2, 100 - a1 = al1*1.5 +a1 - a2 = al2*1.5 +a2 - - ; Global amplitude shape - ; It applies a gain of p4 to the whole piece, and creates a - ; fadeout the last p5 seconds - kenv linseg p4, p3-p5, p4, p5, 0 - a1=a1*kenv - a2=a2*kenv - - ; Compression - a1 dam a1, 5000, 0.5, 1, 0.2, 0.1 - a2 dam a2, 5000, 0.5, 1, 0.2, 0.1 - - outs a1, a2 - zacl 0, 10 -endin - +;kamp invalue "amp1" +;kctrl = kamp*70 +;kctrl = ampdb(kctrl) + ; Slow attack and release + kctrl linseg 0, p3/4, iamp, p3/2, 0 + ; Slight chorus effect + afund oscil kctrl, ihz, 1 ; audio oscillator + acel1 oscil kctrl, ihz - .1, 1 ; audio oscillator - flat + acel2 oscil kctrl, ihz + .1, 1 ; audio oscillator - sharp + asig = afund + acel1 + acel2 + + ; Cut-off high frequencies depending on midi-velocity + ; (larger velocity implies more brighter sound) + asig butterlp asig, (p5-60)*40+900 + + ; Panning + ippan = ipos*1.570796325 ; half of PI (radians of 90o angle) + ipleft = cos(ippan) ; half sign "down" + ipright = sin(ippan) ; half sign "up" + asig1 = asig*ipleft; + asig2 = asig*ipright; + ; To the chorus effect, through zak channels 1 and 2 + zawm asig1, 1 + zawm asig2, 2 +endin + +; ================================================================ +; EFFECTS +; ================================================================ + + +; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +; Chorus effect, borrowed from http://www.jlpublishing.com/Csound.htm +; I made some of its parameters accesible trhough score +instr 10 ;Chorus + ; Read input from zak + a1 zar 1 + a2 zar 2 + idlyml=p4 ;delay in milliseconds + k1 oscili idlyml/p5, 1, 2 + ar1l vdelay3 a1, idlyml/5+k1, 900 ;delayed sound 1 + ar1r vdelay3 a2, idlyml/5+k1, 900 ;delayed sound 1 + k2 oscili idlyml/p5, .995, 2 + ar2l vdelay3 a1, idlyml/5+k2, 700 ;delayed sound 2 + ar2r vdelay3 a2, idlyml/5+k2, 700 ;delayed sound 2 + k3 oscili idlyml/p5, 1.05, 2 + ar3l vdelay3 a1, idlyml/5+k3, 700 ;delayed sound 3 + ar3r vdelay3 a2, idlyml/5+k3, 700 ;delayed sound 3 + k4 oscili idlyml/p5, 1, 2 + ar4l vdelay3 a1, idlyml/5+k4, 900 ;delayed sound 4 + ar4r vdelay3 a2, idlyml/5+k4, 900 ;delayed sound 4 + aoutl = (a1+ar1l+ar2l+ar3l+ar4l)*.5 + aoutr = (a2+ar1r+ar2r+ar3r+ar4r)*.5 + + ; To the output mixer + zawm aoutl, 5 + zawm aoutr, 6 + ; and also to the reverb unit + ga1 = ga1 + (aoutl+aoutr)*.5 +endin + +; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +; Reverb +; 8 delay line FDN reverb, with feedback matrix based upon +; physical modeling scattering junction of 8 lossless waveguides +; of equal characteristic impedance. Based on Julius O. Smith III, +; "A New Approach to Digital Reverberation using Closed Waveguide +; Networks," Proceedings of the International Computer Music +; Conference 1985, p. 47-53 (also available as a seperate +; publication from CCRMA), as well as some more recent papers by +; Smith and others. +; +; Coded by Sean Costello, October 1999 +instr 25 ;Reverb + ; Note: ga1 is the global input to the reverb. + afilt1 init 0 + afilt2 init 0 + afilt3 init 0 + afilt4 init 0 + afilt5 init 0 + afilt6 init 0 + afilt7 init 0 + afilt8 init 0 + idel1 = (2473.000/sr) + idel2 = (2767.000/sr) + idel3 = (3217.000/sr) + idel4 = (3557.000/sr) + idel5 = (3907.000/sr) + idel6 = (4127.000/sr) + idel7 = (2143.000/sr) + idel8 = (1933.000/sr) + + + igain = p4 ; gain of reverb. Adjust empirically + ; for desired reverb time. .6 gives + ; a good small "live" room sound, .8 + ; a small hall, .9 a large hall, + ; .99 an enormous stone cavern. + + ipitchmod = p5 ; amount of random pitch modulation + ; for the delay lines. 1 is the "normal" + ; amount, but this may be too high for + ; held pitches such as piano tones. + ; Adjust to taste. + + itone = p6 ; Cutoff frequency of lowpass filters + ; in feedback loops of delay lines, + ; in Hz. Lower cutoff frequencies results + ; in a sound with more high-frequency + ; damping. + + ; k1-k8 are used to add random pitch modulation to the + ; delay lines. Helps eliminate metallic overtones + ; in the reverb sound. + k1 randi .001, 3.1, .06 + k2 randi .0011, 3.5, .9 + k3 randi .0017, 1.11, .7 + k4 randi .0006, 3.973, .3 + k5 randi .001, 2.341, .63 + k6 randi .0011, 1.897, .7 + k7 randi .0017, 0.891, .9 + k8 randi .0006, 3.221, .44 + ; apj is used to calculate "resultant junction pressure" for + ; the scattering junction of 8 lossless waveguides + ; of equal characteristic impedance. If you wish to + ; add more delay lines, simply add them to the following + ; equation, and replace the .25 by 2/N, where N is the + ; number of delay lines. + apj = .25 * (afilt1 + afilt2 + afilt3 + afilt4 + afilt5 + afilt6 + afilt7 + afilt8) + + + adum1 delayr 1 + adel1 deltapi idel1 + k1 * ipitchmod + delayw ga1 + apj - afilt1 + + adum2 delayr 1 + adel2 deltapi idel2 + k2 * ipitchmod + delayw ga1 + apj - afilt2 + + adum3 delayr 1 + adel3 deltapi idel3 + k3 * ipitchmod + delayw ga1 + apj - afilt3 + + adum4 delayr 1 + adel4 deltapi idel4 + k4 * ipitchmod + delayw ga1 + apj - afilt4 + + adum5 delayr 1 + adel5 deltapi idel5 + k5 * ipitchmod + delayw ga1 + apj - afilt5 + + adum6 delayr 1 + adel6 deltapi idel6 + k6 * ipitchmod + delayw ga1 + apj - afilt6 + + adum7 delayr 1 + adel7 deltapi idel7 + k7 * ipitchmod + delayw ga1 + apj - afilt7 + + adum8 delayr 1 + adel8 deltapi idel8 + k8 * ipitchmod + delayw ga1 + apj - afilt8 + + ; 1st order lowpass filters in feedback + ; loops of delay lines. + afilt1 tone adel1 * igain, itone + afilt2 tone adel2 * igain, itone + afilt3 tone adel3 * igain, itone + afilt4 tone adel4 * igain, itone + afilt5 tone adel5 * igain, itone + afilt6 tone adel6 * igain, itone + afilt7 tone adel7 * igain, itone + afilt8 tone adel8 * igain, itone + + ; The outputs of the delay lines are summed + ; and sent to the stereo outputs. This could + ; easily be modified for a 4 or 8-channel + ; sound system. + aout1 = (afilt1 + afilt3 + afilt5 + afilt7) + aout2 = (afilt2 + afilt4 + afilt6 + afilt8) + ;outs aout1, aout2 + ; To the output mixer + zawm aout1, 5 + zawm aout2, 6 + ga1 = 0 +endin + + +; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +; Output mixer +; It applies a bass enhancement, compression and fadeout +; to the whole piece, +instr 30 ;Mixer + ; Read input from zak + a1 zar 5 + a2 zar 6 + ; Bass enhancement + al1 butterlp a1, 100 + al2 butterlp a2, 100 + a1 = al1*1.5 +a1 + a2 = al2*1.5 +a2 + + ; Global amplitude shape + ; It applies a gain of p4 to the whole piece, and creates a + ; fadeout the last p5 seconds + kenv linseg p4, p3-p5, p4, p5, 0 + a1=a1*kenv + a2=a2*kenv + + ; Compression + a1 dam a1, 5000, 0.5, 1, 0.2, 0.1 + a2 dam a2, 5000, 0.5, 1, 0.2, 0.1 + + outs a1, a2 + zacl 0, 10 +endin + diff --git a/doc/LAMdecember2005.ppt b/doc/LAMdecember2005.ppt new file mode 100644 index 0000000..7285e48 Binary files /dev/null and b/doc/LAMdecember2005.ppt differ diff --git a/makefile.darwin b/makefile.darwin index 79914a5..19d1834 100755 --- a/makefile.darwin +++ b/makefile.darwin @@ -5,7 +5,7 @@ clean: ; rm -f *.pd_linux *.o *.pd_darwin # ----------------------- Mac OSX ----------------------- -pd_darwin: chord_melo.pd_darwin +pd_darwin: chord_melo.pd_darwin rhythms_memory.pd_darwin test.pd_darwin GArhythm.pd_darwin .SUFFIXES: .pd_darwin @@ -13,7 +13,7 @@ pd_darwin: chord_melo.pd_darwin # where are the PD header files? # leave it blank if it is a system directory (like /usr/local/include), # since gcc 3.2 complains about it -PDPATH=/Users/Development/music/puredatacvs/devel_0_39/src +PDPATH=/Applications/PdOLD.app/Contents/Resources/src #PDPATH=/Users/davidemorelli/Desktop/robaDavide/Pd-0.38-3.app/Contents/Resources/src/ # where is the PD executable? diff --git a/test-harmonizer2.pd b/test-harmonizer2.pd index b6f6756..a3bf592 100755 --- a/test-harmonizer2.pd +++ b/test-harmonizer2.pd @@ -1,197 +1,575 @@ -#N canvas 72 0 919 691 12; -#X symbolatom 157 205 18 0 0 2 next_chord - -; -#N canvas 39 349 531 328 readme 0; -#X text 59 31 howto populate the graph: play the chord \, when the -output of [chord] is ok bang the "add" message. bang it each time you -change chord \, it will store the transitions; -#X text 56 120 howto ask for the next chord: play the chord \, bang -the "set" message \, this will set the current chord without adding -it to the graph's memory \, now bang the next 1 message. this chord_graph -will respond with the chord you played most of the times after the -current chord. you can send "next x" where x is from 0 to 1 \, 0 = -max novelty \, 1= min novelty; -#X text 56 259 you can save graph state sending the write message; -#X restore 607 47 pd readme; -#X obj 121 329 harmonizer; -#X msg 52 286 current \$1; -#X msg 158 283 target \$1; -#X obj 52 262 symbol; -#X obj 52 242 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 157 261 symbol; -#X obj 289 261 int 36; -#X obj 355 262 int 60; -#X obj 426 260 int 67; -#X obj 494 259 int 76; -#X obj 566 262 int 84; -#X obj 335 289 pack f f f f f; -#X obj 358 233 t b b b b b; -#X obj 246 369 unpack f f f f f; -#X obj 127 108 symbol; -#X obj 98 43 bng 15 250 50 0 empty empty change_chord 0 -6 0 8 -262144 --1 -1; -#X msg 127 132 set \$1; -#N canvas 0 0 714 424 midi 0; -#X obj 141 253 outlet; -#X obj 271 31 notein; -#X obj 271 66 chord 59; -#X msg 175 149 add \$1; -#X obj 175 121 symbol; -#X obj 176 94 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 248 163 symbol; -#X obj 249 136 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X msg 248 191 set \$1; -#X symbolatom 311 101 25 0 0 0 - - -; -#X connect 1 0 2 0; -#X connect 1 1 2 1; -#X connect 2 2 4 1; -#X connect 2 2 6 1; -#X connect 2 2 9 0; -#X connect 3 0 0 0; -#X connect 4 0 3 0; -#X connect 5 0 4 0; -#X connect 6 0 8 0; -#X connect 7 0 6 0; -#X connect 8 0 0 0; -#X restore 512 135 pd midi; -#N canvas 0 0 458 308 fileIO 0; -#X obj 143 225 outlet; -#X msg 115 77 write test.graph; -#X msg 145 105 read test.graph; -#X msg 175 135 init 1; -#X connect 1 0 0 0; -#X connect 2 0 0 0; -#X connect 3 0 0 0; -#X restore 429 134 pd fileIO; -#X obj 100 73 t b b; -#X obj 157 228 t b a; -#X obj 28 404 bang; -#X obj 203 420 mtof; -#X obj 252 419 mtof; -#X obj 337 423 mtof; -#X obj 180 601 dac~; -#X obj 109 431 print; -#X obj 74 111 f 1; -#X msg 59 135 next \$1; -#X obj 63 70 vsl 15 30 0 1 0 0 empty empty empty 0 -8 0 8 -262144 -1 --1 2610 1; -#X floatatom 32 112 5 0 0 0 - - -; -#X obj 178 571 csoundapi~ bay.orc; -#X msg 488 520 event i 10 0 17000 10 30; -#X msg 488 543 event i 30 0 17000 2 30; -#X msg 489 496 event i 25 0 17000 0.98 0.8 20000; -#X obj 482 458 loadbang; -#X msg 196 492 event i 9 0 10 \$1 80 0.5; -#X obj 295 422 mtof; -#X obj 381 424 mtof; -#X obj 462 22 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 -; -#X obj 462 41 metro 7000; -#X obj 13 32 r novelty; -#X obj 599 121 int 0; -#X obj 646 120 + 1; -#X obj 600 171 tabread tab-novelty; -#X obj 600 194 s novelty; -#X obj 685 119 table tab-novelty; -#X obj 600 147 % 10; -#X obj 462 63 t b b; -#X msg 467 377 \; tab-novelty 0 1 1 0.8 0.7 0.3 0.5 0.9 0.1 0 0.2; -#X obj 203 97 symbol; -#X msg 203 125 tonality \$1; -#X obj 203 73 bng 15 250 50 0 empty empty change 0 -6 0 8 -262144 -1 --1; -#X obj 19 160 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X symbolatom 305 204 15 0 0 2 tonality - -; -#X obj 83 169 chords_memory test.graph; -#X obj 307 94 symbol; -#X obj 307 70 bng 15 250 50 0 empty empty change 0 -6 0 8 -262144 -1 --1; -#X msg 307 122 modulation \$1; -#X obj 445 189 print sequence; -#X msg 235 15 search 9 1 5 0.9; -#X connect 2 0 15 0; -#X connect 2 0 28 0; -#X connect 3 0 2 0; -#X connect 4 0 2 0; -#X connect 5 0 3 0; -#X connect 6 0 5 0; -#X connect 7 0 4 0; -#X connect 8 0 13 0; -#X connect 9 0 13 1; -#X connect 10 0 13 2; -#X connect 11 0 13 3; -#X connect 12 0 13 4; -#X connect 13 0 2 0; -#X connect 14 0 8 0; -#X connect 14 1 9 0; -#X connect 14 2 10 0; -#X connect 14 3 11 0; -#X connect 14 4 12 0; -#X connect 15 0 8 1; -#X connect 15 0 23 0; -#X connect 15 0 24 0; -#X connect 15 1 9 1; -#X connect 15 1 25 0; -#X connect 15 2 10 1; -#X connect 15 2 39 0; -#X connect 15 3 11 1; -#X connect 15 3 26 0; -#X connect 15 4 12 1; -#X connect 15 4 40 0; -#X connect 16 0 18 0; -#X connect 17 0 21 0; -#X connect 18 0 57 0; -#X connect 19 0 57 0; -#X connect 20 0 57 0; -#X connect 21 0 29 0; -#X connect 22 0 14 0; -#X connect 22 1 7 0; -#X connect 23 0 5 0; -#X connect 24 0 38 0; -#X connect 25 0 38 0; -#X connect 26 0 38 0; -#X connect 29 0 30 0; -#X connect 30 0 57 0; -#X connect 31 0 29 1; -#X connect 31 0 32 0; -#X connect 33 0 27 0; -#X connect 33 1 27 1; -#X connect 34 0 33 0; -#X connect 35 0 33 0; -#X connect 36 0 33 0; -#X connect 37 0 36 0; -#X connect 37 0 34 0; -#X connect 37 0 35 0; -#X connect 37 0 51 0; -#X connect 38 0 33 0; -#X connect 39 0 38 0; -#X connect 40 0 38 0; -#X connect 41 0 42 0; -#X connect 42 0 50 0; -#X connect 43 0 31 0; -#X connect 44 0 45 0; -#X connect 44 0 49 0; -#X connect 45 0 44 1; -#X connect 46 0 47 0; -#X connect 49 0 46 0; -#X connect 50 0 21 0; -#X connect 50 1 44 0; -#X connect 52 0 53 0; -#X connect 53 0 57 0; -#X connect 54 0 52 0; -#X connect 55 0 57 0; -#X connect 57 0 0 0; -#X connect 57 0 5 1; -#X connect 57 0 22 0; -#X connect 57 0 52 1; -#X connect 57 0 16 0; -#X connect 57 0 58 1; -#X connect 57 1 56 0; -#X connect 57 2 61 0; -#X connect 58 0 60 0; -#X connect 59 0 58 0; -#X connect 60 0 57 0; -#X connect 62 0 57 0; +#N canvas 194 23 939 711 10; +#X symbolatom 157 205 18 0 0 2 next_chord - -; +#N canvas 39 349 535 332 readme 0; +#X text 59 31 howto populate the graph: play the chord \, when the +output of [chord] is ok bang the "add" message. bang it each time you +change chord \, it will store the transitions; +#X text 56 120 howto ask for the next chord: play the chord \, bang +the "set" message \, this will set the current chord without adding +it to the graph's memory \, now bang the next 1 message. this chord_graph +will respond with the chord you played most of the times after the +current chord. you can send "next x" where x is from 0 to 1 \, 0 = +max novelty \, 1= min novelty; +#X text 56 259 you can save graph state sending the write message; +#X restore 607 47 pd readme; +#X obj 121 329 harmonizer; +#X msg 52 286 current \$1; +#X msg 158 283 target \$1; +#X obj 52 262 symbol; +#X obj 52 242 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 157 261 symbol; +#X obj 289 261 int 36; +#X obj 355 262 int 60; +#X obj 426 260 int 67; +#X obj 494 259 int 76; +#X obj 566 262 int 84; +#X obj 335 289 pack f f f f f; +#X obj 358 233 t b b b b b; +#X obj 264 329 unpack f f f f f; +#X obj 127 108 symbol; +#X obj 98 43 bng 15 250 50 0 empty empty change_chord 0 -6 0 8 -262144 +-1 -1; +#X msg 127 132 set \$1; +#N canvas 0 22 714 424 midi 0; +#X obj 141 253 outlet; +#X obj 271 31 notein; +#X obj 271 66 chord 59; +#X msg 175 149 add \$1; +#X obj 175 121 symbol; +#X obj 176 94 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 248 163 symbol; +#X obj 249 136 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 248 191 set \$1; +#X symbolatom 311 101 25 0 0 0 - - -; +#X connect 1 0 2 0; +#X connect 1 1 2 1; +#X connect 2 2 4 1; +#X connect 2 2 6 1; +#X connect 2 2 9 0; +#X connect 3 0 0 0; +#X connect 4 0 3 0; +#X connect 5 0 4 0; +#X connect 6 0 8 0; +#X connect 7 0 6 0; +#X connect 8 0 0 0; +#X restore 512 135 pd midi; +#N canvas 0 22 462 312 fileIO 0; +#X obj 143 225 outlet; +#X msg 115 77 write test.graph; +#X msg 145 105 read test.graph; +#X msg 175 135 init 1; +#X connect 1 0 0 0; +#X connect 2 0 0 0; +#X connect 3 0 0 0; +#X restore 429 134 pd fileIO; +#X obj 100 73 t b b; +#X obj 157 228 t b a; +#X obj 63 359 bang; +#X obj 221 380 mtof; +#X obj 270 379 mtof; +#X obj 355 383 mtof; +#X obj 144 386 print; +#X obj 74 111 f 1; +#X msg 59 135 next \$1; +#X obj 63 70 vsl 15 30 0 1 0 0 empty empty empty 0 -8 0 8 -262144 -1 +-1 0 1; +#X floatatom 32 112 5 0 0 0 - - -; +#X obj 527 400 loadbang; +#X obj 313 382 mtof; +#X obj 399 384 mtof; +#X obj 462 22 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 462 41 metro 7000; +#X obj 13 32 r novelty; +#X obj 599 121 int 0; +#X obj 646 120 + 1; +#X obj 600 171 tabread tab-novelty; +#X obj 600 194 s novelty; +#X obj 685 119 table tab-novelty; +#X obj 600 147 % 10; +#X obj 462 63 t b b; +#X msg 489 365 \; tab-novelty 0 1 1 0.8 0.7 0.3 0.5 0.9 0.1 0 0.2; +#X obj 203 97 symbol; +#X msg 203 125 tonality \$1; +#X obj 203 73 bng 15 250 50 0 empty empty change 0 -6 0 8 -262144 -1 +-1; +#X obj 19 160 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X symbolatom 305 204 15 0 0 2 tonality - -; +#X obj 307 94 symbol; +#X obj 307 70 bng 15 250 50 0 empty empty change 0 -6 0 8 -262144 -1 +-1; +#X msg 307 122 modulation \$1; +#X obj 445 189 print sequence; +#X msg 235 15 search 9 1 5 0.9; +#X msg 262 407 i9 0 10 \$1 80 0.5; +#X msg 502 440 i25 0 17000 0.98 0.8 20000; +#X msg 500 464 i10 0 17000 10 30; +#X msg 500 487 i30 0 17000 2 30; +#X obj 172 422 print; +#X obj 265 445 s csound; +#N canvas 0 25 807 561 bay 0; +#X obj 12 83 loadbang; +#N canvas 0 22 759 336 ascoltaHits 0; +#X obj 161 223 outlet; +#X obj 146 33 r 1-hit; +#X obj 147 54 bang; +#X msg 147 83 60; +#X obj 198 57 bang; +#X obj 197 36 r 2-hit; +#X msg 198 86 72; +#X obj 254 57 bang; +#X msg 254 86 48; +#X obj 253 36 r 3-hit; +#X obj 303 60 bang; +#X msg 303 89 67; +#X obj 303 39 r 4-hit; +#X obj 359 60 bang; +#X obj 422 60 bang; +#X obj 422 39 r 6-hit; +#X obj 359 39 r 5-hit; +#X msg 359 89 76; +#X msg 422 89 36; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 0 0; +#X connect 4 0 6 0; +#X connect 5 0 4 0; +#X connect 6 0 0 0; +#X connect 7 0 8 0; +#X connect 8 0 0 0; +#X connect 9 0 7 0; +#X connect 10 0 11 0; +#X connect 11 0 0 0; +#X connect 12 0 10 0; +#X connect 13 0 17 0; +#X connect 14 0 18 0; +#X connect 15 0 14 0; +#X connect 16 0 13 0; +#X connect 17 0 0 0; +#X connect 18 0 0 0; +#X restore 428 102 pd ascoltaHits; +#X obj 430 164 mtof; +#N canvas 0 22 462 312 chords 0; +#X obj 132 43 inlet; +#X obj 131 240 outlet; +#X obj 262 31 loadbang; +#X obj 260 74 metro 20000; +#X obj 257 115 int 0; +#X obj 303 117 + 1; +#X obj 257 136 % 2; +#X obj 246 162 select 0 1; +#X obj 131 214 + 0; +#X msg 243 182 0; +#X msg 270 184 7; +#X msg 260 54 1; +#X connect 0 0 8 0; +#X connect 2 0 11 0; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 4 0 6 0; +#X connect 5 0 4 1; +#X connect 6 0 7 0; +#X connect 7 0 9 0; +#X connect 7 1 10 0; +#X connect 8 0 1 0; +#X connect 9 0 8 1; +#X connect 10 0 8 1; +#X connect 11 0 3 0; +#X restore 430 131 pd chords; +#N canvas 0 22 940 672 ascolta-valori 0; +#X obj 135 554 outlet; +#X obj 28 146 line; +#X msg 27 123 \$1 100; +#X msg 27 175 control amp1 \$1; +#X obj 146 100 line; +#X msg 145 77 \$1 100; +#X obj 144 26 + 1; +#X obj 143 51 / 2; +#X obj 265 143 line; +#X msg 264 119 \$1 100; +#X obj 382 135 line; +#X msg 381 112 \$1 100; +#X obj 380 61 + 1; +#X obj 379 86 / 2; +#X msg 264 171 control amp2 \$1; +#X obj 297 304 line; +#X msg 296 281 \$1 100; +#X obj 414 288 line; +#X msg 413 265 \$1 100; +#X obj 412 214 + 1; +#X obj 411 239 / 2; +#X obj 533 331 line; +#X msg 532 307 \$1 100; +#X obj 650 323 line; +#X msg 649 300 \$1 100; +#X obj 648 249 + 1; +#X obj 647 274 / 2; +#X msg 296 324 control amp3 \$1; +#X msg 531 359 control amp4 \$1; +#N canvas 0 22 678 338 graph16 0; +#X array vol 100 float 3; +#A 0 0.382146 0.444444 0.527258 0.5757 0.610071 0.636731 0.658514 0.676931 +0.692884 0.706956 0.719544 0.730931 0.741327 0.75089 0.759744 0.767987 +0.775698 0.782941 0.78977 0.796229 0.802357 0.808187 0.813745 0.819055 +0.82414 0.829017 0.833703 0.838212 0.842557 0.84675 0.8508 0.854718 +0.858511 0.862187 0.865754 0.869217 0.872583 0.875856 0.879043 0.882146 +0.885171 0.888121 0.891 0.893811 0.896558 0.899243 0.901869 0.904438 +0.906954 0.909417 0.911831 0.914197 0.916517 0.918792 0.921026 0.923218 +0.925371 0.927485 0.929563 0.931605 0.933613 0.935588 0.937531 0.939443 +0.941324 0.943177 0.945001 0.946797 0.948567 0.950311 0.952031 0.953725 +0.955396 0.957044 0.95867 0.960273 0.961856 0.963418 0.964959 0.966481 +0.967984 0.969468 0.970934 0.972382 0.973813 0.975227 0.976624 0.978006 +0.979371 0.980721 0.982056 0.983376 0.984682 0.985974 0.987252 0.988516 +0.989767 0.991005 0.99223 1.0615; +#X coords 0 1 99 0 200 140 1; +#X restore 532 24 graph; +#X obj 26 101 tabread vol; +#X obj 28 76 * 100; +#X obj 265 97 tabread vol; +#X obj 262 75 * 100; +#X obj 28 48 clip 0 1; +#X obj 262 40 clip 0 1; +#X obj 307 264 tabread vol; +#X obj 307 242 * 100; +#X obj 308 222 clip 0 1; +#X obj 534 284 tabread vol; +#X obj 534 262 * 100; +#X obj 535 242 clip 0 1; +#X msg 149 129 control pos1 \$1; +#X msg 385 164 control pos2 \$1; +#X msg 417 317 control pos3 \$1; +#X msg 653 352 control pos4 \$1; +#X obj 434 493 line; +#X msg 433 469 \$1 100; +#X obj 551 485 line; +#X msg 550 462 \$1 100; +#X obj 549 411 + 1; +#X obj 548 436 / 2; +#X obj 435 446 tabread vol; +#X obj 435 424 * 100; +#X obj 436 404 clip 0 1; +#X msg 432 521 control amp5 \$1; +#X msg 553 514 control pos5 \$1; +#X obj 28 13 r 1-velo; +#X obj 145 6 r 1-x; +#X obj 264 17 r 2-velo; +#X obj 296 202 r 3-velo; +#X obj 412 194 r 3-x; +#X obj 528 216 r 4-velo; +#X obj 649 229 r 4-x; +#X obj 429 378 r 5-velo; +#X obj 550 391 r 5-x; +#X obj 382 40 r 2-x; +#X obj 839 58 + 1; +#X obj 761 97 log; +#X obj 803 59 int 1; +#X obj 759 119 / 4.65; +#X obj 807 83 t f f; +#X obj 785 33 metro 10; +#X obj 785 14 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 763 183 tabwrite vol; +#X msg 848 32 1; +#X obj 758 141 + 0.8; +#X obj 757 160 / 1.8; +#X connect 1 0 3 0; +#X connect 2 0 1 0; +#X connect 3 0 0 0; +#X connect 4 0 42 0; +#X connect 5 0 4 0; +#X connect 6 0 7 0; +#X connect 7 0 5 0; +#X connect 8 0 14 0; +#X connect 9 0 8 0; +#X connect 10 0 43 0; +#X connect 11 0 10 0; +#X connect 12 0 13 0; +#X connect 13 0 11 0; +#X connect 14 0 0 0; +#X connect 15 0 27 0; +#X connect 16 0 15 0; +#X connect 17 0 44 0; +#X connect 18 0 17 0; +#X connect 19 0 20 0; +#X connect 20 0 18 0; +#X connect 21 0 28 0; +#X connect 22 0 21 0; +#X connect 23 0 45 0; +#X connect 24 0 23 0; +#X connect 25 0 26 0; +#X connect 26 0 24 0; +#X connect 27 0 0 0; +#X connect 28 0 0 0; +#X connect 30 0 2 0; +#X connect 31 0 30 0; +#X connect 32 0 9 0; +#X connect 33 0 32 0; +#X connect 34 0 31 0; +#X connect 35 0 33 0; +#X connect 36 0 16 0; +#X connect 37 0 36 0; +#X connect 38 0 37 0; +#X connect 39 0 22 0; +#X connect 40 0 39 0; +#X connect 41 0 40 0; +#X connect 42 0 0 0; +#X connect 43 0 0 0; +#X connect 44 0 0 0; +#X connect 45 0 0 0; +#X connect 46 0 55 0; +#X connect 47 0 46 0; +#X connect 48 0 56 0; +#X connect 49 0 48 0; +#X connect 50 0 51 0; +#X connect 51 0 49 0; +#X connect 52 0 47 0; +#X connect 53 0 52 0; +#X connect 54 0 53 0; +#X connect 55 0 0 0; +#X connect 56 0 0 0; +#X connect 57 0 34 0; +#X connect 58 0 6 0; +#X connect 59 0 35 0; +#X connect 60 0 38 0; +#X connect 61 0 19 0; +#X connect 62 0 41 0; +#X connect 63 0 25 0; +#X connect 64 0 54 0; +#X connect 65 0 50 0; +#X connect 66 0 12 0; +#X connect 67 0 69 1; +#X connect 68 0 70 0; +#X connect 69 0 67 0; +#X connect 69 0 71 0; +#X connect 70 0 76 0; +#X connect 71 0 68 0; +#X connect 71 1 74 1; +#X connect 72 0 69 0; +#X connect 73 0 72 0; +#X connect 75 0 69 0; +#X connect 76 0 77 0; +#X connect 77 0 74 0; +#X restore 592 84 pd ascolta-valori; +#X obj 567 118 bay --------; +#X obj 367 279 catch~ mainL; +#X obj 491 281 catch~ mainR; +#X obj 376 318 *~ 0.01; +#X obj 467 319 *~ 0.01; +#X obj 701 211 vsl 15 128 0 0.8 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 317 1; +#X floatatom 700 346 5 0 0 0 - - -; +#X obj 750 195 loadbang; +#X msg 750 216 0.02; +#X obj 265 365 csound~ 2 2; +#X obj 332 137 r csound; +#X msg 156 24 i9 0 8 400 90 0.3; +#X msg 23 159 i30 0 17000 2 30; +#X msg 23 136 i10 0 17000 10 30; +#X msg 24 112 i25 0 17000 0.98 0.8 20000; +#X msg 1 182 bang \; csound bin /usr/local/bin/csound \; csound orc +bay.orc \; csound sco bay.sco \; csound csound -dm0 \; csound bang +\; pd dsp 1; +#X msg 267 58 i9 0 8 450 90 0.3; +#X msg 293 20 i9 0 8 500 90 0.3; +#X obj 255 392 /~ 32767; +#X obj 324 391 /~ 32767; +#N canvas 77 25 718 506 note---- 0; +#X obj 95 284 outlet; +#X obj 95 222 mtof; +#X obj 202 211 mtof; +#X obj 309 220 mtof; +#X obj 412 221 mtof; +#X obj 120 133 inlet; +#X obj 195 140 inlet; +#X obj 310 163 inlet; +#X obj 414 170 inlet; +#X obj 533 224 mtof; +#X obj 535 173 inlet; +#X obj 204 283 outlet; +#X obj 303 284 outlet; +#X obj 408 280 outlet; +#X obj 539 274 outlet; +#X connect 1 0 0 0; +#X connect 2 0 11 0; +#X connect 3 0 12 0; +#X connect 4 0 13 0; +#X connect 5 0 1 0; +#X connect 6 0 2 0; +#X connect 7 0 3 0; +#X connect 8 0 4 0; +#X connect 9 0 14 0; +#X connect 10 0 9 0; +#X restore 567 142 pd note----; +#X obj 324 411 /~ 1.5; +#X obj 255 412 /~ 1.5; +#X obj 235 450 outlet~; +#X obj 328 446 outlet~; +#X msg 404 197 i9 0 14 \$1 90 0.3; +#X obj 408 242 inlet~; +#X obj 479 243 inlet~; +#X connect 0 0 20 0; +#X connect 0 0 17 0; +#X connect 0 0 18 0; +#X connect 0 0 19 0; +#X connect 1 0 3 0; +#X connect 2 0 30 0; +#X connect 3 0 2 0; +#X connect 5 0 25 0; +#X connect 5 1 25 1; +#X connect 5 2 25 2; +#X connect 5 3 25 3; +#X connect 5 4 25 4; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 14 0; +#X connect 9 0 14 1; +#X connect 10 0 9 1; +#X connect 10 0 8 1; +#X connect 10 0 11 0; +#X connect 12 0 13 0; +#X connect 13 0 10 0; +#X connect 14 0 23 0; +#X connect 14 1 24 0; +#X connect 15 0 14 0; +#X connect 16 0 14 0; +#X connect 17 0 14 0; +#X connect 18 0 14 0; +#X connect 19 0 14 0; +#X connect 21 0 14 0; +#X connect 22 0 14 0; +#X connect 23 0 27 0; +#X connect 24 0 26 0; +#X connect 25 0 30 0; +#X connect 25 1 30 0; +#X connect 25 2 30 0; +#X connect 25 3 30 0; +#X connect 25 4 30 0; +#X connect 26 0 29 0; +#X connect 27 0 28 0; +#X connect 30 0 14 0; +#X connect 31 0 8 0; +#X connect 32 0 9 0; +#X restore 195 544 pd bay; +#X obj 242 683 dac~; +#X obj 194 629 +~; +#X obj 294 632 +~; +#X obj 151 527 vsl 15 128 0.01 1 1 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 8262 1; +#X obj 186 599 *~ 0.5; +#X obj 238 600 *~ 0.5; +#X obj 87 563 loadbang; +#X floatatom 149 660 5 0 0 0 - - -; +#X obj 380 526 vsl 15 128 0.1 3 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 8321 1; +#X floatatom 378 659 5 0 0 0 - - -; +#X obj 217 653 *~ 1; +#X obj 269 654 *~ 1; +#X obj 311 574 loadbang; +#X text 67 620 volume bay; +#X msg 313 597 2; +#X msg 104 594 0.2; +#X obj 83 169 chords_memory test.graph; +#X connect 2 0 15 0; +#X connect 2 0 27 0; +#X connect 3 0 2 0; +#X connect 4 0 2 0; +#X connect 5 0 3 0; +#X connect 6 0 5 0; +#X connect 7 0 4 0; +#X connect 8 0 13 0; +#X connect 9 0 13 1; +#X connect 10 0 13 2; +#X connect 11 0 13 3; +#X connect 12 0 13 4; +#X connect 13 0 2 0; +#X connect 14 0 8 0; +#X connect 14 1 9 0; +#X connect 14 2 10 0; +#X connect 14 3 11 0; +#X connect 14 4 12 0; +#X connect 15 0 8 1; +#X connect 15 0 23 0; +#X connect 15 0 24 0; +#X connect 15 1 9 1; +#X connect 15 1 25 0; +#X connect 15 2 10 1; +#X connect 15 2 33 0; +#X connect 15 3 11 1; +#X connect 15 3 26 0; +#X connect 15 4 12 1; +#X connect 15 4 34 0; +#X connect 16 0 18 0; +#X connect 17 0 21 0; +#X connect 18 0 79 0; +#X connect 19 0 79 0; +#X connect 20 0 79 0; +#X connect 21 0 28 0; +#X connect 22 0 14 0; +#X connect 22 1 7 0; +#X connect 23 0 5 0; +#X connect 24 0 56 0; +#X connect 25 0 56 0; +#X connect 26 0 56 0; +#X connect 28 0 29 0; +#X connect 29 0 79 0; +#X connect 30 0 28 1; +#X connect 30 0 31 0; +#X connect 32 0 57 0; +#X connect 32 0 58 0; +#X connect 32 0 59 0; +#X connect 32 0 45 0; +#X connect 33 0 56 0; +#X connect 34 0 56 0; +#X connect 35 0 36 0; +#X connect 36 0 44 0; +#X connect 37 0 30 0; +#X connect 38 0 39 0; +#X connect 38 0 43 0; +#X connect 39 0 38 1; +#X connect 40 0 41 0; +#X connect 43 0 40 0; +#X connect 44 0 21 0; +#X connect 44 1 38 0; +#X connect 46 0 47 0; +#X connect 47 0 79 0; +#X connect 48 0 46 0; +#X connect 49 0 79 0; +#X connect 51 0 53 0; +#X connect 52 0 51 0; +#X connect 53 0 79 0; +#X connect 55 0 79 0; +#X connect 56 0 61 0; +#X connect 56 0 60 0; +#X connect 57 0 61 0; +#X connect 58 0 61 0; +#X connect 59 0 61 0; +#X connect 62 0 67 0; +#X connect 62 1 68 0; +#X connect 64 0 73 0; +#X connect 65 0 74 0; +#X connect 66 0 67 1; +#X connect 66 0 68 1; +#X connect 66 0 70 0; +#X connect 67 0 64 0; +#X connect 68 0 65 0; +#X connect 69 0 78 0; +#X connect 71 0 72 0; +#X connect 71 0 73 1; +#X connect 71 0 74 1; +#X connect 73 0 63 0; +#X connect 74 0 63 1; +#X connect 75 0 77 0; +#X connect 77 0 71 0; +#X connect 78 0 66 0; +#X connect 79 0 0 0; +#X connect 79 0 5 1; +#X connect 79 0 22 0; +#X connect 79 0 46 1; +#X connect 79 0 16 0; +#X connect 79 0 51 1; +#X connect 79 1 50 0; +#X connect 79 2 54 0; -- cgit v1.2.1