Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/TamTamEdit.activity
diff options
context:
space:
mode:
authorOli <olivier.belanger@umontreal.ca>2007-09-21 00:13:06 (GMT)
committer Oli <olivier.belanger@umontreal.ca>2007-09-21 00:13:06 (GMT)
commit72610bcaf281600e9925d65db8f9af89b14e558e (patch)
tree3712615fcb12b7a8b5ed273ecf5d63531363ea4e /TamTamEdit.activity
parent05958007515277d0adcd9ae161c12ddb0cfb6426 (diff)
meta algo
Diffstat (limited to 'TamTamEdit.activity')
-rw-r--r--TamTamEdit.activity/Edit/EditToolbars.py41
-rw-r--r--TamTamEdit.activity/Edit/MainWindow.py67
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])
-
-
-