Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/Edit
diff options
context:
space:
mode:
authorOli <olivier.belanger@umontreal.ca>2007-08-24 20:58:52 (GMT)
committer Oli <olivier.belanger@umontreal.ca>2007-08-24 20:58:52 (GMT)
commit6a209f15052e84430279a5fa66c2d661513c067f (patch)
tree1b56f610ece9888237166eb2cb8242573857b4b5 /Edit
parentd6a28d7e04123f3d2b4eb6c092e0cd807865036f (diff)
META ALGO: Diverse algo on each track
Diffstat (limited to 'Edit')
-rw-r--r--Edit/EditToolbars.py6
-rw-r--r--Edit/MainWindow.py164
2 files changed, 7 insertions, 163 deletions
diff --git a/Edit/EditToolbars.py b/Edit/EditToolbars.py
index 9d25f51..abd425d 100644
--- a/Edit/EditToolbars.py
+++ b/Edit/EditToolbars.py
@@ -584,7 +584,7 @@ class generationPalette(Palette):
self.parametersChanged()
def handleMode( self, widget, data = None ):
- self.pattern = widget.props.value
+ self.pattern = [widget.props.value for x in range(4)]
self.parametersChanged()
def getGenerationParameters( self ):
@@ -618,7 +618,7 @@ class generationPalette(Palette):
############ generate a preview melody ##############s
def previewGenerator(self, parameters):
makeRythm = GenerationRythm()
- makePitch = GenerationPitch(parameters.pattern)
+ makePitch = GenerationPitch()
table_duration = Utils.scale(parameters.articule, 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
@@ -626,7 +626,7 @@ class generationPalette(Palette):
trackNotes = []
rythmSequence = makeRythm.celluleRythmSequence(parameters, barLength)
- pitchSequence = makePitch.drunkPitchSequence(len(rythmSequence),parameters, table_pitch)
+ pitchSequence = makePitch.drunkPitchSequence(len(rythmSequence),parameters, table_pitch, 0)
gainSequence = self.makeGainSequence(rythmSequence)
durationSequence = self.makeDurationSequence(rythmSequence, parameters, table_duration, barLength)
diff --git a/Edit/MainWindow.py b/Edit/MainWindow.py
index 8779f8d..6235eaf 100644
--- a/Edit/MainWindow.py
+++ b/Edit/MainWindow.py
@@ -57,6 +57,7 @@ class MainWindow( SubActivity ):
self.scale = GenerationConstants.DEFAULT_SCALE
# 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( ):
@@ -403,164 +404,7 @@ class MainWindow( SubActivity ):
self.audioRecordState = False
def createNewTune( self, widget, data=None ):
- if random.choice([0,1]):
- self.createNewTune3()
- else:
- self.createNewTune3()
-
- def createNewTune1( self ):
-
- if self.playing == True:
- self.handleStop()
-
- 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 )
-
- orch = self.newOrchestra()
-
- instrumentsIds = []
- for inst in orch:
- instrumentsIds.append(inst.instrumentId)
-
- self.pageDelete( -1, instruments = instrumentsIds )
-
- 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.pageAdd(instruments = instrumentsIds)
- 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]) )
-
- orch = self.newOrchestra()
-
- instrumentsIds = []
- for inst in orch:
- 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 ):
-
- if self.playing == True:
- self.handleStop()
-
- 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 )
-
- orch = self.newOrchestra()
- instrumentsIds = []
- for inst in orch:
- instrumentsIds.append(inst.instrumentId)
-
- self.pageDelete( -1, instruments = instrumentsIds )
-
- 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]) )
-
- if param[0] < 0.5:
- densRange = .9 - param[0]
- densStep = densRange / 4.
- densDir = 1
- else:
- densRange = param[0] - 0.1
- densStep = densRange / 4.
- densDir = -1
-
- if param[1] < 0.5:
- rytRange = .95 - param[1]
- rytStep = rytRange / 4.
- rytDir = 1
- else:
- rytRange = param[1] - 0.25
- rytStep = rytRange / 4.
- rytDir = -1
-
- if param[2] < 0.5:
- stepRange = .95 - param[2]
- stepStep = stepRange / 4.
- stepDir = 1
- else:
- stepRange = param[2] - 0.05
- stepStep = stepRange / 4.
- stepDir = -1
-
- if param[3] < 0.5:
- pitRange = .9 - param[3]
- pitStep = pitRange / 4.
- pitDir = 1
- else:
- pitRange = param[3] - 0.1
- pitStep = pitRange / 4.
- pitDir = -1
-
- if param[4] < 0.5:
- durRange = .9 - param[4]
- durStep = durRange / 4.
- durDir = 1
- else:
- durRange = param[4] - 0.45
- durStep = durRange / 4.
- durDir = -1
-
- for i in [1,2,3,4]:
- self.pageAdd(instruments = instrumentsIds)
- self.pageAdd(instruments = instrumentsIds)
-
- self.tuneInterface.selectPages( self.noteDB.getTune()[i*2:] )
- #self.displayPage( self.noteDB.getTune()[i*2] )
- self.generate( GenerationParameters(
- density = param[0],
- rythmRegularity = param[1]+(rytStep*i*rytDir),
- step = param[2]+(stepStep*i*stepDir),
- pitchRegularity = param[3]+(pitStep*i*pitDir),
- articule = param[4],
- silence = param[5],
- pattern = param[6],
- scale = param[7]) )
-
- self.tuneInterface.selectPages( self.noteDB.getTune() )
- self.displayPage( self.noteDB.getTune()[0] )
+ self.createNewTune3()
def createNewTune3( self ):
@@ -652,8 +496,8 @@ class MainWindow( SubActivity ):
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]
+ 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]
def onActivate( self, arg ):