| For OLPCsound - Barry Vercoe and Simon Schampijer added new opcodes
to Csound5
The midiremote family. - insremot, insglobal, midremot and midglobal
Ii think that they are in the manual?
In my XO demo .csd files below, you can see that you assign unique
IP addresses for the master and the receivers and you can layer
instruments - etc... (ultimately the XO's will learn these and
publish these on their own as part of the MESH network)
These allowed us to have Csound run on a master OLPC XO machine and
send the score remotely to 4-6 other XO computers. We had version of
some
nice pop songs made with soundfonts and MIDI (by my Berklee students)
and
some 4-voice bach fugues, and trapped (of course) all divided up and
performing
on these multiple machine wirelessly - the sync was pretty good.
Simon can really tell you more of the details of the system and the
issues that we faced.
I did the composing and orchestration and make the orchestras work.
Essentially each machine had a complete copy of the orchestra and
score and
the master computer used the midiremote message to assign which
voices would
be rendered by which XO and also served as the master clock.
Barry did attempt to play some longer sample-based works by his son
Scotty.
These had huge audio tracks of drums and backing vocals - and in these,
the sync was much worse, but our note-list and midi examples using
soundfonts
were pretty cool and impressive - In Vegas, when we introduced the
XOs - we did
a multiXO version of Trapped in a HUGE theatre - it was pretty great.
Here are several of our demo orchestras. I think you will be able to
deduce from them
how they worked:
sr = 44100
kr = 441
ksmps = 100
nchnls = 2
massign 1,1
massign 2,2
massign 3,3
massign 4,4
massign 5,5
ga1 init 0
ga2 init 0
gi1 sfload "19Trumpet.sf2"
sfilist gi1
sfplist gi1
gi2 sfload "01hpschd.sf2"
sfilist gi2
sfplist gi2
gi3 sfload "07AcousticGuitar.sf2"
sfilist gi3
sfplist gi3
gi4 sfload "22Bassoon.sf2"
sfilist gi4
sfplist gi4
;gi4 sfload "03ClaudioPiano.sf2"
;gi4 sfload "17Strings.sf2"
;gi3 sfload "13TubularBells.sf2"
;gi4 sfload "10SyntheticElectronic.sf2"
;gi3 sfload "001.3mg FM Dreams Sampler Bank.sf2"
;gi4 sfload "05RockDrums.sf2"
;gi1 sfload "003.3mg GS Roland Sound Set 16 bit Bank.SF2"
;gi2 sfload "003.2mg Roland Sound Canvas Bank.sf2" ;YES
;gi3 sfload "08stavi_violin.sf2"
;gi4 sfload "02acousticBass.sf2"
;gi4 sfload "15StringQuartet.sf2"
;gi2 sfload "04AJH_Piano.sf2"
;gi2 sfload "06DonnyGuitar.sf2"
;gi2 sfload "09StarTrekFX.sf2"
;gi2 sfload "11FlorestanPiano.sf2"
;gi2 sfload "12ClassicTechno.SF2"
;gi2 sfload "13TubularBells.sf2"
;gi2 sfload "14Harmonica.sf2"
;gi2 sfload "16Pizzicato.sf2"
;gi2 sfload "18AhhChoir.sf2"
;gi2 sfload "20Horns.sf2"
;gi4 sfload "21Woodwinds.sf2"
;gi2 sfload "23Contrabassoon.sf2"
;gi2 sfload "GMGSBank1.sf2"
;gi2 sfload "000.1mg CIA Sounds V2 Bank.SF2"
;gi2 sfload "000.5mg ClassicTechno Bank.SF2"
;gi2 sfload "000.5mg Synth 512 Bank.sf2"
;gi2 sfload "001.3mg FM Dreams Sampler Bank.sf2"
;gi2 sfload "003.1mg Florestan Basic GM GS Bank.sf2"
;gi2 sfload "003.3mg GS Roland Sound Set 16 bit Bank.SF2"
gitab ftgen 1,0,1024,10,1
midremot "192.168.1.100", "192.168.1.101", 1
midremot "192.168.1.100", "192.168.1.102", 2
midremot "192.168.1.100", "192.168.1.103", 3
midremot "192.168.1.100", "192.168.1.104", 4
midglobal "192.168.1.100", 5
instr 1
sfpassign 0, gi1
ipres init 0
ifreq cpsmidi
iamp ampmidi 10
inum notnum
ivel veloc
kamp linsegr 1,1,1,.1,0
kfreq init 1
a1,a2 sfplay ivel,inum,kamp*iamp,kfreq,int(ipres),0
outs a1,a2
vincr ga1, a1*.5
vincr ga2, a2*.5
endin
instr 2
sfpassign 0, gi2
ipres init 0
ifreq cpsmidi
iamp ampmidi 15
inum notnum
ivel veloc
kamp linsegr 1,1,1,.1,0
kfreq init 1
a1,a2 sfplay ivel,inum,kamp*iamp,kfreq,int(ipres),0
outs a1,a2
vincr ga1, a1*.4
vincr ga2, a2*.4
endin
instr 3
sfpassign 0, gi3
ipres init 0
ifreq cpsmidi
iamp ampmidi 10
inum notnum
ivel veloc
kamp linsegr 1,1,1,.1,0
kfreq init 1
a1,a2 sfplay ivel,inum,kamp*iamp,kfreq,int(ipres),0
outs a1,a2
vincr ga1, a1*.5
vincr ga2, a2*.5
endin
instr 4
sfpassign 0, gi4
ipres init 0
ifreq cpsmidi
iamp ampmidi 15
inum notnum
ivel veloc
kamp linsegr 1,1,1,.1,0
kfreq init 1
a1,a2 sfplay ivel,inum,kamp*iamp,kfreq,int(ipres),0
outs a1,a2
vincr ga1, a1*.5
vincr ga2, a2*.5
endin
instr 5
kamp midic7 1,0,1
denorm ga1
denorm ga2
aL, aR reverbsc ga1, ga2, .9, 16000, sr, 0.5
outs aL, aR
ga1 = 0
ga2 = 0
endin
; Score
f0 3600
=====================
Another:
;=============================================================
; Play
;
; ROMMEL MOLINA 2006
;
;==============================================================
sr = 44100
kr = 4410
ksmps = 10
nchnls = 2
massign 1,1
massign 2,2
massign 3,3
massign 4,4
massign 5,5
massign 6,6
massign 7,7
massign 16,16
ga1 init 0
gi2 sfload "Guitarra.sf2"
sfilist gi2
sfplist gi2
gi3 sfload "Bass.sf2"
sfilist gi3
sfplist gi3
gi4 sfload "PercVarious.sf2"
sfilist gi4
sfplist gi4
gi5 sfload "rythm.sf2"
sfilist gi5
sfplist gi5
gi6 sfload "Voz.sf2"
sfilist gi6
sfplist gi6
gi7 sfload "Piano.sf2"
sfilist gi7
sfplist gi7
gi8 sfload "Stones.sf2"
sfilist gi8
sfplist gi8
midremot "192.168.1.100", "192.168.1.101", 6
midremot "192.168.1.100", "192.168.1.102", 5
midremot "192.168.1.100", "192.168.1.103", 1
midremot "192.168.1.100", "192.168.1.104", 2
midremot "192.168.1.100", "192.168.1.105", 7
midglobal "192.168.1.100", 16
instr 1 ;Guitar
sfpassign 0,gi2
ipres init 0
ifreq cpsmidi
iamp ampmidi 9
inum notnum
ivel veloc
kamp linsegr 1,1,1,.1,0
kfreq init 1
a1,a2 sfplay ivel,inum,(kamp*iamp)/4,kfreq,int(ipres),0
af1 butterhp a1,80
af2 butterhp a2,80
ga1 = ga1 + ((af1 + af2)*.2)
outs a1,a2
endin
instr 2 ;Bass
sfpassign 0,gi3
ipres init 0
ifreq cpsmidi
iamp ampmidi 14
inum notnum
ivel veloc
kamp linsegr 1,1,1,.1,0
kfreq init 1
a1,a2 sfplay ivel,inum,(kamp*iamp)/4,kfreq,int(ipres),0
outs a1,a2
endin
instr 3 ;Percucion
sfpassign 0,gi4
ipres init 0
ifreq cpsmidi
iamp ampmidi 8
inum notnum
ivel veloc
kamp linsegr 1,1,1,.1,0
kfreq init 1
a1,a2 sfplay ivel,inum,(kamp*iamp)/4,kfreq,int(ipres),0
ga1 = ga1 + ((a1 + a2)/15)
outs a1,a2
endin
instr 4 ;Rhythms
sfpassign 0,gi5
ipres init 0
ifreq cpsmidi
iamp ampmidi 12
inum notnum
ivel veloc
kamp linsegr 1,1,1,.1,0
kfreq init 1
a1,a2 sfplay ivel,inum,(kamp*iamp)/4,kfreq,int(ipres),0
ga1 = ga1 + ((a1 + a2)*.1)
outs a1,a2
endin
instr 5 ;Voz
sfpassign 0,gi6
ipres init 0
ifreq cpsmidi
iamp ampmidi 15
inum notnum
ivel veloc
kamp linsegr 1,1,1,.1,0
kfreq init 1
a1,a2 sfplay ivel,inum,(kamp*iamp)/4,kfreq,int(ipres),0
af1 butterhp a1,500
af2 butterhp a2,500
al1 pareq af1, 5000, 3, 1.5
ar2 pareq af2, 5000, 3, 1.5
ga1 = ga1 + ((al1 + ar2)/3)
outs al1,ar2
endin
instr 6 ;Piano
sfpassign 0,gi7
ipres init 0
ifreq cpsmidi
iamp ampmidi 11
inum notnum
ivel veloc
kamp linsegr 1,1,1,.1,0
kfreq init 1
a1,a2 sfplay ivel,inum,(kamp*iamp)/4,kfreq,int(ipres),0
ga1 = ga1 + ((a1 + a2)/3)
outs a1,a2
endin
instr 7 ;Stones
sfpassign 0,gi8
ipres init 0
ifreq cpsmidi
iamp ampmidi 4
inum notnum
ivel veloc
kamp linsegr 1,1,1,.1,0
kfreq init 1
a1,a2 sfplay ivel,inum,(kamp*iamp)/4,kfreq,int(ipres),0
ga1 = ga1 + ((a1 + a2)/2)
outs a1,a2
endin
instr 16 ;Reverb
kamp midic7 1, 0, 1
denorm ga1
aL, aR reverbsc ga1, ga1, 0.85, 12000, sr, 0.5, 1
outs aL, aR
ga1 = 0
endin
f0 3600
==================
Another - NON MIDI:
; NUCLEAR ENERGY - OUR "MISUNDERSTOOD" FRIEND (MAY 6, 1998)
;
; COMPOSED BY JACOB JOAQUIN
; e-mail jake.ke@ix.netcom.com
sr = 44100
kr = 441
ksmps = 100
nchnls = 2
insremot "192.168.1.100", "192.168.1.101", 3
insremot "192.168.1.100", "192.168.1.102", 6
insremot "192.168.1.100", "192.168.1.103", 5
insremot "192.168.1.100", "192.168.1.104", 2
insglobal "192.168.1.100", 100, 101, 102, 103
gidrum = .4
ga100 init 0
ga101 init 0
ga102 init 0
ga103 init 0
instr 1
idur = p3
ipch = p4
iamp = p5
ifn = p6
ipat = p7
iacc = p8
ienv = p9
ifilter = p10
ipan = p11
iwet = p12
it = 16 / idur
kosc oscil1 0, 1, idur, ipat
kosc = cpspch((ipch-2) + .24 + (kosc * .01))
kosc2 oscil1 0, 1, idur, iacc
kosc2 = iamp * (kosc2)
kosc3 oscil 1, it, ienv
aosc oscil kosc2, kosc, ifn, -1
aosc2 oscil kosc2, kosc * .004, ifn, -1
aosc3 oscil kosc2, kosc * .996, ifn, -1
asig = (aosc+aosc2+aosc3)*.333*kosc3
kosc5 oscil .9, it, ifilter
kosc5 = kosc5 + .1
asig butterlp asig * kosc5, 5000
knin oscil1 0, 1, idur, ipan
aleft = asig * (sqrt(1 - knin))
aright = asig * (sqrt(knin))
outs aleft, aright
ga100 = (ga100 + asig) * iwet
endin
instr 2
idur = p3
ipch = cpspch(p4)
iamp = p5
ipan = p6
kenv linseg 1, .01, iamp, idur - .01 , 1
aosc oscil kenv, 440, 4
kenv expon 2, idur, .01
aosc2 butterbp aosc, ipch, ipch * kenv
aosc2 butterbp aosc2, ipch, ipch * kenv
aosc balance aosc2, aosc
aosc = aosc * .5
aleft = aosc * (sqrt(1-ipan))
aright = aosc * (sqrt(ipan))
outs aleft, aright
ga101 = ga101 + aosc
endin
instr 3
idur = p3
ipch = cpspch(p4)
iamp = p5
ipan = p6
kenv linseg 0, .01, iamp, idur - .02, iamp * .5, .01, 0
kenv2 expon 19, idur, 1
kenv2 = kenv2 - 1
afm foscil kenv, ipch, 1, .5, kenv2, 1
aleft = afm * (sqrt(1-ipan))
aright = afm * (sqrt(ipan))
outs aleft, aright
ga102 = ga102 + afm
endin
instr 4
idur = p3
ipch = cpspch(p4)
ipch2 = cpspch(p5)
iamp = p6
iamp2 = p7
ires = p8
ifn = 4
kenv2 expon ipch, idur, ipch2
kenv3 line iamp, idur, iamp2
aosc oscil kenv3, 440, ifn
abp butterbp aosc, kenv2, kenv2 * ires
abp butterbp abp, kenv2, kenv2 * ires
aosc balance abp, aosc
kenv linseg 0, idur * .125, 1, idur * .875, 0
aosc = aosc * kenv
outs aosc, aosc
endin
instr 5
idur = p3
ipch = cpspch(p4)
ipch2 = cpspch(p5)
iamp = p6 + 1
iamp2 = p7 + 1
iport = p8
kenv expseg ipch2, iport, ipch, idur - iport, ipch
kenv2 expseg iamp, idur * .25, iamp2, idur * .75, iamp2
kenv2 = kenv2 - 1
kosc oscil .5, 6, 1, -1
kosc = kosc + .5
afm foscili kenv2, kenv, 1, .5, 2 + kosc, 1, -1
afm2 foscili kenv2, kenv * .004, 1, .5, 2 + kosc, 1, -1
afm3 foscili kenv2, kenv * .996, 1, .5, 2 + kosc, 1, -1
amix = (afm + afm2 + afm3) * .333
ga103 = ga103 + amix
endin
instr 6
isnd = p4
ilvl = p5
asig soundin isnd
asig = asig * ilvl * gidrum
outs asig, asig
endin
instr 100
idur = p3
iwet = p4
idecay1 = p5
idecay2 = p6
asig = ga100 * iwet
aleft reverb2 asig, idecay1, .5
aright reverb asig, idecay2
outs aleft, aright
ga100 = 0
endin
instr 101
idur = p3
iwet = p4
idecay1 = p5
idecay2 = p6
idelay = p7
asig = ga101 * iwet
aleft reverb2 asig, idecay1, .5
aright reverb asig, idecay2
aright delay aright, idelay
outs aleft, aright
ga101 = 0
endin
instr 102
idur = p3
iwet = p4
idecay = p5
idecay2 = p6
idelay = p7
idelay2 = p8
asig = ga102 * iwet
aleft reverb asig, idecay
aright reverb2 asig, idecay2, .5
aleft delay aleft, idelay
aright delay aright, idelay2
outs aleft, aright
ga102 = 0
endin
instr 103
asig = ga103
asig2 delay asig, .05
outs asig, asig2
ga103 = 0
endin
; NUCLEAR ENERGY - OUR "MISUNDERSTOOD" FRIEND (MAY 6, 1998)
;
; COMPOSED BY JACOB JOAQUIN
; e-mail jake.ke@ix.netcom.com
f1 0 8192 10 1
f2 0 8192 7 -1 8192 1
f3 0 8192 7 1 4096 1 0 -1 4096 -1
f4 0 8192 21 1
; Pan
f20 0 16 -2 .5 .5 .5 .5 .5 .5 .5 .5 .5 .5 .5 .5 .
5 .5 .5 .5
f21 0 16 -2 1 0 1 0 1 0 1 0 1 0 1 0
1 0 1 0
f22 0 16 -2 .5 .6 .4 .7 .3 .8 .2 .9 .1 .8 .2 .7 .
3 .6 .4 .5
f23 0 16 -2 0 .25 .5 .75 1 .75 .5 .25 0 .25 .5 .75
1 .75 .5 .25
; ENVELOPES
f50 0 256 7 1 256 1
f51 0 256 7 0 128 1 128 0
f52 0 256 7 0 256 1
f53 0 256 7 1 200 1 56 0
f54 0 256 7 0 16 1 240 0
f55 0 256 7 0 10 1 190 1 56 0
f56 0 256 5 .01 10 1 246 .01
; ACCENT TABLES
f80 0 16 -2 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1
f81 0 16 -2 2 1 1 2 1 2 1 1 2 1 1 2
1 1 2 1
f82 0 16 -2 2 1 2 1 2 1 1 2 1 1 2 1
1 2 2 2
f83 0 16 -2 2 1 1 2 1 2 1 1 1 2 1 2
1 1 2 1
f84 0 16 -2 2 1 2 1 1 2 1 2 1 1 2 1
1 2 1 1
f85 0 16 -2 1 2 1 2 1 1 2 1 1 2 1 1
2 1 2 1
f86 0 16 -2 2 1 1 2 1 1 2 1 2 1 2 1
1 2 1 2
; PATTERN TABLES
f100 0 16 -2 12 0 13 12 0 10 0 4 5 0 10 4
0 0 -2 10
f101 0 16 -2 12 0 10 12 0 13 0 5 4 0 4 10
0 0 -2 13
f102 0 16 -2 12 0 13 10 0 12 0 10 5 0 4 5
0 0 -2 0
f103 0 16 -2 12 0 10 -2 0 4 0 10 5 0 4 19
0 0 10 13
t 0 90
i100 0 205 .05 1.5 1.7
i101 0 205 .2 2.1 2 .25
i102 0 205 .3 2 2.2 .15 .175
i103 0 205
Dur Root Amp Shape Pat Acc Env Filter Pan Wet
;1 2 3 4 5 6 7 8 9 10 11 12
i1 0 4 6.04 15000 2 100 81 50 56 20 1
i1 + . . . . 101 . . . . .
i1 + . 5.04 . . 100 . . . . .
i1 + . . . . 101 . . . . .
i1 + . 6.04 . 2 100 . . . . .
i1 + . . . . 101 . . . . .
i1 + . 5.04 . . 100 . . . . .
i1 + . . . . 101 . . . . .
i1 + . 6.04 10000 2 100 . . 55 22 .
i1 + . . . . 101 . . . . .
i1 + . 5.04 . . 100 . . . . .
i1 + . . . . 101 . . . . .
i1 + . 6.04 . 2 100 . . . . .
i1 + . . . . 101 . . . . .
i1 + . 5.04 . . 100 . . . . .
i1 + . . . . 101 . . . . .
i1 + . 6.04 15000 2 102 . . 56 20 .
i1 + . . . . 103 . . . . .
i1 + . 5.04 . . 102 . . . . .
i1 + . . . . 103 . . . . .
i1 + . 6.04 . 2 102 . . . . .
i1 + . . . . 103 . . . . .
i1 + . 5.04 . . 102 . . . . .
i1 + . . . . 103 . . . . .
i1 + . 6.04 10000 2 102 . . 55 22 .
i1 + . . . . 103 . . . . .
i1 + . 5.04 . . 102 . . . . .
i1 + . . . . 103 . . . . .
i1 + . 6.04 10000 2 102 . . . . .
i1 + . . . . 103 . . . . .
i1 + . 5.04 . . 102 . . . . .
i1 + . . . . 103 . . . . .
i1 128 8 6.04 18000 2 102 . . 56 20 .
i1 + . . . . 103 . . . . .
i1 + . 5.04 . . 102 . . . . .
i1 + . . . . 103 . . . . .
i1 + . 6.04 10000 2 102 . 51 55 22 .
i1 + . . . . 103 . . . . .
i1 + . 5.04 . . 102 . . . . .
i1 + . . . . 103 . . . . .
i2 32 1 9.00 8000 0
i2 + . 10.00 . 1
i2 + . 9.00 . 0
i2 + . 10.00 . 1
i2 + . 9.00 . 0
i2 + . 10.00 . 1
i2 + . 9.00 . 0
i2 + . 10.00 . 1
i2 + . 9.00 . 0
i2 + . 10.00 . 1
i2 + . 9.00 . 0
i2 + . 10.00 . 1
i2 + . 9.00 . 0
i2 + . 10.00 . 1
i2 + . 9.00 . 0
i2 + . 10.00 . 1
i2 + . 9.00 . 0
i2 + . 10.00 . 1
i2 + . 9.00 . 0
i2 + . 10.00 . 1
i2 + . 9.00 . 0
i2 + . 10.00 . 1
i2 + . 9.00 . 0
i2 + . 10.00 . 1
i2 56 1 9.00 . 0
i2 + . 10.00 . 1
i2 60 1 9.00 . 0
i2 + . 10.00 . 1
i2 64 8 9.00 5000 .8
i2 + . 10.00 . .4
i2 + . 9.00 5000 .8
i2 + . 10.00 . .4
i2 96 1 9.00 8000 0
i2 + . 10.00 . 1
i2 + . 9.00 . 0
i2 + . 10.00 . 1
i2 + . 9.00 . 0
i2 + . 10.00 . 1
i2 + . 9.00 . 0
i2 + . 10.00 . 1
i2 106 1 9.00 . 0
i2 + . 10.00 . 1
i2 108 1 9.00 . 0
i2 + . 10.00 . 1
i2 112 1 9.00 8000 0
i2 + . 10.00 . 1
i2 + . 9.00 . 0
i2 + . 10.00 . 1
i2 + . 9.00 . 0
i2 + . 10.00 . 1
i2 + . 9.00 . 0
i2 + . 10.00 . 1
i2 122 1 9.00 . 0
i2 + . 10.00 . 1
i2 126 1 9.00 . 0
i2 + . 10.00 . 1
i2 128 16 9.00 5000 .8
i2 + . 10.00 . .4
i2 160 1 9.00 8000 0
i2 + . 10.00 . 1
i2 + . 9.00 . 0
i2 + . 10.00 . 1
i2 + . 9.00 . 0
i2 + . 10.00 . 1
i2 + . 9.00 . 0
i2 + . 10.00 . 1
i2 + . 9.00 . 0
i2 + . 10.00 . 1
i2 + . 9.00 . 0
i2 + . 10.00 . 1
i2 + . 9.00 . 0
i2 + . 10.00 . 1
i2 + . 9.00 . 0
i2 + . 10.00 . 1
i2 + . 9.00 . 0
i2 + . 10.00 . 1
i2 + . 9.00 . 0
i2 + . 10.00 . 1
i2 + . 9.00 . 0
i2 + . 10.00 . 1
i2 + . 9.00 . 0
i2 + . 10.00 . 1
i2 + . 9.00 . 0
i2 + . 10.00 . 1
i2 + . 9.00 . 0
i2 + . 10.00 . 1
i2 + . 9.00 . 0
i2 + . 10.00 . 1
i2 + . 9.00 . 0
i2 + . 10.00 . 1
i2 192 8 10.00 8000 .2
i2 192 8 10.01 8000 .8
i3 16 4 6.04 4000 .5
i3 + 2 6.09 . .5
i3 + 2 6.02 . .5
i3 + 4 7.04 . .5
i3 + 2 7.09 . .5
i3 + 2 7.02 . .5
i3 + 4 6.04 . .5
i3 + 2 6.09 . .5
i3 + 2 6.02 . .5
i3 + 4 7.04 . .5
i3 + 2 7.09 . .5
i3 + 2 7.02 . .5
i3 + 4 6.04 . .5
i3 + 2 6.09 . .5
i3 + 2 6.02 . .5
i3 + 4 7.04 . .5
i3 + 2 7.09 . .5
i3 + 2 7.02 . .5
i3 + 4 6.04 . .5
i3 + 2 6.09 . .5
i3 + 2 6.02 . .5
i3 + 4 7.04 . .5
i3 + 2 7.09 . .5
i3 + 2 7.02 . .5
i3 + 4 6.04 . .5
i3 + 2 6.09 . .5
i3 + 2 6.02 . .5
i3 + 4 7.04 . .5
i3 + 2 7.09 . .5
i3 + 2 7.02 . .5
i3 + 4 6.04 . .5
i3 + 2 6.09 . .5
i3 + 2 6.02 . .5
i3 + 4 7.04 . .5
i3 + 2 7.09 . .5
i3 + 2 7.02 . .5
i3 + 4 6.04 . .5
i3 + 2 6.09 . .5
i3 + 2 6.02 . .5
i3 + 4 7.04 . .5
i3 + 2 7.09 . .5
i3 + 2 7.02 . .5
i3 128 8 6.04 . .5
i3 + 4 6.09 . .5
i3 + 4 6.02 . .5
i3 + 8 7.04 . .5
i3 + 4 7.09 . .5
i3 + 4 7.02 . .5
i3 + 8 6.04 . .5
i3 + 4 6.09 . .5
i3 + 4 6.02 . .5
i3 + 8 7.04 . .5
i3 + 4 7.09 . .5
i3 + 4 7.02 . .5
i3 192 8 6.04 4000 .4
i3 192 12 5.04 4000 .6
i4 184 8 12.04 6.04 2000 8000 .1
i5 16 .5 9.16 9.12 5000 5000 .02
i5 + .25 9.17 pp4 pp7 . .
i5 + .5 9.16 . . . .
i5 + .5 9.14 . . . .
i5 + .25 9.08 . . . .
i5 + .5 9.09 . . . .
i5 + .25 9.14 . . . .
i5 + .75 9.08 . . . .
i5 + .25 9.02 . . . .
i5 + .25 9.14 . . . .
i5 + .5 9.16 . . . .
i5 + .25 9.14 . . . .
i5 + .5 9.16 . . . .
i5 + .5 9.17 . . . .
i5 + .25 9.09 . . . .
i5 + .75 9.08 . . . .
i5 + .75 9.14 . . . .
i5 + .25 9.02 . . . .
i5 + .25 9.17 . . . .
i5 24 .5 9.16 9.12 5000 5000 .01
i5 + .25 9.17 pp4 pp7 . .
i5 + .5 9.16 . . . .
i5 + .5 9.14 . . . .
i5 + .25 9.08 . . . .
i5 + .5 9.09 . . . .
i5 + .25 9.14 . . . .
i5 + .75 9.08 . . . .
i5 + .25 9.02 . . . .
i5 + .25 9.14 . . . .
i5 + .5 9.16 . . . .
i5 + .25 9.14 . . . .
i5 + .5 9.16 . . . .
i5 + .5 9.17 . . . .
i5 + .25 9.09 . . . .
i5 + .75 9.08 . . . .
i5 + .75 9.14 . . . .
i5 + .25 9.02 . . . .
i5 + .25 9.17 . . . .
i5 64 4 9.04 9.04 0 5000 .1
i5 + 2 9.11 pp4 pp7 . .
i5 + 2 9.14 . . . .
i5 + 4 9.04 . . . .
i5 + 2 9.11 . . . .
i5 + 2 9.16 . . . .
i5 + 4 9.04 . . . .
i5 + 2 9.11 . . . .
i5 + 2 9.14 . . . .
i5 + 4 9.04 . . . .
i5 + 2 9.11 . . . .
i5 + 2 9.16 . . . .
i5 + 4 9.04 . . . .
i5 + 2 9.11 . . . .
i5 + 2 9.14 . . . .
i5 + 4 9.04 . . . .
i5 + 2 9.11 . . . .
i5 + 2 9.16 . . . .
i5 159.9 .1 9.16 9.16 0 5000 .1
i5 160 1 9.16 9.16 5000 5000 .05
i5 + .5 9.17 pp4 pp7 . .
i5 + 1 9.14 . . . .
i5 + 1 9.16 . . . .
i5 + .5 9.14 . . . .
i5 + 1 9.09 . . . .
i5 + .5 9.08 . . . .
i5 + 1.5 9.09 . . . .
i5 + 1 9.02 . . . .
i5 + 1 9.16 . . . .
i5 + 1.5 9.14 . . . .
i5 + 1 9.08 . . . .
i5 + .5 9.14 . . . .
i5 + 1 9.09 . . . .
i5 + .5 9.08 . . . .
i5 + 1.5 9.23 . . . .
i5 + .5 9.14 . . . .
i5 + .5 9.17 . . . .
i5 + 1 9.16 . . . .01
i5 + .5 9.17 . . . .
i5 + 1 9.14 . . . .
i5 + 1 9.16 . . . .
i5 + .5 9.14 . . . .
i5 + 1 9.09 . . . .
i5 + .5 9.08 . . . .
i5 + .5 9.09 . . . .
i5 + .5 9.04 . . . .
i5 + .5 9.09 . . . .
i5 + 1 9.02 . . . .
i5 + 1 9.16 . . . .
i5 + .5 9.14 . . . .
i5 + .5 9.16 . . . .
i5 + .5 9.14 . . . .
i5 + 1 9.08 . . . .
i5 + .5 9.14 . . . .
i5 + 1 9.09 . . . .
i5 + .5 9.08 . . . .
i5 + 1.5 9.23 . . . .
i5 + .5 9.14 . . . .
i5 + .5 9.17 . . . .
i5 + 4 9.16 . . . .
i5 + 4 9.04 . . . .
i5 + 4 8.04 . . 0 .
i6 32 1 1 1 ;Kick
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 33 2 2 1.2 ;Snare
i6 + . . .
i6 + . . .
i6 + .5 . .
i6 + .25 . .
i6 + 1.25 . .
i6 32.5 1 3 1.3 ;Open Hi-hat
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 32 1 4 .8 ;Closed Hi-Hat
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 40 1 1 1 ;Kick
i6 + .75 . .
i6 + .25 . .
i6 + .5 . .
i6 + .25 . .
i6 + 1.25 . .
i6 + 1 . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 41 2 2 1.2 ;Snare
i6 + .5 . .
i6 + 1.5 . .
i6 + . . .
i6 + .5 . .
i6 + .25 . .
i6 + 1.25 . .
i6 40.5 1 3 1.3 ;Open Hi-hat
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 40 1 4 .8 ;Closed Hi-Hat
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 48 1 1 1 ;Kick
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 49 2 2 1.2 ;Snare
i6 + . . .
i6 + . . .
i6 + .5 . .
i6 + .25 . .
i6 + 1.25 . .
i6 48.5 1 3 1.3 ;Open Hi-hat
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 48 1 4 .8 ;Closed Hi-Hat
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 56 1 1 1 ;Kick
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 57 2 2 1.2 ;Snare
i6 + .5 . .
i6 + 1.5 . .
i6 + . . .
i6 + .5 . .
i6 + .25 . .
i6 + 1.25 . .
i6 56.5 1 3 1.3 ;Open Hi-hat
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 56 1 4 .8 ;Closed Hi-Hat
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 64 1 1 1 ;Kick
i6 + .75 . .
i6 + .25 . .
i6 + .5 . .
i6 + .25 . .
i6 + 1.25 . .
i6 + 1 . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 65 2 2 1.2 ;Snare
i6 + . . .
i6 + . . .
i6 + .5 . .
i6 + .25 . .
i6 + 1.25 . .
i6 64.5 1 3 1.3 ;Open Hi-hat
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 64 1 4 .8 ;Closed Hi-Hat
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 72 1 1 1 ;Kick
i6 + .75 . .
i6 + .25 . .
i6 + .5 . .
i6 + .25 . .
i6 + 1.25 . .
i6 + 1 . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 73 2 2 1.2 ;Snare
i6 + . . .
i6 + . . .
i6 + .5 . .
i6 + .25 . .
i6 + 1.25 . .
i6 72.5 1 3 1.3 ;Open Hi-hat
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 72 1 4 .8 ;Closed Hi-Hat
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 80 1 1 1 ;Kick
i6 + .75 . .
i6 + .25 . .
i6 + .5 . .
i6 + .25 . .
i6 + 1.25 . .
i6 + 1 . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 81 2 2 1.2 ;Snare
i6 + . . .
i6 + . . .
i6 + .5 . .
i6 + .25 . .
i6 + 1.25 . .
i6 80.5 1 3 1.3 ;Open Hi-hat
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 80 1 4 .8 ;Closed Hi-Hat
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 96 1 1 1 ;Kick
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 97 2 2 1.2 ;Snare
i6 + .5 . .
i6 + 1.5 . .
i6 + . . .
i6 + .5 . .
i6 + .25 . .
i6 + 1.25 . .
i6 96.5 1 3 1.3 ;Open Hi-hat
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 96 1 4 .8 ;Closed Hi-Hat
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 104 1 1 1 ;Kick
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 105 2 2 1.2 ;Snare
i6 + . . .
i6 + . . .
i6 + .5 . .
i6 + .25 . .
i6 + 1.25 . .
i6 104.5 1 3 1.3 ;Open Hi-hat
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 104 1 4 .8 ;Closed Hi-Hat
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 112 1 1 1 ;Kick
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 113 2 2 1.2 ;Snare
i6 + . . .
i6 + . . .
i6 + .5 . .
i6 + .25 . .
i6 + 1.25 . .
i6 112.5 1 3 1.3 ;Open Hi-hat
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 112 1 4 .8 ;Closed Hi-Hat
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 120 1 1 1 ;Kick
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 121 2 2 1.2 ;Snare
i6 + . . .
i6 + . . .
i6 + .5 . .
i6 + .25 . .
i6 + 1.25 . .
i6 120.5 1 3 1.3 ;Open Hi-hat
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 120 1 4 .8 ;Closed Hi-Hat
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 128 1 1 1 ;Kick
i6 + .75 . .
i6 + .25 . .
i6 + .5 . .
i6 + .25 . .
i6 + 1.25 . .
i6 + 1 . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 129 2 2 1.2 ;Snare
i6 + . . .
i6 + . . .
i6 + .5 . .
i6 + .25 . .
i6 + 1.25 . .
i6 128.5 1 3 1.3 ;Open Hi-hat
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 128 1 4 .8 ;Closed Hi-Hat
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 136 1 1 1 ;Kick
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 137 2 2 1.2 ;Snare
i6 + . . .
i6 + . . .
i6 + .5 . .
i6 + .25 . .
i6 + 1.25 . .
i6 136.5 1 3 1.3 ;Open Hi-hat
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 136 1 4 .8 ;Closed Hi-Hat
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 144 1 1 1 ;Kick
i6 + .75 . .
i6 + .25 . .
i6 + .5 . .
i6 + .25 . .
i6 + 1.25 . .
i6 + 1 . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 145 2 2 1.2 ;Snare
i6 + . . .
i6 + . . .
i6 + .5 . .
i6 + .25 . .
i6 + 1.25 . .
i6 144.5 1 3 1.3 ;Open Hi-hat
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 144 1 4 .8 ;Closed Hi-Hat
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 152 1 1 1 ;Kick
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 153 2 2 1.2 ;Snare
i6 + . . .
i6 + . . .
i6 + .5 . .
i6 + .25 . .
i6 + 1.25 . .
i6 152.5 1 3 1.3 ;Open Hi-hat
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 152 1 4 .8 ;Closed Hi-Hat
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
i6 + . . .
e
===========
Instruments are layered:
sr = 44100
kr = 441
ksmps = 100
nchnls = 2
insremot "192.168.1.100", "192.168.1.101", 2, 8
insremot "192.168.1.100", "192.168.1.102", 3, 9
insremot "192.168.1.100", "192.168.1.103", 4, 10
insremot "192.168.1.100", "192.168.1.104", 5, 11
insremot "192.168.1.100", "192.168.1.105", 6, 12
instr 1
k1 linen p4, .1, p3, .1
a1 oscil k1, p5, 1
outs a1, a1
endin
instr 2
k1 linen p4, .1, p3, .1
a1 oscil k1, p5, 1
outs a1, a1
endin
instr 3
k1 linen p4, .1, p3, .1
a1 oscil k1, p5, 1
outs a1, a1
endin
instr 4
k1 linen p4, .1, p3, .1
a1 oscil k1, p5, 1
outs a1, a1
endin
instr 5
k1 linen p4, .1, p3, .1
a1 oscil k1, p5, 1
outs a1, a1
endin
instr 6
k1 linen p4, .1, p3, .1
a1 oscil k1, p5, 1
outs a1, a1
endin
instr 7
k1 linen 1, .1, p3, .1
a1 rand p4
outs a1*k1, a1*k1
endin
instr 8
k1 linen 1, .1, p3, .1
a1 rand p4
outs a1*k1, a1*k1
endin
instr 9
k1 linen 1, .1, p3, .1
a1 rand p4
outs a1*k1, a1*k1
endin
instr 10
k1 linen 1, .1, p3, .1
a1 rand p4
outs a1*k1, a1*k1
endin
instr 11
k1 linen 1, .1, p3, .1
a1 rand p4
outs a1*k1, a1*k1
endin
instr 12
k1 linen 1, .1, p3, .1
a1 rand p4
outs a1*k1, a1*k1
endin
f0 600
e
On Jan 17, 2008, at 2:20 AM, Steven Yi wrote:
> One interesting to note about multiprocessor csound that it's been
> done before by Barry Vercoe himself for karaoke machines:
>
> http://www.epigon.in/pdf/studyRoom1.pdf
> http://pubs.media.mit.edu/bttj/Paper20Pages180-186.pdf
>
> I read through these when I first started to think about the issues
> around multi-core but hadn't really returned to them until just now
> while looking for them. Interestingly enough, in the second paper
> linked above, Figure 3 and the description of dividing the tasks is
> similar to what I was going after in the naive implementation I did
> and that is in CVS, though I did not compute cpu load and handle voice
> stealing as that wasn't a technical interest. I would say though that
> the multiprocessor implementation in the papers wouldn't work in a
> generic way in canonical csound, so would assume that either the
> multiprocessor csound was patched to handle resource contention issues
> or orchestras that were designed for it were limited to certain
> designs to get around issues of internals.
>
> Fascinating stuff and looking at it I certainly will be studying them
> once again!
> steven
>
> On Jan 16, 2008 2:27 PM, victor wrote:
>> Access to files etc is solved by MPI where things are copied across
>> nodes and everything is unified. My approach was more coarsely-
>> grained
>> one, where instead of looking how to parallelise Csound internally,
>> I would build a host that would run parallel instances of Csound and
>> then load distribution would be a matter of starting events on each
>> of the nodes. One instance would distribute inputs (if any) and
>> collect the outputs, possibly in a blocking way, but asynchronous
>> operation also was something to try. Eventually we would move towards
>> a software that would load-balance automatically. Of course, not many
>> problems are coarsely-grained enough for this type of approach.
>>
>> So, perhaps we are not talking about a generic cluster solution, but
>> one tailored to a particular system, but working from the API level,
>> rather than providing support inside Csound. This does not exclude
>> a possible SMP version of Csound that runs parallelised without the
>> user having to do anything in particular. But that is a different
>> thing
>> altogether.
>>
>> Victor
>>
>>>>
>>>> The problem with a generic clustered solution I saw were having to
>>>> deal with network latency, global memory, access to resources (i.e.
>>>> wave files, where would they reside? would need copies
>>>> available to
>>>> all nodes on the cluster), and heterogeneous processing profiles
>>>> due
>>>> to possible different cpu types. This all becomes very tricky to
>>>> balance and profiling would be necessary to know how to divide
>>>> all the
>>>> work in a way that will make the most use of each CPU and do so
>>>> in a
>>>> way that makes it faster than network latency slows down
>>>> everything.
>>>> Custom clustered solutions where one might say design
>>>> orchestra's so
>>>> no instruments depend on each other or one manually creates an
>>>> orc per
>>>> node or something like that is feasible and may provide performance
>>>> gains, but I think a generic clustered solution would be very
>>>> difficult and that a multi-core solution would yield more
>>>> results for
>>>> the work put in.
>>>>
>>>> That's just my two cents on that! =P
>>>> steven
>>
>>
>>
>>
>> Send bugs reports to this list.
>> To unsubscribe, send email sympa@lists.bath.ac.uk with body
>> "unsubscribe csound"
>>
>
>
> Send bugs reports to this list.
> To unsubscribe, send email sympa@lists.bath.ac.uk with body
> "unsubscribe csound"
|