From 3e9a586f404b70cda362cf888653de9c940fd849 Mon Sep 17 00:00:00 2001 From: Oli Date: Fri, 19 Oct 2007 08:08:02 +0000 Subject: switch to instrumentDB --- (limited to 'TamTamMini.activity') 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() -- cgit v0.9.1