Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/common/Util/Instrument_.py
diff options
context:
space:
mode:
authorNat <natcl@hotmail.com>2007-09-13 15:55:52 (GMT)
committer Nat <natcl@hotmail.com>2007-09-13 15:55:52 (GMT)
commite12dbff4dda5aafbaac98f75f0467ef00dc06c32 (patch)
tree52f74f5a699ca1a2827b333e76a7225b7d768256 /common/Util/Instrument_.py
parentb94ccdfd2329ed2d1128a4392e2f67b1e6b704da (diff)
Activity split
Diffstat (limited to 'common/Util/Instrument_.py')
-rw-r--r--common/Util/Instrument_.py392
1 files changed, 392 insertions, 0 deletions
diff --git a/common/Util/Instrument_.py b/common/Util/Instrument_.py
new file mode 100644
index 0000000..5bc74b3
--- /dev/null
+++ b/common/Util/Instrument_.py
@@ -0,0 +1,392 @@
+#!/bin/env python
+import os
+
+##############
+## SOUNDS
+##############
+
+#INSTRUMENTS ( csound table, csound instrument, register, instrumentClass, category )
+CSOUND_INSTRUMENT = {'inst_free' : 5000, 'inst_tied' : 5001, 'inst_simp': 5011, 'inst_perc': 5021}
+
+SOUND_ROOT = os.getenv("HOME") + '/cvs/tamtam/snd'
+KIT_ROOT = SOUND_ROOT + "/drum"
+INST_ROOT = SOUND_ROOT + "/inst"
+
+INST = {}
+inst_load_dynamic = 0
+class Instrument:
+ REGISTER = {'low': 0, 'mid':1, 'high':2, 'punch':3}
+ def __init__( self, name, csoundInstrumentName, registerName, category, loopStart, loopEnd, crossDur, wav, img ):
+ self.name = name
+ self.instrumentId = len(INST)
+ self.csoundInstrumentName = csoundInstrumentName
+ self.csoundInstrumentId = CSOUND_INSTRUMENT[csoundInstrumentName]
+ self.register = registerName
+ self.category = category
+ self.loopStart = loopStart
+ self.loopEnd = loopEnd
+ self.crossDur = crossDur
+ self.wav = wav
+ self.img = img
+
+ if None == self.wav: self.wav = os.getenv('HOME') + 'cvs/tamtam/Resources/Sounds/' + name
+ if None == self.img: self.wav = os.getenv('HOME') + 'cvs/tamtam/Resources/Images/' + name
+
+ INST[name] = self
+
+if inst_load_dynamic:
+ for I in os.listdir(INST_ROOT):
+ print 'inst:', I
+else:
+ Instrument( 'mic1', 'inst_tied', 'mid', 'mic', .01, .99, .01, None, None)
+ Instrument( 'mic2', 'inst_tied', 'mid', 'mic', .01, .99, .01, None, None)
+ Instrument( "mic3", 'inst_tied', 'mid', 'mic', .01, .99, .01, None, None)
+ Instrument( "mic4", 'inst_tied', 'mid', 'mic', .01, .99, .01, None, None)
+ Instrument( "lab1", 'inst_simp', 'mid', 'lab', 0, 0, 0, None, None)
+ Instrument( "lab2", 'inst_simp', 'mid', 'lab', 0, 0, 0, None, None)
+ Instrument( "lab3", 'inst_simp', 'mid', 'lab', 0, 0, 0, None, None)
+ Instrument( "lab4", 'inst_simp', 'mid', 'lab', 0, 0, 0, None, None)
+ Instrument( "lab5", 'inst_simp', 'mid', 'lab', 0, 0, 0, None, None)
+ Instrument( "lab6", 'inst_simp', 'mid', 'lab', 0, 0, 0, None, None)
+ Instrument( "ounk", 'inst_simp', 'mid', 'animals', 0, 0, 0 , None, None)
+ Instrument( "gam", 'inst_tied', 'high', 'percussions', .69388, .7536, .02922 , None, None)
+ Instrument( "guit", 'inst_tied', 'mid', 'strings', .08592, .75126, .33571 , None, None)
+ Instrument( "koto", 'inst_tied', 'high', 'strings', .56523, .70075, .05954 , None, None)
+ Instrument( "clarinette", 'inst_tied', 'mid', 'winds', .57905, .73319, .04934 , None, None)
+ Instrument( "flute", 'inst_tied', 'mid', 'winds', .47169, .53693, .02481 , None, None)
+ Instrument( "drum1hatpedal", 'inst_simp', 'mid', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum1hatshoulder", 'inst_simp', 'high', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum1hardride", 'inst_simp', 'mid', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum1ridebell", 'inst_simp', 'high', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum1snare", 'inst_simp', 'mid', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum1snaresidestick", 'inst_simp', 'mid', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum1crash", 'inst_simp', 'punch', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum1splash", 'inst_simp', 'punch', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum1tom", 'inst_simp', 'mid', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum1floortom", 'inst_simp', 'low', 'drum', 0, 0, 0, None, None)
+ Instrument( "drum1chine", 'inst_simp', 'punch', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum1kick", 'inst_simp', 'low', 'drum', 0, 0, 0 , None, None)
+ Instrument( "piano", 'inst_tied', 'mid', 'keyboard', 2.39418, 2.53339, .01323 , None, None)
+ Instrument( "dog", 'inst_simp', 'mid', 'animals', 0, 0, 0 , None, None)
+ Instrument( "duck", 'inst_simp', 'mid', 'animals', 0, 0, 0 , None, None)
+ Instrument( "drum2darbukadoom", 'inst_simp', 'low', 'drum', 0, 0 ,0 , None, None)
+ Instrument( "drum2darbukapied", 'inst_simp', 'low', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum2darbukapiedsoft", 'inst_simp', 'low', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum2hatflanger", 'inst_simp', 'punch', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum2darbukatak", 'inst_simp', 'punch', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum2darbukafinger", 'inst_simp', 'mid', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum2darbukaroll", 'inst_simp', 'high', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum2darbukaslap", 'inst_simp', 'mid', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum2hatpied", 'inst_simp', 'mid', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum2tambourinepied", 'inst_simp', 'mid', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum2hatpied2", 'inst_simp', 'high', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum2tambourinepiedsoft", 'inst_simp', 'high', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum3cowbell", 'inst_simp', 'high', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum3cowbelltip", 'inst_simp', 'mid', 'drum', 0, 0, 0, None, None)
+ Instrument( "drum3cup", 'inst_simp', 'high', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum3djembelow", 'inst_simp', 'low', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum3djembemid", 'inst_simp', 'high', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum3djembesidestick", 'inst_simp', 'mid', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum3djembeslap", 'inst_simp', 'low', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum3djembestickmid", 'inst_simp', 'mid', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum3metalstand", 'inst_simp', 'mid', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum3pedalperc", 'inst_simp', 'low', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum3rainstick", 'inst_simp', 'punch', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum3tambourinehigh", 'inst_simp', 'punch', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum3tambourinelow", 'inst_simp', 'punch', 'drum', 0, 0, 0 , None, None)
+ Instrument( "harmonica", 'inst_tied', 'mid', 'winds', .1531, .19188, .01792 , None, None)
+ Instrument( "alarm", 'inst_tied', 'mid', 'concret', .02, .19133, .01 , None, None)
+ Instrument( "bird", 'inst_tied', 'mid', 'animals', .1, 1, .05 , None, None)
+ Instrument( "cat", 'inst_simp', 'mid', 'animals', 0, 0, 0 , None, None)
+ Instrument( "duck2", 'inst_simp', 'mid', 'animals', 0, 0, 0 , None, None)
+ Instrument( "bottle", 'inst_tied', 'mid', 'concret', .20532, .41064, .05292 , None, None)
+ Instrument( "clang", 'inst_simp', 'mid', 'concret', 0, 0, 0 , None, None)
+ Instrument( "ow", 'inst_simp', 'mid', 'people', 0, 0, 0 , None, None)
+ Instrument( "sheep", 'inst_simp', 'mid', 'animals', 0, 0, 0 , None, None)
+ Instrument( "water", 'inst_simp', 'mid', 'concret', 0, 0, 0 , None, None)
+ Instrument( "zap", 'inst_tied', 'mid', 'electronic', .299, .7323, .09895 , None, None)
+ Instrument( "trumpet", 'inst_tied', 'mid', 'winds', .39934, .45537, .02729, None, None)
+ Instrument( "bubbles", 'inst_tied', 'mid', 'concret', 0.02, 1.177, 0.02, None, None)
+ Instrument( "marimba", 'inst_tied', 'mid', 'percussions', .26545, .33098, .03087, None, None)
+ Instrument( "triangle", 'inst_tied', 'mid', 'percussions', 1.21002, 1.31805, .01268, None, None)
+ Instrument( "laugh", 'inst_simp', 'mid', 'people', 0, 0, 0 , None, None)
+ Instrument( "voix", 'inst_tied', 'mid', 'people', .89608, .96092, .02343 , None, None)
+ Instrument( "cling", 'inst_tied', 'mid', 'electronic', .09096, .7878, .18026 , None, None)
+ Instrument( "byke", 'inst_simp', 'mid', 'concret', 0, 0, 0 , None, None)
+ Instrument( "door", 'inst_simp', 'mid', 'concret', 0, 0, 0 , None, None)
+ Instrument( "basse", 'inst_tied', 'mid', 'strings', .58455, .67433, .03638 , None, None)
+ Instrument( "acguit", 'inst_tied', 'mid', 'strings', .58503, .8667, .13699 , None, None)
+ Instrument( "diceinst", 'inst_simp', 'mid', 'concret', 0, 0, 0 , None, None)
+ Instrument( "didjeridu", 'inst_tied', 'low', 'winds', .55669, 1.73704, .09178 , None, None)
+ Instrument( "harmonium", 'inst_tied', 'mid', 'keyboard', .04674, .41073, .18384 , None, None)
+ Instrument( "horse", 'inst_simp', 'mid', 'animals', 0, 0, 0 , None, None)
+ Instrument( "kalimba", 'inst_tied', 'mid', 'percussions', .20751, .30161, .04658 , None, None)
+ Instrument( "mando", 'inst_tied', 'mid', 'strings', .50167, .54401, .01984 , None, None)
+ Instrument( "ocarina", 'inst_tied', 'mid', 'winds', .06612, .19033, .01776 , None, None)
+ Instrument( "rhodes", 'inst_tied', 'mid', 'keyboard', .65013, .71429, .02205 , None, None)
+ Instrument( "saxo", 'inst_tied', 'mid', 'winds', .53722, .6583, .05264 , None, None)
+ Instrument( "shenai", 'inst_tied', 'mid', 'winds', .29003, .33072, .00634 , None, None)
+ Instrument( "sitar", 'inst_tied', 'mid', 'strings', .63187, .67882, .01654 , None, None)
+ Instrument( "tuba", 'inst_tied', 'low', 'winds', .51063, .58384, .035 , None, None)
+ Instrument( "violin", 'inst_tied', 'mid', 'strings', .105, .30656, .028 , None, None)
+ Instrument( "guidice1", 'inst_simp', 'mid', 'concret', 0, 0, 0 , None, None)
+ Instrument( "guidice2", 'inst_simp', 'mid', 'concret', 0, 0, 0 , None, None)
+ Instrument( "guidice3", 'inst_simp', 'mid', 'concret', 0, 0, 0 , None, None)
+ Instrument( "guidice4", 'inst_simp', 'mid', 'concret', 0, 0, 0 , None, None)
+ Instrument( "guidice5", 'inst_simp', 'mid', 'concret', 0, 0, 0 , None, None)
+ Instrument( "guidice6", 'inst_simp', 'mid', 'concret', 0, 0, 0 , None, None)
+ Instrument( "guidice7", 'inst_simp', 'mid', 'concret', 0, 0, 0 , None, None)
+ Instrument( "guidice8", 'inst_simp', 'mid', 'concret', 0, 0, 0 , None, None)
+ Instrument( "guidice9", 'inst_simp', 'mid', 'concret', 0, 0, 0 , None, None)
+ Instrument( "guidice10", 'inst_simp', 'mid', 'concret', 0, 0, 0 , None, None)
+ Instrument( "drum4afrofeet", 'inst_simp', 'low', 'drum', 0, 0 ,0 , None, None)
+ Instrument( "drum4fingersn", 'inst_simp', 'high', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum4mutecuic", 'inst_simp', 'punch', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum4stompbass", 'inst_simp', 'punch', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum4tambouri", 'inst_simp', 'high', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum4tr707clap", 'inst_simp', 'mid', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum4tr707open", 'inst_simp', 'punch', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum4tr808closed", 'inst_simp', 'high', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum4tr808sn", 'inst_simp', 'mid', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum4tr909bass", 'inst_simp', 'low', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum4tr909kick", 'inst_simp', 'low', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum4tr909sn", 'inst_simp', 'mid', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum5timablesslap", 'inst_simp', 'low', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum5congagraveouvert", 'inst_simp', 'low', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum5timablesaiguslap", 'inst_simp', 'low', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum5congagraveferme", 'inst_simp', 'mid', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum5guiroretour", 'inst_simp', 'punch', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum5vibraslap", 'inst_simp', 'punch', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum5congaaiguouvert", 'inst_simp', 'mid', 'drum', 0, 0 ,0 , None, None)
+ Instrument( "drum5quicamedium", 'inst_simp', 'punch', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum5quicaaigu", 'inst_simp', 'mid', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum5agogograve", 'inst_simp', 'high', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum5bongoaiguouvert", 'inst_simp', 'high', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum5agogoaigu", 'inst_simp', 'high', 'drum', 0, 0, 0 , None, None)
+ Instrument( "drum5bongograveouvert", 'inst_simp', 'high', 'drum', 0, 0, 0 , None, None)
+ Instrument( "camera", 'inst_simp', 'mid', 'concret', 0, 0, 0 , None, None)
+ Instrument( "car", 'inst_tied', 'mid', 'concret', .67, 1.05761, .01 , None, None)
+ Instrument( "chimes", 'inst_tied', 'mid', 'percussions', .09, 2.97633, .01 , None, None)
+ Instrument( "crash", 'inst_simp', 'mid', 'concret', 0, 0, 0 , None, None)
+ Instrument( "guit2", 'inst_tied', 'mid', 'strings', .33, 1.1583, .02 , None, None)
+ Instrument( "plane", 'inst_simp', 'mid', 'concret', 0, 0, 0 , None, None)
+ Instrument( "slap", 'inst_simp', 'mid', 'concret', 0, 0, 0 , None, None)
+INST_byId = {}
+for i in INST:
+ INST_byId[ INST[i].instrumentId] = INST[i]
+
+KIT_ELEMENT = 24 * [0]
+for i in range(0,13):
+ KIT_ELEMENT += 2 * [i]
+
+KIT = {}
+drum_load_dynamic = 0
+if drum_load_dynamic:
+ for D in os.listdir(KIT_ROOT):
+ print 'drum:',D
+else:
+ KIT = {
+ 'drum1kit' : [ 'drum1kick', 'drum1floortom', 'drum1tom',
+ 'drum1chine', 'drum1splash', 'drum1crash',
+ 'drum1snaresidestick', 'drum1snaresidestick', 'drum1snare',
+ 'drum1ridebell', 'drum1hardride', 'drum1hatshoulder',
+ 'drum1hatpedal'],
+ 'drum2kit' : [ "drum2darbukadoom", "drum2darbukapied", "drum2darbukapiedsoft",
+ "drum2hatflanger", "drum2darbukatak", "drum2darbukatak",
+ "drum2darbukafinger", "drum2darbukaroll", "drum2darbukaslap",
+ "drum2hatpied", "drum2tambourinepied", "drum2hatpied2",
+ "drum2tambourinepiedsoft"],
+ 'drum3kit' : [ "drum3djembelow", "drum3pedalperc", "drum3djembeslap",
+ "drum3tambourinehigh", "drum3tambourinelow", "drum3rainstick",
+ "drum3djembemid", "drum3djembesidestick", "drum3djembestickmid",
+ "drum3cowbell", "drum3cowbelltip", "drum3cup",
+ "drum3metalstand"],
+ 'drum4kit' : [ "drum4afrofeet", "drum4tr909kick", "drum4tr909bass",
+ "drum4stompbass", "drum4tr707open", "drum4mutecuic",
+ "drum4tr808sn", "drum4tr707clap", "drum4tr909sn",
+ "drum4tambouri", "drum4fingersn", "drum4fingersn",
+ "drum4tr808closed" ],
+ 'drum5kit' : [ "drum5timablesslap", "drum5timablesaiguslap", "drum5congagraveouvert",
+ "drum5quicamedium", "drum5guiroretour", "drum5vibraslap",
+ "drum5congagraveferme", "drum5quicaaigu", "drum5congaaiguouvert",
+ "drum5agogoaigu", "drum5bongograveouvert", "drum5agogograve",
+ "drum5bongoaiguouvert" ]
+ }
+
+for name in KIT:
+ KIT[name] = [ INST[e] for e in KIT[name] ]
+
+if 0:
+ _nextInstrumentId = [0]
+ INSTRUMENTS = {}
+ write_instrument_config = 0
+ hard_coded_instruments = 0
+ if hard_coded_instruments:
+ def _addInstrument( name, csoundInstrumentId, instrumentRegister, soundClass, category, loopStart, loopEnd, crossDur, kit = None ):
+ if write_instrument_config:
+ if (kit == None):
+ blah = file('snd/'+name+'.snd', 'w')
+ print >>blah, (csoundInstrumentId, instrumentRegister, soundClass, category, loopStart, loopEnd, crossDur)
+ blah.close()
+ else:
+ sys.exit(1)
+
+ INSTRUMENTS[name] = Instrument( name, _nextInstrumentId[0], csoundInstrumentId, instrumentRegister, soundClass, category, loopStart, loopEnd, crossDur, kit )
+ _nextInstrumentId[0] += 1
+
+ DRUM1KIT = { 24 : INSTRUMENTS["drum1kick"],
+ 26 : INSTRUMENTS["drum1floortom"],
+ 28 : INSTRUMENTS["drum1tom"],
+ 30 : INSTRUMENTS["drum1chine"],
+ 32 : INSTRUMENTS["drum1splash"],
+ 34 : INSTRUMENTS["drum1crash"],
+ 36 : INSTRUMENTS["drum1snaresidestick"],
+ 38 : INSTRUMENTS["drum1snaresidestick"],
+ 40 : INSTRUMENTS["drum1snare"],
+ 42 : INSTRUMENTS["drum1ridebell"],
+ 44 : INSTRUMENTS["drum1hardride"],
+ 46 : INSTRUMENTS["drum1hatshoulder"],
+ 48 : INSTRUMENTS["drum1hatpedal"] }
+
+ DRUM2KIT = { 24 : INSTRUMENTS["drum2darbukadoom"],
+ 26 : INSTRUMENTS["drum2darbukapied"],
+ 28 : INSTRUMENTS["drum2darbukapiedsoft"],
+ 30 : INSTRUMENTS["drum2hatflanger"],
+ 32 : INSTRUMENTS["drum2darbukatak"],
+ 34 : INSTRUMENTS["drum2darbukatak"],
+ 36 : INSTRUMENTS["drum2darbukafinger"],
+ 38 : INSTRUMENTS["drum2darbukaroll"],
+ 40 : INSTRUMENTS["drum2darbukaslap"],
+ 42 : INSTRUMENTS["drum2hatpied"],
+ 44 : INSTRUMENTS["drum2tambourinepied"],
+ 46 : INSTRUMENTS["drum2hatpied2"],
+ 48 : INSTRUMENTS["drum2tambourinepiedsoft"] }
+
+ DRUM3KIT = { 24 : INSTRUMENTS["drum3djembelow"],
+ 26 : INSTRUMENTS["drum3pedalperc"],
+ 28 : INSTRUMENTS["drum3djembeslap"],
+ 30 : INSTRUMENTS["drum3tambourinehigh"],
+ 32 : INSTRUMENTS["drum3tambourinelow"],
+ 34 : INSTRUMENTS["drum3rainstick"],
+ 36 : INSTRUMENTS["drum3djembemid"],
+ 38 : INSTRUMENTS["drum3djembesidestick"],
+ 40 : INSTRUMENTS["drum3djembestickmid"],
+ 42 : INSTRUMENTS["drum3cowbell"],
+ 44 : INSTRUMENTS["drum3cowbelltip"],
+ 46 : INSTRUMENTS["drum3cup"],
+ 48 : INSTRUMENTS["drum3metalstand"] }
+
+ DRUM4KIT = { 24 : INSTRUMENTS["drum4afrofeet"],
+ 26 : INSTRUMENTS["drum4tr909kick"],
+ 28 : INSTRUMENTS["drum4tr909bass"],
+ 30 : INSTRUMENTS["drum4stompbass"],
+ 32 : INSTRUMENTS["drum4tr707open"],
+ 34 : INSTRUMENTS["drum4mutecuic"],
+ 36 : INSTRUMENTS["drum4tr808sn"],
+ 38 : INSTRUMENTS["drum4tr707clap"],
+ 40 : INSTRUMENTS["drum4tr909sn"],
+ 42 : INSTRUMENTS["drum4tambouri"],
+ 44 : INSTRUMENTS["drum4fingersn"],
+ 46 : INSTRUMENTS["drum4fingersn"],
+ 48 : INSTRUMENTS["drum4tr808closed"] }
+
+ DRUM5KIT = { 24 : INSTRUMENTS["drum5timablesslap"],
+ 26 : INSTRUMENTS["drum5timablesaiguslap"],
+ 28 : INSTRUMENTS["drum5congagraveouvert"],
+ 30 : INSTRUMENTS["drum5quicamedium"],
+ 32 : INSTRUMENTS["drum5guiroretour"],
+ 34 : INSTRUMENTS["drum5vibraslap"],
+ 36 : INSTRUMENTS["drum5congagraveferme"],
+ 38 : INSTRUMENTS["drum5quicaaigu"],
+ 40 : INSTRUMENTS["drum5congaaiguouvert"],
+ 42 : INSTRUMENTS["drum5agogoaigu"],
+ 44 : INSTRUMENTS["drum5bongograveouvert"],
+ 46 : INSTRUMENTS["drum5agogograve"],
+ 48 : INSTRUMENTS["drum5bongoaiguouvert"] }
+
+ _addInstrument( "drum1kit", 0, 0, 0, "kit", 0, 0, 0, DRUM1KIT )
+ _addInstrument( "drum2kit", 0, 0, 0, "kit", 0, 0, 0, DRUM2KIT )
+ _addInstrument( "drum3kit", 0, 0, 0, "kit", 0, 0, 0, DRUM3KIT )
+ _addInstrument( "drum4kit", 0, 0, 0, "kit", 0, 0, 0, DRUM4KIT )
+ _addInstrument( "drum5kit", 0, 0, 0, "kit", 0, 0, 0, DRUM5KIT )
+
+ else:
+
+ sndlist = os.listdir('snd/')
+ #print sndlist
+ sndpaths = [p for p in sndlist if p[-4:] == '.snd']
+
+ #load the normal instruments
+ for sndpath in sndpaths:
+ name = sndpath[0:-4]
+ sndfile = file('snd/'+sndpath, 'r')
+ line = sndfile.readline()
+ #print sndpath, line
+ tup = eval(line)
+ if len(tup) == 7:
+ csoundInstrumentId, instrumentRegister, soundClass, category, loopStart, loopEnd, crossDur = tup
+ INSTRUMENTS[name] = Instrument( name, _nextInstrumentId[0],
+ csoundInstrumentId, instrumentRegister, soundClass,
+ category, loopStart, loopEnd, crossDur, None, None, None )
+ else:
+ print 'loading a gooddmammn img and wav thing!'
+ csoundInstrumentId, instrumentRegister, soundClass, category, loopStart, loopEnd, crossDur, wav, img = tup
+ INSTRUMENTS[name] = Instrument( name, _nextInstrumentId[0],
+ csoundInstrumentId, instrumentRegister, soundClass,
+ category, loopStart, loopEnd, crossDur, None , wav, img)
+ _nextInstrumentId[0] += 1
+ sndfile.close()
+
+ #load the kits
+ if 0:
+ kitpaths = [p for p in sndlist if p[-4:] == '.kit'] #don't use these for now..
+ for kitpath in kitpaths:
+ kitidx = int( kitpath[4] )
+ print kitpath, kitidx
+ exec "DRUM%iKIT = {} ; curkit = DRUM%iKIT" % (kitidx,kitidx)
+ name = kitpath[0:-4]
+ kitfile = file('snd/'+ kitpath, 'r')
+ line = kitfile.readline()
+ print kitpath, line
+
+ keyval = eval(line)
+ for kv in keyval:
+ curkit[kv[0]] = INSTRUMENTS[kv[1]]
+
+ #csoundInstrumentId, instrumentRegister, soundClass, category, loopStart, loopEnd, crossDur = eval( line )
+ INSTRUMENTS[name] = Instrument( name, _nextInstrumentId[0], 0, 0, 0, "kit", 0, 0, 0, curkit)
+ _nextInstrumentId[0] += 1
+ kitfile.close()
+
+ else:
+ def _addInstrument( name, csoundInstrumentId, instrumentRegister, soundClass, category, loopStart, loopEnd, crossDur, kit = None ):
+ blah = file('snd/' + name + '.kit', 'w')
+ print >>blah, [(k, kit[k].name) for k in kit.keys()]
+ blah.close()
+ INSTRUMENTS[name] = Instrument( name, _nextInstrumentId[0], csoundInstrumentId, instrumentRegister, soundClass, category, loopStart, loopEnd, crossDur, kit )
+ _nextInstrumentId[0] += 1
+ print INSTRUMENTS[name]
+
+
+ _addInstrument( "drum1kit", 0, 0, 0, "kit", 0, 0, 0, DRUM1KIT )
+ _addInstrument( "drum2kit", 0, 0, 0, "kit", 0, 0, 0, DRUM2KIT )
+ _addInstrument( "drum3kit", 0, 0, 0, "kit", 0, 0, 0, DRUM3KIT )
+ _addInstrument( "drum4kit", 0, 0, 0, "kit", 0, 0, 0, DRUM4KIT )
+ _addInstrument( "drum5kit", 0, 0, 0, "kit", 0, 0, 0, DRUM5KIT )
+
+ #import sys
+ #sys.exit(0)
+
+ INSTRUMENTSID = {}
+ for i in INSTRUMENTS:
+ INSTRUMENTSID[INSTRUMENTS[i].instrumentId] = INSTRUMENTS[i]
+
+
+ #DRUMKITS = ['drum1kit', 'drum2kit', 'drum3kit', 'drum4kit']
+ #DRUMSINSTRUMENTSDICT = [DRUM1KIT, DRUM2KIT, DRUM3KIT, DRUM4KIT]
+
+ RECORDABLE_INSTRUMENTS = set( [ "mic1", "mic2", "mic3", "mic4" ] )
+ RECORDABLE_INSTRUMENT_CSOUND_IDS = { "mic1" : 7,
+ "mic2" : 8,
+ "mic3" : 9,
+ "mic4" : 10 }