aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Plans Casal <pland@users.sourceforge.net>2005-12-12 13:17:40 +0000
committerDavid Plans Casal <pland@users.sourceforge.net>2005-12-12 13:17:40 +0000
commitd42614a2d5b913edbabbb95faac1181911970679 (patch)
treee53c46b4b99f84e895014ee758505c027fd29fdf
parent5d4b268cbcc834b30e226da84d1fed9e723b7e85 (diff)
presentation about current state of Frank development
svn path=/trunk/externals/frankenstein/; revision=4195
-rwxr-xr-xbay.orc871
-rw-r--r--doc/LAMdecember2005.pptbin0 -> 3507200 bytes
-rwxr-xr-xmakefile.darwin4
-rwxr-xr-xtest-harmonizer2.pd772
4 files changed, 1035 insertions, 612 deletions
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
--- /dev/null
+++ b/doc/LAMdecember2005.ppt
Binary files 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;