Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/Edit
diff options
context:
space:
mode:
authoramartin <olpc@xo-00-CE-12.localdomain>2007-07-11 16:56:19 (GMT)
committer amartin <olpc@xo-00-CE-12.localdomain>2007-07-11 16:56:19 (GMT)
commit173ce4953c5917e8b5f7e9c85ff63055ed1aa02e (patch)
tree9a687d32e3d66aa38c395f5b8d486b4d86cc59f7 /Edit
parentc6274055a8bb53b979b3dc213d0ea3f96776a47b (diff)
parent2fce1df0bedaf958c69c91f314614ac08d11f643 (diff)
Merge branch 'master' of git+ssh://amartin@dev.laptop.org/git/projects/tamtam
Diffstat (limited to 'Edit')
-rw-r--r--Edit/MainWindow.py135
1 files changed, 82 insertions, 53 deletions
diff --git a/Edit/MainWindow.py b/Edit/MainWindow.py
index d8750f7..0da62bc 100644
--- a/Edit/MainWindow.py
+++ b/Edit/MainWindow.py
@@ -379,9 +379,9 @@ class MainWindow( SubActivity ):
self.GUI["2toolPanel"].pack_start( self.GUI["2transportBox"] )
# + load/save box
self.GUI["2tuneBox"] = formatRoundBox( RoundHBox(), Config.BG_COLOR )
- self.GUI["2generateBtn"] = ImageButton(Config.IMAGE_ROOT + 'dice.png', clickImg_path = Config.IMAGE_ROOT + 'diceblur.png')
+ self.GUI["2generateBtn"] = ImageButton(Config.IMAGE_ROOT + 'diceEdit.png', clickImg_path = Config.IMAGE_ROOT + 'diceEditBlur.png')
self.GUI["2generateBtn"].connect('button-press-event', self.createNewTune)
- self.GUI["2tuneBox"].pack_start( self.GUI["2generateBtn"], False, False )
+ self.GUI["2tuneBox"].pack_start( self.GUI["2generateBtn"], False, False, 10 )
# self.GUI["2saveButton"] = ImageButton( Config.IMAGE_ROOT+"save.png", backgroundFill=Config.BG_COLOR )
# self.GUI["2saveButton"].connect("clicked", self.handleSave )
# self.GUI["2tuneBox"].pack_start( self.GUI["2saveButton"], False, False )
@@ -551,27 +551,7 @@ class MainWindow( SubActivity ):
if len(stream):
self.noteDB.updatePages( [ PARAMETER.PAGE_BEATS, len(stream)//2 ] + stream )
- stringsPickup = []
- windsPickup = []
- keyboardPickup = []
- fxPickup = []
- drumsPickup = ["drum1kit", "drum2kit", "drum3kit", "drum4kit", "drum5kit"]
- for name in Config.INSTRUMENTS.keys():
- if Config.INSTRUMENTS[name].category == 'strings':
- stringsPickup.append(name)
- elif Config.INSTRUMENTS[name].category == 'winds':
- windsPickup.append(name)
- elif Config.INSTRUMENTS[name].category == 'keyboard' or Config.INSTRUMENTS[name].category == 'people':
- keyboardPickup.append(name)
- self.trackInstrument = [
- Config.INSTRUMENTS[random.choice(stringsPickup)],
- Config.INSTRUMENTS[random.choice(stringsPickup)],
- Config.INSTRUMENTS[random.choice(windsPickup)],
- Config.INSTRUMENTS[random.choice(keyboardPickup)],
- Config.INSTRUMENTS[random.choice(drumsPickup)] ]
-
- for tid in range(Config.NUMBER_OF_TRACKS):
- self.handleInstrumentChanged( ( tid, self.trackInstrument[tid] ) )
+ self.newOrchestra()
instrumentsIds = []
for inst in self.trackInstrument:
@@ -583,16 +563,7 @@ class MainWindow( SubActivity ):
self._data['tempo'] = initTempo
self.GUI["2tempoAdjustment"].set_value(self._data['tempo'])
- choose = random.randint(0,4)
- density = GenerationConstants.RYTHM_DENSITY_BANK[choose]
- rytReg = GenerationConstants.RYTHM_REGU_BANK[choose]
- pitReg = GenerationConstants.PITCH_REGU_BANK[choose]
- step = GenerationConstants.PITCH_STEP_BANK[choose]
- dur = GenerationConstants.DURATION_BANK[choose]
- silence = GenerationConstants.SILENCE_BANK[choose]
- pattern = GenerationConstants.PATTERN_BANK[choose]
- scale = GenerationConstants.SCALE_BANK[choose]
-
+ param = self.chooseGenParams()
self.pageAdd(instruments = instrumentsIds)
self.pageAdd(instruments = instrumentsIds)
@@ -600,8 +571,79 @@ class MainWindow( SubActivity ):
self.tuneInterface.selectPages( self.noteDB.getTune() )
self.displayPage( self.noteDB.getTune()[0] )
self.generateMode = 'page'
- self.generate( GenerationParameters( density = density, rythmRegularity = rytReg, step = step, pitchRegularity = pitReg, articule = dur, silence = silence, pattern = pattern, scale = scale) )
+ self.generate( GenerationParameters( density = param[0], rythmRegularity = param[1], step = param[2], pitchRegularity = param[3], articule = param[4], silence = param[5], pattern = param[6], scale = param[7]) )
+
+ self.newOrchestra()
+
+ instrumentsIds = []
+ for inst in self.trackInstrument:
+ instrumentsIds.append(inst.instrumentId)
+
+ self.pageAdd(instruments = instrumentsIds)
+ self.pageAdd(instruments = instrumentsIds)
+ self.pageAdd(instruments = instrumentsIds)
+ self.pageAdd(instruments = instrumentsIds)
+
+ param = self.chooseGenParams()
+
+ self.tuneInterface.selectPages( self.noteDB.getTune()[4:] )
+ self.displayPage( self.noteDB.getTune()[4] )
+ self.generateMode = 'page'
+ self.generate( GenerationParameters( density = param[0], rythmRegularity = param[1], step = param[2], pitchRegularity = param[3], articule = param[4], silence = param[5], pattern = param[6], scale = param[7]) )
+
+ self.tuneInterface.selectPages( self.noteDB.getTune() )
+ self.displayPage( self.noteDB.getTune()[0] )
+
+ def createNewTune2( self, widget, data=None ):
+
+ if self.playing == True:
+ self.handleStop(self.GUI["2stopButton"])
+
+ self.tuneInterface.selectPages( self.noteDB.getTune() )
+
+ beats = random.randint(3,8)
+ stream = []
+ for page in self.noteDB.getTune():
+ stream += [ page, beats ]
+ if len(stream):
+ self.noteDB.updatePages( [ PARAMETER.PAGE_BEATS, len(stream)//2 ] + stream )
+
+ self.newOrchestra()
+ instrumentsIds = []
+ for inst in self.trackInstrument:
+ instrumentsIds.append(inst.instrumentId)
+
+ self.pageDelete( -1 )
+
+ initTempo = random.randint(60, 132)
+ self._data['tempo'] = initTempo
+ self.GUI["2tempoAdjustment"].set_value(self._data['tempo'])
+
+ param = self.chooseGenParams()
+
+ self.pageAdd(instruments = instrumentsIds)
+ self.tuneInterface.selectPages( self.noteDB.getTune() )
+ self.displayPage( self.noteDB.getTune()[0] )
+ self.generateMode = 'page'
+ self.generate( GenerationParameters( density = param[0], rythmRegularity = param[1], step = param[2], pitchRegularity = param[3], articule = param[4], silence = param[5], pattern = param[6], scale = param[7]) )
+
+
+ self.pageAdd(instruments = instrumentsIds)
+ self.pageAdd(instruments = instrumentsIds)
+ self.pageAdd(instruments = instrumentsIds)
+ self.pageAdd(instruments = instrumentsIds)
+
+ param = self.chooseGenParams()
+
+ self.tuneInterface.selectPages( self.noteDB.getTune()[4:] )
+ self.displayPage( self.noteDB.getTune()[4] )
+ self.generateMode = 'page'
+ self.generate( GenerationParameters( density = param[0], rythmRegularity = param[1], step = param[2], pitchRegularity = param[3], articule = param[4], silence = param[5], pattern = param[6], scale = param[7]) )
+
+ self.tuneInterface.selectPages( self.noteDB.getTune() )
+ self.displayPage( self.noteDB.getTune()[0] )
+ def newOrchestra(self):
stringsPickup = []
windsPickup = []
keyboardPickup = []
@@ -614,41 +656,28 @@ class MainWindow( SubActivity ):
windsPickup.append(name)
elif Config.INSTRUMENTS[name].category == 'keyboard' or Config.INSTRUMENTS[name].category == 'people':
keyboardPickup.append(name)
-
self.trackInstrument = [
Config.INSTRUMENTS[random.choice(stringsPickup)],
Config.INSTRUMENTS[random.choice(stringsPickup)],
Config.INSTRUMENTS[random.choice(windsPickup)],
Config.INSTRUMENTS[random.choice(keyboardPickup)],
Config.INSTRUMENTS[random.choice(drumsPickup)] ]
-
- instrumentsIds = []
- for inst in self.trackInstrument:
- instrumentsIds.append(inst.instrumentId)
- self.pageAdd(instruments = instrumentsIds)
- self.pageAdd(instruments = instrumentsIds)
- self.pageAdd(instruments = instrumentsIds)
- self.pageAdd(instruments = instrumentsIds)
+# for tid in range(Config.NUMBER_OF_TRACKS):
+# self.handleInstrumentChanged( ( tid, self.trackInstrument[tid] ) )
+ def chooseGenParams(self):
choose = random.randint(0,4)
density = GenerationConstants.RYTHM_DENSITY_BANK[choose]
rytReg = GenerationConstants.RYTHM_REGU_BANK[choose]
- pitReg = GenerationConstants.PITCH_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]
pattern = GenerationConstants.PATTERN_BANK[choose]
scale = GenerationConstants.SCALE_BANK[choose]
-
- self.tuneInterface.selectPages( self.noteDB.getTune()[4:] )
- self.displayPage( self.noteDB.getTune()[4] )
- self.generateMode = 'page'
- self.generate( GenerationParameters( density = density, rythmRegularity = rytReg, step = step, pitchRegularity = pitReg, articule = dur, silence = silence, pattern = pattern, scale = scale) )
-
- self.tuneInterface.selectPages( self.noteDB.getTune() )
- self.displayPage( self.noteDB.getTune()[0] )
-
+ return [density, rytReg, step, pitReg, dur, silence, pattern, scale]
+
def onActivate( self, arg ):
SubActivity.onActivate( self,arg )
# whatever needs to be done on initialization