i.csd

i.csd

csound4android

;i

gkNVoices 1 8 1 6 linear Number of simulataneous voices

gkOctaveShift -1 1 - 0 linear transposition in octaves

gkBrightness 0.1 2 - 1 linear brightness

gkLevel 0 1 - 0.7 linear output level

gkSpeed 1 4 - 1 linear speed of the glissandi

gkrange 7 72 - 54 linear range for random pitch choice for new notes 

gkbase 12 72 - 12 linear base offset for random pitch choice for new notes 


<CsoundSynthesizer>


<CsOptions>

-odac -dm3

</CsOptions>


<CsInstruments>

sr = 48000

ksmps = 48

nchnls = 2

0dbfs = 1


gisine ftgen 0, 0, 131072, 10, 1

gasendL,gasendR init 0

seed 0

alwayson "read_channels"  

alwayson "rescale_controls"

alwayson "start_multiple_long_notes"

alwayson "reverb"


instr read_channels

gkslider1 chnget "slider1"

chnset (6-1)/(8-1),"slider1"

gkslider2 chnget "slider2"

chnset 0.5,"slider2"

gkslider3 chnget "slider3"

chnset (1-0.1)/(2-0.1),"slider3"

gkslider4 chnget "slider4"

chnset 0,"slider4"

gkslider5 chnget "slider5"

chnset 0,"slider5"

gktrackpadx chnget "trackpad.x"

chnset (54-12)/(72-12),"trackpad.x"

gktrackpady chnget "trackpad.y"

chnset 0,"trackpad.y"

endin

instr rescale_controls

gkNVoices scale gkslider1,8,1

gkOctaveShift scale gkslider2,1,-1

gkBrightness scale gkslider3,2,0.1

gklh scale gkslider4,11,1

gkSpeed scale gkslider5,4,1

gkrange scale gktrackpadx,72,7

gkbase scale gktrackpady,72,12

endin


instr start_multiple_long_notes

icount = 1

loop:

event_i "i", "trombone", icount-0.9, 3600

loop_le icount,1,8,loop

endin


instr trombone

knote init rnd(12)+54

knote = int(knote)

ktrig metro 0.015*gkSpeed

if(ktrig==1) then

reinit retrig

endif

retrig:

inote1 init i(knote)

inote2 init rnd(i(gkbase))+i(gkrange)

inote2 limit int(inote2),12,84

inotemid = inote1+((inote2-inote1)/2)

idur = (22.5+rnd(5))/i(gkSpeed)

icurve = 2

timout 0, idur, skip

knote transeg inote1,idur/2,icurve,inotemid,idur/2,-icurve,inote2

skip:

rireturn

kenv linseg 0, 25, 0.03, p3-50, 0.03, 25, 0

kdtn jspline 0.05, 0.4, 0.8 ; slowly shifting detuning

kmul rspline 0.3, 0.82, 0.04, 0.2 ; brightness control

kamp rspline 0.02, 3, 0.05, 0.1 ; random amplitude

kmul limit (kmul^1.75)*gkBrightness,0,0.9

a1 gbuzz kenv*kamp, cpsmidinn(knote)*semitone(kdtn)*octave(gkOctaveShift), 75, gklh, kmul, gisine

a1 dcblock2 a1

kOnOff = (gkNVoices>=p2?1:0) ; check if this voice should be active

kOnOff port kOnOff,0.5 ; smooth on/off amplitude switch for this voice

aOnOff interp kOnOff ; interpolate to create a-rate amplitude switch (prevents quantisation noise) 

kpan rspline 0,1,0.1,1 ; random panning movement

a1, a2 pan2 a1*aOnOff, kpan ; create stereo auto-panning signal

outs a1, a2 ; send audio to outputs

gasendL = gasendL+a1 ; add audio to reverb send signal

gasendR = gasendR+a2

endin


instr reverb

aL, aR reverbsc gasendL,gasendR,0.85,10000

outs aL, aR

clear gasendL, gasendR

endin

</CsInstruments>


<CsScore>

</CsScore>


</CsoundSynthesizer>


Report Page