Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/TamTamMini.activity
diff options
context:
space:
mode:
authorOli <olivier.belanger@umontreal.ca>2007-10-19 08:08:02 (GMT)
committer Oli <olivier.belanger@umontreal.ca>2007-10-19 08:08:02 (GMT)
commit3e9a586f404b70cda362cf888653de9c940fd849 (patch)
tree427a99619ebf947600a3cc2c0ef9437fb2953f09 /TamTamMini.activity
parent9307df223f0be4193a21fddd48e32ce15b9ed4ef (diff)
switch to instrumentDB
Diffstat (limited to 'TamTamMini.activity')
-rw-r--r--TamTamMini.activity/Mini/GenRythm.py16
-rw-r--r--TamTamMini.activity/Mini/InstrumentPanel.py13
-rw-r--r--TamTamMini.activity/Mini/KeyboardStandAlone.py12
-rwxr-xr-xTamTamMini.activity/Mini/Loop.py8
-rw-r--r--TamTamMini.activity/Mini/NoteStdAlone.py58
-rw-r--r--TamTamMini.activity/Mini/RythmGenerator.py28
-rw-r--r--TamTamMini.activity/Mini/miniTamTamMain.py6
-rw-r--r--TamTamMini.activity/TamTamMini.py11
8 files changed, 83 insertions, 69 deletions
diff --git a/TamTamMini.activity/Mini/GenRythm.py b/TamTamMini.activity/Mini/GenRythm.py
index 330e174..7d67994 100644
--- a/TamTamMini.activity/Mini/GenRythm.py
+++ b/TamTamMini.activity/Mini/GenRythm.py
@@ -3,9 +3,11 @@ import common.Config as Config
from common.Generation.GenerationConstants import GenerationConstants
from common.Generation.Utils import *
+from common.Util import InstrumentDB
class GenRythm:
def drumRythmSequence(self, instrumentName, nbeats, density, regularity ):
+ instrumentDB = InstrumentDB.getRef()
rythmSequence = []
binSelection = []
downBeats = []
@@ -14,28 +16,28 @@ class GenRythm:
countDown = 0
onsetTime = None
- if Config.INSTRUMENTS[instrumentName].instrumentRegister == Config.PUNCH:
+ if instrumentDB.instNamed[instrumentName].instrumentRegister == Config.PUNCH:
registerDensity = 0.5
downBeatRecurence = 4
downBeats = [x for x in GenerationConstants.DRUM_PUNCH_ACCENTS[ nbeats ]]
for downBeat in downBeats:
upBeats.append( downBeat + Config.TICKS_PER_BEAT / 2 )
- if Config.INSTRUMENTS[instrumentName].instrumentRegister == Config.LOW:
+ if instrumentDB.instNamed[instrumentName].instrumentRegister == Config.LOW:
registerDensity =1
downBeatRecurence = 4
downBeats = [x for x in GenerationConstants.DRUM_LOW_ACCENTS[ nbeats ]]
for downBeat in downBeats:
upBeats.append( downBeat + Config.TICKS_PER_BEAT / 2 )
- if Config.INSTRUMENTS[instrumentName].instrumentRegister == Config.MID:
+ if instrumentDB.instNamed[instrumentName].instrumentRegister == Config.MID:
registerDensity = .75
downBeatRecurence = 1
downBeats = [x for x in GenerationConstants.DRUM_MID_ACCENTS[ nbeats ]]
for downBeat in downBeats:
upBeats.append( downBeat + Config.TICKS_PER_BEAT / 4 )
- if Config.INSTRUMENTS[instrumentName].instrumentRegister == Config.HIGH:
+ if instrumentDB.instNamed[instrumentName].instrumentRegister == Config.HIGH:
registerDensity = 1.5
downBeatRecurence = 1
downBeats = [x for x in GenerationConstants.DRUM_HIGH_ACCENTS[ nbeats ]]
@@ -48,10 +50,10 @@ class GenRythm:
list = range( int( realDensity * len( downBeats ) ) )
for i in list:
- if random.random() < ( regularity * downBeatRecurence ) and binSelection.count( 1 ) < len( downBeats ):
- binSelection.append( 1 )
+ if random.random() < ( regularity * downBeatRecurence ) and binSelection.count( 1 ) < len( downBeats ):
+ binSelection.append( 1 )
else:
- if binSelection.count( 0 ) < len( downBeats ):
+ if binSelection.count( 0 ) < len( downBeats ):
binSelection.append( 0 )
else:
binSelection.append( 1 )
diff --git a/TamTamMini.activity/Mini/InstrumentPanel.py b/TamTamMini.activity/Mini/InstrumentPanel.py
index 8cac210..b28e969 100644
--- a/TamTamMini.activity/Mini/InstrumentPanel.py
+++ b/TamTamMini.activity/Mini/InstrumentPanel.py
@@ -8,12 +8,15 @@ import time
import common.Config as Config
from common.Util.ThemeWidgets import *
+from common.Util import InstrumentDB
+
Tooltips = Config.Tooltips
class InstrumentPanel( gtk.EventBox ):
def __init__(self,setInstrument = None, playInstrument = None, enterMode = False, micRec = None, synthRec = None, rowLen = 8, _instDic = None, force_load = True ):
gtk.EventBox.__init__(self)
+ self.instrumentDB = InstrumentDB.getRef()
self.setInstrument = setInstrument
self.playInstrument = playInstrument
self.micRec = micRec
@@ -116,10 +119,10 @@ class InstrumentPanel( gtk.EventBox ):
if timeout >= 0 and time.time() > timeout: return False
if loadStage[1] == 1:
- keys = Config.INSTRUMENTS.keys()
+ keys = self.instrumentDB.instNamed.keys()
for i in range(loadStage[2], len(keys)):
key = keys[i]
- instrument = Config.INSTRUMENTS[key]
+ instrument = self.instrumentDB.instNamed[key]
if key[0:4] != 'drum' and key[0:4] != 'guid' and key[0:3] != 'mic' and key[0:3] != 'lab':
self.instrumentList["all"].append( key )
if key[0:4] != 'drum' and key[0:4] != 'guid' and key[0:3] != 'mic' and key[0:3] != 'lab':
@@ -333,9 +336,9 @@ class DrumPanel( gtk.EventBox ):
self.setDrum = setDrum
self.instrumentList = []
- keys = Config.INSTRUMENTS.keys()
- for key in Config.INSTRUMENTS.keys():
- if Config.INSTRUMENTS[key].category == "kit":
+ keys = self.instrumentDB.instNamed.keys()
+ for key in keys:
+ if self.instrumentDB.instNamed[key].category == "kit":
self.instrumentList.append( key )
self.instrumentList.sort()
self.drawDrums()
diff --git a/TamTamMini.activity/Mini/KeyboardStandAlone.py b/TamTamMini.activity/Mini/KeyboardStandAlone.py
index e3c3424..cc86a31 100644
--- a/TamTamMini.activity/Mini/KeyboardStandAlone.py
+++ b/TamTamMini.activity/Mini/KeyboardStandAlone.py
@@ -7,6 +7,7 @@ from common.Generation.GenerationConstants import GenerationConstants
from common.Util.NoteDB import Note
from common.Util.CSoundNote import CSoundNote
from common.Util.CSoundClient import new_csound_client
+from common.Util import InstrumentDB
KEY_MAP_PIANO = Config.KEY_MAP_PIANO
@@ -14,6 +15,7 @@ KEY_MAP_PIANO = Config.KEY_MAP_PIANO
class KeyboardStandAlone:
def __init__( self, recordingFunction, adjustDurationFunction, getCurrentTick, getPlayState, loop ):
+ self.instrumentDB = InstrumentDB.getRef()
self.csnd = new_csound_client()
self.recording = recordingFunction
self.adjustDuration = adjustDurationFunction
@@ -93,17 +95,17 @@ class KeyboardStandAlone:
#print >>log, 'instrumentName:', instrumentName
pitch = KEY_MAP_PIANO[key]
- if None != Config.INSTRUMENTS[instrumentName].kit:
+ if self.instrumentDB.instNamed[instrumentName].kit != None:
if pitch in GenerationConstants.DRUMPITCH:
pitch = GenerationConstants.DRUMPITCH[pitch]
- #print >>log, 'kit_element: ', Config.KIT_ELEMENT[pitch]
- playkey(36,100, Config.INSTRUMENTS[instrumentName].kit[pitch])
+ #print >>log, 'kit_element: ', Config.KIT_ELEMENT[pitch]
+ playkey(36,100, self.instrumentDB.instNamed[instrumentName].kit[pitch])
else:
if event.state == gtk.gdk.MOD1_MASK:
pitch += 5
- instrument = Config.INSTRUMENTS[ instrumentName ]
+ instrument = self.instrumentDB.instNamed[ instrumentName ]
if instrument.csoundInstrumentId == Config.INST_PERC: #Percussions resonance
playkey( pitch, 60, instrument)
else:
@@ -124,7 +126,7 @@ class KeyboardStandAlone:
if KEY_MAP_PIANO.has_key(key):
csnote = self.key_dict[key]
- if Config.INSTRUMENTSID[ csnote.instrumentId ].csoundInstrumentId == Config.INST_TIED:
+ if self.instrumentDB.instId[ csnote.instrumentId ].csoundInstrumentId == Config.INST_TIED:
csnote.duration = .5
csnote.decay = 0.7
#csnote.amplitude = 1
diff --git a/TamTamMini.activity/Mini/Loop.py b/TamTamMini.activity/Mini/Loop.py
index 4f58912..27ac46c 100755
--- a/TamTamMini.activity/Mini/Loop.py
+++ b/TamTamMini.activity/Mini/Loop.py
@@ -7,9 +7,11 @@ from common.Util.CSoundClient import new_csound_client
from common.Util.NoteDB import Note
from common.Util.NoteDB import PARAMETER
from common.Generation.GenerationConstants import GenerationConstants
+from common.Util import InstrumentDB
class Loop:
def __init__( self, beat, volume ):
+ self.instrumentDB = InstrumentDB.getRef()
self.notesDict = {}
self.notesList = []
self.beat = beat
@@ -49,10 +51,10 @@ class Loop:
pitch = i[1]
gain = i[2]*self.volume
duration = i[3]
- if Config.INSTRUMENTS[instrument].kit != None:
+ if self.instrumentDB.instNamed[instrument].kit != None:
if GenerationConstants.DRUMPITCH.has_key(pitch):
pitch = GenerationConstants.DRUMPITCH[pitch]
- instrument = Config.INSTRUMENTS[ instrument ].kit[pitch].name
+ instrument = self.instrumentDB.instNamed[ instrument ].kit[pitch].name
pitch = 36
return CSoundNote( onset = onset,
pitch = pitch,
@@ -60,7 +62,7 @@ class Loop:
pan = 0.5,
duration = duration,
trackId = 0,
- instrumentId = Config.INSTRUMENTS[instrument].instrumentId,
+ instrumentId = self.instrumentDB.instNamed[instrument].instrumentId,
reverbSend = reverb,
tied = False,
mode = 'mini')
diff --git a/TamTamMini.activity/Mini/NoteStdAlone.py b/TamTamMini.activity/Mini/NoteStdAlone.py
index 0dd4638..d007da9 100644
--- a/TamTamMini.activity/Mini/NoteStdAlone.py
+++ b/TamTamMini.activity/Mini/NoteStdAlone.py
@@ -4,18 +4,18 @@ from common.Generation.GenerationConstants import GenerationConstants
class NoteStdAlone:
def __init__( self, client,
- onset,
- pitch,
- amplitude,
- pan,
- duration,
- trackId,
- fullDuration = False,
- instrument = Config.FLUTE,
- attack = 0.005,
- decay = 0.095,
- reverbSend = 0.1,
- filterType = 0,
+ onset,
+ pitch,
+ amplitude,
+ pan,
+ duration,
+ trackId,
+ fullDuration = False,
+ instrument = Config.FLUTE,
+ attack = 0.005,
+ decay = 0.095,
+ reverbSend = 0.1,
+ filterType = 0,
filterCutoff = 1000,
tied = False,
overlap = False,
@@ -43,7 +43,7 @@ class NoteStdAlone:
def play( self ):
self.csnd.sendText( self.getText(120) )
-
+
def getText( self, tempo ):
if self.instrument[ 0: 4 ] == 'drum':
if GenerationConstants.DRUMPITCH.has_key( self.pitch ):
@@ -65,10 +65,10 @@ class NoteStdAlone:
newDuration = oneTickDuration * self.duration
# condition for tied notes
- if Config.INSTRUMENTS[ self.instrumentFlag ].csoundInstrumentId == 101 and self.tied and self.fullDuration:
+ if self.instrumentDB.instNamed[ self.instrumentFlag ].csoundInstrumentId == 101 and self.tied and self.fullDuration:
newDuration = -1
# condition for overlaped notes
- if Config.INSTRUMENTS[ self.instrumentFlag ].csoundInstrumentId == 102 and self.overlap:
+ if self.instrumentDB.instNamed[ self.instrumentFlag ].csoundInstrumentId == 102 and self.overlap:
newDuration = oneTickDuration * self.duration + 1.
if True: newAmplitude = self.amplitude * 0.8
@@ -82,22 +82,22 @@ class NoteStdAlone:
if newDecay <= 0.002:
newDecay = 0.002
- loopStart = Config.INSTRUMENTS[ self.instrumentFlag ].loopStart
- loopEnd = Config.INSTRUMENTS[ self.instrumentFlag ].loopEnd
- crossDur = Config.INSTRUMENTS[ self.instrumentFlag ].crossDur
- return Config.PLAY_NOTE_COMMAND % ( Config.INSTRUMENTS[ self.instrumentFlag ].csoundInstrumentId,
- self.trackId,
+ loopStart = self.instrumentDB.instNamed[ self.instrumentFlag ].loopStart
+ loopEnd = self.instrumentDB.instNamed[ self.instrumentFlag ].loopEnd
+ crossDur = self.instrumentDB.instNamed[ self.instrumentFlag ].crossDur
+ return Config.PLAY_NOTE_COMMAND % ( self.instrumentDB.instNamed[ self.instrumentFlag ].csoundInstrumentId,
+ self.trackId,
0,
- newDuration,
- newPitch,
- self.reverbSend,
- newAmplitude,
- self.pan,
- Config.INSTRUMENT_TABLE_OFFSET + Config.INSTRUMENTS[ self.instrumentFlag ].instrumentId,
+ newDuration,
+ newPitch,
+ self.reverbSend,
+ newAmplitude,
+ self.pan,
+ Config.INSTRUMENT_TABLE_OFFSET + self.instrumentDB.instNamed[ self.instrumentFlag ].instrumentId,
newAttack,
newDecay,
self.filterType,
self.filterCutoff,
- loopStart,
- loopEnd,
- crossDur )
+ loopStart,
+ loopEnd,
+ crossDur )
diff --git a/TamTamMini.activity/Mini/RythmGenerator.py b/TamTamMini.activity/Mini/RythmGenerator.py
index 537f598..11df96e 100644
--- a/TamTamMini.activity/Mini/RythmGenerator.py
+++ b/TamTamMini.activity/Mini/RythmGenerator.py
@@ -4,9 +4,11 @@ import common.Config as Config
from common.Util.CSoundNote import CSoundNote
from common.Generation.GenerationConstants import GenerationConstants
from GenRythm import GenRythm
+from common.Util import InstrumentDB
def generator( instrument, nbeats, density, regularity, reverbSend ):
+ instrumentDB = InstrumentDB.getRef()
makeRythm = GenRythm()
noteDuration = GenerationConstants.DOUBLE_TICK_DUR / 2
@@ -18,15 +20,15 @@ def generator( instrument, nbeats, density, regularity, reverbSend ):
filterCutoff = 1000
tied = False
mode = 'mini'
-
+
def makePitchSequence(length, drumPitch):
pitchSequence = []
append = pitchSequence.append
list = range(length)
max = len(drumPitch) - 1
for i in list:
- append(drumPitch[ random.randint( 0, max ) ] )
- return pitchSequence
+ append(drumPitch[ random.randint( 0, max ) ] )
+ return pitchSequence
def makeGainSequence( onsetList ):
gainSequence = []
@@ -36,16 +38,16 @@ def generator( instrument, nbeats, density, regularity, reverbSend ):
gain = random.uniform(GenerationConstants.GAIN_MID_MAX_BOUNDARY, GenerationConstants.GAIN_MAX_BOUNDARY)
elif ( onset % Config.TICKS_PER_BEAT) == 0:
gain = random.uniform(GenerationConstants.GAIN_MID_MIN_BOUNDARY, GenerationConstants.GAIN_MID_MAX_BOUNDARY)
- else:
+ else:
gain = random.uniform(GenerationConstants.GAIN_MIN_BOUNDARY, GenerationConstants.GAIN_MID_MIN_BOUNDARY)
append(gain)
- return gainSequence
-
+ return gainSequence
+
def pageGenerate( regularity, drumPitch ):
barLength = Config.TICKS_PER_BEAT * nbeats
#print 'pageGenerate drumPitch[0] ', drumPitch[0]
- currentInstrument = Config.INSTRUMENTS[ instrument ].kit[ drumPitch[0] ].name
+ currentInstrument = instrumentDB.instNamed[ instrument ].kit[ drumPitch[0] ] #.name
rythmSequence = makeRythm.drumRythmSequence(currentInstrument, nbeats, density, regularity)
pitchSequence = makePitchSequence(len(rythmSequence), drumPitch )
@@ -54,16 +56,16 @@ def generator( instrument, nbeats, density, regularity, reverbSend ):
trackNotes = []
list = range(len(rythmSequence))
for i in list:
- trackNotes.append( CSoundNote( rythmSequence[i], pitchSequence[i], gainSequence[i],
- pan, noteDuration, trackId,
- Config.INSTRUMENTS[instrument].instrumentId, attack,
+ trackNotes.append( CSoundNote( rythmSequence[i], pitchSequence[i], gainSequence[i],
+ pan, noteDuration, trackId,
+ instrumentDB.instNamed[instrument].instrumentId, attack,
decay, reverbSend, filterType, filterCutoff, tied, mode))
return trackNotes
-##################################################################################
- # begin generate()
+##################################################################################
+ # begin generate()
if regularity > 0.75:
- streamOfPitch = GenerationConstants.DRUM_COMPLEXITY1
+ streamOfPitch = GenerationConstants.DRUM_COMPLEXITY1
elif regularity > 0.5:
streamOfPitch = GenerationConstants.DRUM_COMPLEXITY2
elif regularity > 0.25:
diff --git a/TamTamMini.activity/Mini/miniTamTamMain.py b/TamTamMini.activity/Mini/miniTamTamMain.py
index 1f9048e..c410a86 100644
--- a/TamTamMini.activity/Mini/miniTamTamMain.py
+++ b/TamTamMini.activity/Mini/miniTamTamMain.py
@@ -24,6 +24,7 @@ from common.Util import NoteDB
from common.Util.NoteDB import Note
from common.Util.CSoundClient import new_csound_client
from common.Util.LoopSettings import LoopSettings
+from common.Util import InstrumentDB
from Fillin import Fillin
from KeyboardStandAlone import KeyboardStandAlone
@@ -46,6 +47,7 @@ class miniTamTamMain(gtk.EventBox):
self.set_border_width(Config.MAIN_WINDOW_PADDING)
+ self.instrumentDB = InstrumentDB.getRef()
self.firstTime = False
self.playing = False
self.csnd = new_csound_client()
@@ -564,7 +566,7 @@ class miniTamTamMain(gtk.EventBox):
#data is drum1kit, drum2kit, or drum3kit
#print 'HANDLE: Generate Button'
self.rythmInstrument = data
- instrumentId = Config.INSTRUMENTS[data].instrumentId
+ instrumentId = self.instrumentDB.instNamed[data].instrumentId
for (o,n) in self.noteList :
self.csnd.loopUpdate(n, NoteDB.PARAMETER.INSTRUMENT, instrumentId, -1)
self.drumFillin.setInstrument( self.rythmInstrument )
@@ -595,7 +597,7 @@ class miniTamTamMain(gtk.EventBox):
pan = 0.5,
duration = 20,
trackId = 1,
- instrumentId = Config.INSTRUMENTS[instrument].instrumentId,
+ instrumentId = self.instrumentDB.instNamed[instrument].instrumentId,
reverbSend = self.reverb,
tied = False,
mode = 'mini'),
diff --git a/TamTamMini.activity/TamTamMini.py b/TamTamMini.activity/TamTamMini.py
index 6823ced..404a7d1 100644
--- a/TamTamMini.activity/TamTamMini.py
+++ b/TamTamMini.activity/TamTamMini.py
@@ -8,6 +8,7 @@ import gtk
import gobject
import time
+import common.Util.Instruments
import common.Config as Config
from common.Util.CSoundClient import new_csound_client
from common.Util.Profiler import TP
@@ -60,7 +61,7 @@ class TamTamMini(activity.Activity):
self.mini.setInstrumentPanel( self.instrumentPanel )
self.set_canvas( self.mini )
-
+
self.mini.onActivate(arg = None)
self.show()
@@ -78,7 +79,7 @@ class TamTamMini(activity.Activity):
if Config.DEBUG > 4: print "TamTam::preload returned after", time.time() - t
return True
-
+
def onActive(self, widget = None, event = None):
if widget.props.active == False:
csnd = new_csound_client()
@@ -86,7 +87,7 @@ class TamTamMini(activity.Activity):
else:
csnd = new_csound_client()
csnd.connect(True)
-
+
def onKeyPress(self, widget, event):
pass
@@ -129,7 +130,7 @@ class TamTamMini(activity.Activity):
def read_file(self,file_path):
self.metadata['tamtam_subactivity'] = 'mini'
-
+
def write_file(self,file_path):
f = open(file_path,'w')
- f.close()
+ f.close()