diff options
author | Oli <olivier.belanger@umontreal.ca> | 2007-08-24 20:58:52 (GMT) |
---|---|---|
committer | Oli <olivier.belanger@umontreal.ca> | 2007-08-24 20:58:52 (GMT) |
commit | 6a209f15052e84430279a5fa66c2d661513c067f (patch) | |
tree | 1b56f610ece9888237166eb2cb8242573857b4b5 /Generation | |
parent | d6a28d7e04123f3d2b4eb6c092e0cd807865036f (diff) |
META ALGO: Diverse algo on each track
Diffstat (limited to 'Generation')
-rwxr-xr-x | Generation/Drunk.py | 2 | ||||
-rwxr-xr-x | Generation/GenerationConstants.py | 7 | ||||
-rw-r--r-- | Generation/GenerationPitch.py | 38 | ||||
-rwxr-xr-x | Generation/Generator.py | 5 |
4 files changed, 14 insertions, 38 deletions
diff --git a/Generation/Drunk.py b/Generation/Drunk.py index 0c32e1f..1bc3bbb 100755 --- a/Generation/Drunk.py +++ b/Generation/Drunk.py @@ -54,7 +54,7 @@ class DroneAndJump( Drunk ): Drunk.__init__( self, minValue, maxValue, trackLength=None ) self.minValue = min(minValue, maxValue) self.maxValue = max(minValue, maxValue) - self.beforeLastValue = self.minValue #random.randint( self.minValue, self.maxValue ) + self.beforeLastValue = random.randint( self.minValue, self.maxValue ) #self.minValue self.lastValue = self.beforeLastValue + 1 def getNextValue( self, maxStepSize, maxValue ): diff --git a/Generation/GenerationConstants.py b/Generation/GenerationConstants.py index 13cd44f..29dd28b 100755 --- a/Generation/GenerationConstants.py +++ b/Generation/GenerationConstants.py @@ -31,13 +31,12 @@ class GenerationConstants: # Default parameters for algorithmic generation - RYTHM_DENSITY_BANK = [.25, .88, .92, 1, .25] + RYTHM_DENSITY_BANK = [.25, .88, .72, 1, .25] RYTHM_REGU_BANK = [.75, .8, .85, .4, .5] PITCH_REGU_BANK = [.5, .8, 0, .85, .9] PITCH_STEP_BANK = [.5, .3, 1, .22, .85] DURATION_BANK = [.8, 1, .8, 1, 1] - SILENCE_BANK = [.2, .5, .25, .35, .12] - PATTERN_BANK = [0, 3, 1, 0, 3] + SILENCE_BANK = [.2, .5, .25, .55, .12] SCALE_BANK = [MAJOR, NATURAL_MINOR, LYDIEN, HARMONIC_MINOR, MYXOLYDIEN] chooseDefault = random.randint(0,4) @@ -47,7 +46,7 @@ class GenerationConstants: DEFAULT_STEP = PITCH_STEP_BANK[chooseDefault] DEFAULT_DURATION = DURATION_BANK[chooseDefault] DEFAULT_SILENCE = SILENCE_BANK[chooseDefault] - DEFAULT_PATTERN = PATTERN_BANK[chooseDefault] + DEFAULT_PATTERN = [random.randint(0,3) for x in range(4)] DEFAULT_SCALE = SCALE_BANK[chooseDefault] DEFAULT_RYTHM_METHOD = 0 diff --git a/Generation/GenerationPitch.py b/Generation/GenerationPitch.py index 2c9f999..4aeb7e9 100644 --- a/Generation/GenerationPitch.py +++ b/Generation/GenerationPitch.py @@ -5,36 +5,22 @@ import Config from Generation.GenerationConstants import GenerationConstants class GenerationPitch: - def __init__( self, pattern ): + def __init__( self ): MIN = 0 MAX = 14 - if pattern == 0: - self.pitchMethod = Drunk.Drunk( MIN, MAX ) - elif pattern == 1: - self.pitchMethod = Drunk.DroneAndJump( MIN, MAX ) - elif pattern == 2: - self.pitchMethod = Drunk.Repeter( MIN, MAX ) - elif pattern == 3: - self.pitchMethod = Drunk.Loopseg( MIN, MAX ) + self.drunkMethod = Drunk.Drunk( MIN, MAX ) + self.droneMethod = Drunk.DroneAndJump( MIN, MAX ) + self.repeatMethod = Drunk.Repeter( MIN, MAX ) + self.loopMethod = Drunk.Loopseg( MIN, MAX ) + self.methodList = [self.drunkMethod, self.droneMethod, self.repeatMethod, self.loopMethod] -# self.harmonicDrunk = Drunk.Drunk( MIN, MAX ) -# self.harmonicDroneAndJump = Drunk.DroneAndJump( MIN, MAX ) -# self.harmonicRepeter = Drunk.Repeter( MIN, MAX ) -# self.harmonicLoopseg = Drunk.Loopseg( MIN, MAX ) - -# def harmonicChooseMethod( self, pattern ): -# if pattern == 0: return self.harmonicDrunk -# elif pattern == 1: return self.harmonicDroneAndJump -# elif pattern == 2: return self.harmonicRepeter -# elif pattern == 3: return self.harmonicLoopseg - - def drunkPitchSequence(self, length, parameters, table_pitch): + def drunkPitchSequence(self, length, parameters, table_pitch, trackId): pitchSequence = [] append = pitchSequence.append numberOfPitch = int( ( 1 - (parameters.pitchRegularity*.8) ) * 10 + 1 ) step = -(int(parameters.step * 10)) max = len(table_pitch)-1 - nextValue = self.pitchMethod.getNextValue + nextValue = self.methodList[parameters.pattern[trackId]].getNextValue tonique = GenerationConstants.DEFAULT_TONIQUE for i in range(numberOfPitch): append((table_pitch[nextValue(step, max)]) + tonique) @@ -52,11 +38,3 @@ class GenerationPitch: for i in range(length): append(drumPitch[ rand( 0, max ) ] ) return pitchSequence - -# def harmonicPitchSequence( self, rythmSequence, parameters, table_pitch, harmonicSequence ): -# pitchSequence = [] -# pitchMethod = self.harmonicChooseMethod( parameters.pattern ) -# for onset in rythmSequence: -# beat = int( onset / Config.TICKS_PER_BEAT ) -# pitchSequence.append( ( table_pitch[ harmonicSequence[ beat ] [ pitchMethod.getNextValue(3, ( len( harmonicSequence[ beat ]) - 1) ) ]] ) + GenerationConstants.DEFAULT_TONIQUE ) -# return pitchSequence diff --git a/Generation/Generator.py b/Generation/Generator.py index 5fc2f71..bb3c7b8 100755 --- a/Generation/Generator.py +++ b/Generation/Generator.py @@ -46,7 +46,7 @@ def generator1( ): makeRythm = GenerationRythm() - makePitch = GenerationPitch(parameters.pattern) + makePitch = GenerationPitch() def makeGainSequence( onsetList ): gainSequence = [] @@ -93,8 +93,7 @@ def generator1( else: currentInstrument = instrument[pageId][trackId] rythmSequence = makeRythm.celluleRythmSequence(parameters, barLength, currentInstrument) - pitchSequence = makePitch.drunkPitchSequence(len(rythmSequence),parameters, table_pitch) - makePitch.pitchMethod.__init__(5, 12) + pitchSequence = makePitch.drunkPitchSequence(len(rythmSequence),parameters, table_pitch, trackId) gainSequence = makeGainSequence(rythmSequence) durationSequence = makeDurationSequence(rythmSequence, parameters, table_duration, barLength, currentInstrument) |