Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/Generation
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 /Generation
parentd6a28d7e04123f3d2b4eb6c092e0cd807865036f (diff)
META ALGO: Diverse algo on each track
Diffstat (limited to 'Generation')
-rwxr-xr-xGeneration/Drunk.py2
-rwxr-xr-xGeneration/GenerationConstants.py7
-rw-r--r--Generation/GenerationPitch.py38
-rwxr-xr-xGeneration/Generator.py5
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)