diff options
author | Oli <olivier.belanger@umontreal.ca> | 2007-09-21 00:13:06 (GMT) |
---|---|---|
committer | Oli <olivier.belanger@umontreal.ca> | 2007-09-21 00:13:06 (GMT) |
commit | 72610bcaf281600e9925d65db8f9af89b14e558e (patch) | |
tree | 3712615fcb12b7a8b5ed273ecf5d63531363ea4e /TamTamEdit.activity | |
parent | 05958007515277d0adcd9ae161c12ddb0cfb6426 (diff) |
meta algo
Diffstat (limited to 'TamTamEdit.activity')
-rw-r--r-- | TamTamEdit.activity/Edit/EditToolbars.py | 41 | ||||
-rw-r--r-- | TamTamEdit.activity/Edit/MainWindow.py | 67 |
2 files changed, 53 insertions, 55 deletions
diff --git a/TamTamEdit.activity/Edit/EditToolbars.py b/TamTamEdit.activity/Edit/EditToolbars.py index ae0c334..1335180 100644 --- a/TamTamEdit.activity/Edit/EditToolbars.py +++ b/TamTamEdit.activity/Edit/EditToolbars.py @@ -41,7 +41,7 @@ class mainToolbar(gtk.Toolbar): self.toolbox = toolbox self.edit = edit - + self.tooltips = gtk.Tooltips() #Play button @@ -196,16 +196,16 @@ class generateToolbar(gtk.Toolbar): self.pauseButtonImg = gtk.Image() self.pauseButtonImg.set_from_icon_name('media-playback-pause', gtk.ICON_SIZE_LARGE_TOOLBAR) self.pauseButtonImg.show() - + _insertSeparator(1) - + #BigGeneration button self.bigGenerationButton = ToolButton('diceB') self.bigGenerationButton.connect('clicked', self.edit.createNewTune) self.insert(self.bigGenerationButton, -1) self.bigGenerationButton.show() self.bigGenerationButton.set_tooltip(_('Generate Tune')) - + #Generation button self._generationPalette = generationPalette(_('Generation'), self.edit) self.generationButton = ToggleToolButton('dice') @@ -220,7 +220,7 @@ class generateToolbar(gtk.Toolbar): self.propsButton.set_palette(self._propertiesPalette) self.insert(self.propsButton, -1) self.propsButton.show() - + def handlePlayPause(self, widget, data = None): if widget.get_active(): self.edit.handlePlay(widget) @@ -444,9 +444,9 @@ class generationPalette(Palette): self.XYSliderBox1 = RoundFixed(fillcolor = '#CCCCCC', bordercolor = '#000000') self.XYSliderBox1.set_size_request(200,200) self.XYButton1 = ImageToggleButton( Config.TAM_TAM_ROOT + '/icons/XYBut.svg', Config.TAM_TAM_ROOT + '/icons/XYButDown.svg') - self.XAdjustment1 = gtk.Adjustment(self.rythmDensity * 100, 0, 100, 1, 1, 1) + self.XAdjustment1 = gtk.Adjustment(self.rythmDensity[0] * 100, 0, 100, 1, 1, 1) self.XAdjustment1.connect("value-changed", self.handleXAdjustment1) - self.YAdjustment1 = gtk.Adjustment(self.rythmRegularity * 100, 0, 100, 1, 1, 1) + self.YAdjustment1 = gtk.Adjustment(self.rythmRegularity[0] * 100, 0, 100, 1, 1, 1) self.YAdjustment1.connect("value-changed", self.handleYAdjustment1) self.XYSlider1 = XYSlider( self.XYSliderBox1, self.XYButton1, self.XAdjustment1, self.YAdjustment1, False, True ) self.XSlider1BottomLabelBox.pack_start(self.XSlider1Img, False, False, padding = 5) @@ -471,9 +471,9 @@ class generationPalette(Palette): self.XYSliderBox2 = RoundFixed(fillcolor = '#CCCCCC', bordercolor = '#000000') self.XYSliderBox2.set_size_request(200,200) self.XYButton2 = ImageToggleButton( Config.TAM_TAM_ROOT + '/icons/XYBut.svg', Config.TAM_TAM_ROOT + '/icons/XYButDown.svg') - self.XAdjustment2 = gtk.Adjustment(self.pitchRegularity * 100, 0, 100, 1, 1, 1) + self.XAdjustment2 = gtk.Adjustment(self.pitchRegularity[0] * 100, 0, 100, 1, 1, 1) self.XAdjustment2.connect("value-changed", self.handleXAdjustment2) - self.YAdjustment2 = gtk.Adjustment(self.pitchStep * 100, 0, 100, 1, 1, 1) + self.YAdjustment2 = gtk.Adjustment(self.pitchStep[0] * 100, 0, 100, 1, 1, 1) self.YAdjustment2.connect("value-changed", self.handleYAdjustment2) self.XYSlider2 = XYSlider( self.XYSliderBox2, self.XYButton2, self.XAdjustment2, self.YAdjustment2, False, True ) self.XSlider2BottomLabelBox.pack_start(self.XSlider2Img, False, False, padding = 5) @@ -498,9 +498,9 @@ class generationPalette(Palette): self.XYSliderBox3 = RoundFixed(fillcolor = '#CCCCCC', bordercolor = '#000000') self.XYSliderBox3.set_size_request(200,200) self.XYButton3 = ImageToggleButton( Config.TAM_TAM_ROOT + '/icons/XYBut.svg', Config.TAM_TAM_ROOT + '/icons/XYButDown.svg') - self.XAdjustment3 = gtk.Adjustment(self.duration * 100, 0, 100, 1, 1, 1) + self.XAdjustment3 = gtk.Adjustment(self.duration[0] * 100, 0, 100, 1, 1, 1) self.XAdjustment3.connect("value-changed", self.handleXAdjustment3) - self.YAdjustment3 = gtk.Adjustment(self.silence * 100, 0, 100, 1, 1, 1) + self.YAdjustment3 = gtk.Adjustment(self.silence[0] * 100, 0, 100, 1, 1, 1) self.YAdjustment3.connect("value-changed", self.handleYAdjustment3) self.XYSlider3 = XYSlider( self.XYSliderBox3, self.XYButton3, self.XAdjustment3, self.YAdjustment3, False, True ) self.XSlider3BottomLabelBox.pack_start(self.XSlider3Img, False, False, padding = 5) @@ -610,27 +610,28 @@ class generationPalette(Palette): def handleXAdjustment1( self, data ): - self.rythmDensity = self.XAdjustment1.value * .01 + self.rythmDensity = [self.XAdjustment1.value * .01 for x in range(4)] + self.parametersChanged() def handleYAdjustment1( self, data ): - self.rythmRegularity = self.YAdjustment1.value * .01 + self.rythmRegularity = [self.YAdjustment1.value * .01 for x in range(4)] self.parametersChanged() def handleXAdjustment2( self, data ): - self.pitchRegularity = self.XAdjustment2.value * .01 + self.pitchRegularity = [self.XAdjustment2.value * .01 for x in range(4)] self.parametersChanged() def handleYAdjustment2( self, data ): - self.pitchStep = self.YAdjustment2.value * .01 + self.pitchStep = [self.YAdjustment2.value * .01 for x in range(4)] self.parametersChanged() def handleXAdjustment3( self, data ): - self.duration = self.XAdjustment3.value * .01 + self.duration = [self.XAdjustment3.value * .01 for x in range(4)] self.parametersChanged() def handleYAdjustment3( self, data ): - self.silence = self.YAdjustment3.value * .01 + self.silence = [self.YAdjustment3.value * .01 for x in range(4)] self.parametersChanged() def handleScale(self, widget, data = None): @@ -674,19 +675,19 @@ class generationPalette(Palette): def previewGenerator(self, parameters): makeRythm = GenerationRythm() makePitch = GenerationPitch() - table_duration = Utils.scale(parameters.articule, GenerationConstants.ARTICULATION_SCALE_MIN_MAPPING, GenerationConstants.ARTICULATION_SCALE_MAX_MAPPING, GenerationConstants.ARTICULATION_SCALE_STEPS) + table_duration = Utils.scale(parameters.articule[0], GenerationConstants.ARTICULATION_SCALE_MIN_MAPPING, GenerationConstants.ARTICULATION_SCALE_MAX_MAPPING, GenerationConstants.ARTICULATION_SCALE_STEPS) table_pitch = GenerationConstants.SCALES[parameters.scale] beat = self.edit.noteDB.pages[self.edit.tuneInterface.getSelectedIds()[0]].beats barLength = Config.TICKS_PER_BEAT * beat trackNotes = [] - rythmSequence = makeRythm.celluleRythmSequence(parameters, barLength) + rythmSequence = makeRythm.celluleRythmSequence(parameters, barLength, 0) pitchSequence = makePitch.drunkPitchSequence(len(rythmSequence),parameters, table_pitch, 0) gainSequence = self.makeGainSequence(rythmSequence) durationSequence = self.makeDurationSequence(rythmSequence, parameters, table_duration, barLength) for i in range(len(rythmSequence)): - if random() > parameters.silence: + if random() > parameters.silence[0]: trackNotes.append([rythmSequence[i], pitchSequence[i], gainSequence[i], durationSequence[i]]) #print "-------------------------------------------------------",trackNotes return ( trackNotes, beat ) diff --git a/TamTamEdit.activity/Edit/MainWindow.py b/TamTamEdit.activity/Edit/MainWindow.py index f79a8f2..49125a4 100644 --- a/TamTamEdit.activity/Edit/MainWindow.py +++ b/TamTamEdit.activity/Edit/MainWindow.py @@ -59,7 +59,7 @@ class MainWindow( gtk.EventBox ): # META ALGO: [section, variation or not, nPages] A B A C # TODO: Different parameters sets for each tracks self.tuneForm = [[0, False, 4], [1, False, 4], [0, True, 4], [2, False, 2]] - + def init_data( ): TP.ProfileBegin("init_data") self._data = {} @@ -78,7 +78,7 @@ class MainWindow( gtk.EventBox ): self.trackInstrument = self.trackInstrumentDefault[:] if len(self.trackInstrument) != Config.NUMBER_OF_TRACKS: raise 'error' self.drumIndex = Config.NUMBER_OF_TRACKS - 1 - + self.last_clicked_instTrackID = 0 self.last_clicked_instPrimary = 'kalimba' @@ -250,7 +250,7 @@ class MainWindow( gtk.EventBox ): self.GUI["2drumButton"] = ImageToggleButton(Config.IMAGE_ROOT + self.trackInstrument[4].name + '.png', Config.IMAGE_ROOT + self.trackInstrument[4].name + '.png') self.GUI["2drumPalette"] = instrumentPalette(_('Track 5 Volume'), self, 4) self.GUI["2drumButton"].set_palette(self.GUI["2drumPalette"]) - self.GUI["2drumButton"].connect("toggled", self.pickDrum) + self.GUI["2drumButton"].connect("toggled", self.pickDrum) self.GUI["2drumBox"].pack_start( self.GUI["2drumButton"] ) self.GUI["2instrumentPanel"].pack_start( self.GUI["2drumBox"] ) self.GUI["2page"].pack_start( self.GUI["2instrumentPanel"], False ) @@ -501,13 +501,13 @@ class MainWindow( gtk.EventBox ): Config.INSTRUMENTS[random.choice(drumsPickup)] ] def chooseGenParams(self): - choose = random.randint(0,4) - density = GenerationConstants.RYTHM_DENSITY_BANK[choose] - rytReg = GenerationConstants.RYTHM_REGU_BANK[choose] - step = GenerationConstants.PITCH_STEP_BANK[choose] - pitReg = GenerationConstants.PITCH_REGU_BANK[choose] - dur = GenerationConstants.DURATION_BANK[choose] - silence = GenerationConstants.SILENCE_BANK[choose] + choose = [random.randint(0,4) for x in range(4)] + density = [GenerationConstants.RYTHM_DENSITY_BANK[i] for i in choose] + rytReg = [GenerationConstants.RYTHM_REGU_BANK[i] for i in choose] + step = [GenerationConstants.PITCH_STEP_BANK[i] for i in choose] + pitReg = [GenerationConstants.PITCH_REGU_BANK[i] for i in choose] + dur = [GenerationConstants.DURATION_BANK[i] for i in choose] + silence = [GenerationConstants.SILENCE_BANK[i] for i in choose] pattern = [random.choice([0,1,1,2,3,3]) for x in range(4)] scale = random.randint(0,6) return [density, rytReg, step, pitReg, dur, silence, pattern, scale] @@ -1436,7 +1436,7 @@ class MainWindow( gtk.EventBox ): except OSError,e: print 'ERROR: failed to open file %s for writing\n' % ofilename chooser.destroy() - + def handleLoopSave(self): date = str(time.localtime()[3]) + '-' + str(time.localtime()[4]) + '-' + str(time.localtime()[5]) ofilename = Config.PREF_DIR + '/' + date + '.ttl' @@ -1893,7 +1893,7 @@ class InstrumentButton( gtk.DrawingArea ): | gtk.gdk.BUTTON_RELEASE_MASK | gtk.gdk.POINTER_MOTION_MASK | gtk.gdk.POINTER_MOTION_HINT_MASK - | gtk.gdk.LEAVE_NOTIFY_MASK + | gtk.gdk.LEAVE_NOTIFY_MASK | gtk.gdk.ENTER_NOTIFY_MASK ) self.connect( "size-allocate", self.size_allocate ) self.connect( "button-press-event", self.button_press ) @@ -1987,7 +1987,7 @@ class InstrumentButton( gtk.DrawingArea ): self.hover = None if self.clicked == None: self.queue_draw() - + def setPrimary( self, img ): self.primary = img @@ -2044,11 +2044,11 @@ class InstrumentButton( gtk.DrawingArea ): self.gc.foreground = self.color["+/-"] self.window.draw_line( self.gc, self.hotspots[0][0], self.hotspots[0][5], self.hotspots[0][2], self.hotspots[0][5] ) self.window.draw_line( self.gc, self.hotspots[0][4], self.hotspots[0][1], self.hotspots[0][4], self.hotspots[0][3] ) - + def set_palette(self, palette): pass - - + + class NoneInvoker( Invoker ): def __init__( self ): @@ -2060,7 +2060,7 @@ class NoneInvoker( Invoker ): def get_toplevel( self ): return None - + class Popup( Palette ): def __init__( self, label, owner ): @@ -2074,7 +2074,7 @@ class Popup( Palette ): self.set_group_id( "TamTamPopup" ) self._set_state( Palette.SECONDARY ) # skip to fully exposed - + self.connect( "key-press-event", self.on_key_press ) self.connect( "key-release-event", self.on_key_release ) @@ -2121,22 +2121,22 @@ class Popup( Palette ): self.popdown(True) else: self.popup( True ) - + class instrumentPalette( Popup ): ICON_SIZE = (70,70) def __init__(self, label, edit, trackID): Popup.__init__(self, label, edit) - + self.trackID = trackID self.edit = edit - + self.tooltips = gtk.Tooltips() - + self.mainBox = gtk.VBox() self.volumeBox = gtk.HBox() self.instrumentMainBox = gtk.HBox() - + self.muteButton = gtk.CheckButton() self.muteButton.connect("toggled",self.edit.handlemuteButton, self.trackID) self.muteButton.connect("button-press-event",self.edit.handlemuteButtonRightClick, self.trackID) @@ -2152,9 +2152,9 @@ class instrumentPalette( Popup ): self.volumeSlider.set_size_request(250, -1) self.volumeSlider.set_inverted(False) self.volumeSlider.set_draw_value(False) - + categories = Config.CATEGORIES - + self.categoryBox = BigComboBox() for category in categories: image = Config.IMAGE_ROOT + category + '.png' @@ -2163,12 +2163,12 @@ class instrumentPalette( Popup ): self.categoryBox.append_item(category, category, icon_name = image, size = instrumentPalette.ICON_SIZE) self.categoryBox.set_active(0) self.categoryBox.connect('changed', self.handleCategoryChange) - + self.instrumentBox1 = BigComboBox() self.instrumentBox1.connect('changed', self.handleInstrumentChange) self.loadInstrumentMenu(self.getInstruments()) - - + + self.volumeBox.pack_start(self.muteButton, padding = 5) self.volumeBox.pack_start(self.volumeSlider, padding = 5) self.mainBox.pack_start(self.volumeBox, padding = 5) @@ -2178,17 +2178,17 @@ class instrumentPalette( Popup ): self.mainBox.show_all() self.set_content(self.mainBox) - + def handleInstrumentChange(self, widget): instrument = widget.props.value self.edit.playInstrumentNote(instrument) self.edit.donePickInstrument(instrument) - + def handleCategoryChange(self, widget): category = widget.props.value instruments = self.getInstruments(category) self.loadInstrumentMenu(instruments) - + def loadInstrumentMenu(self, instruments): self.instrumentBox1.remove_all() for instrument in instruments: @@ -2197,12 +2197,9 @@ class instrumentPalette( Popup ): image = Config.IMAGE_ROOT + 'generic.png' self.instrumentBox1.append_item(instrument, text = None, icon_name = image, size = instrumentPalette.ICON_SIZE) self.instrumentBox1.set_active(0) - + def getInstruments(self, category = 'all'): if category == 'all': return sorted([instrument for instrument in Config.INSTRUMENTS.keys() if not instrument.startswith('drum') and not instrument.startswith('gui')]) else: return sorted([instrument for instrument in Config.INSTRUMENTS.keys() if not instrument.startswith('drum') and not instrument.startswith('gui') and Config.INSTRUMENTS[instrument].category == category]) - - - |