comparison Syncopation models/music_objects.py @ 18:43fa04812800

Added TimeSignature class
author csong <csong@eecs.qmul.ac.uk>
date Fri, 03 Apr 2015 18:38:10 +0100
parents 4fb9c00e4ef0
children b959c2acb927
comparison
equal deleted inserted replaced
17:a5a26d2cff40 18:43fa04812800
61 self.velocitySequence = rhythmSequence 61 self.velocitySequence = rhythmSequence
62 self.noteSequence = None 62 self.noteSequence = None
63 63
64 self.tpq = ticksPerQuarter 64 self.tpq = ticksPerQuarter
65 self.qpm = qpmTempo 65 self.qpm = qpmTempo
66 self.timeSignature = timeSignature 66 self.timeSignature = TimeSignature(timeSignature)
67 self.nextBar = nextBar 67 self.nextBar = nextBar
68 self.prevBar = prevBar 68 self.prevBar = prevBar
69 69
70 def get_note_sequence(self): 70 def get_note_sequence(self):
71 #if self.noteSequence==None: 71 #if self.noteSequence==None:
91 91
92 def set_previous_bar(self, bar): 92 def set_previous_bar(self, bar):
93 self.prevBar = bar 93 self.prevBar = bar
94 94
95 def get_subdivision_sequence(self): 95 def get_subdivision_sequence(self):
96 return ParameterSetter.get_subdivision_seq(self.timeSignature) 96 return self.timeSignature.get_subdivision_sequence()
97 97
98 def get_beat_level(self): 98 def get_beat_level(self):
99 return ParameterSetter.get_beat_level(self.timeSignature) 99 return ParameterSetter.get_beat_level(self.timeSignature)
100 100
101 def get_time_signature(self): 101 def get_time_signature(self):
103 103
104 def get_t_span(self): 104 def get_t_span(self):
105 # return the length of a bar in time units 105 # return the length of a bar in time units
106 return None # NEED TO IMPLEMENT 106 return None # NEED TO IMPLEMENT
107 107
108 class TimeSignature():
109 def __init__(self, inputString):
110 if inputString in parameter_setter.readTimesig():
111 self.tsString = inputString
112 else:
113 print "Error: undefined time-signature ", inputString
114 raise NullTimeSignatureError
115
116 def get_subdivision_sequence(self):
117 return parameter_setter.timesigBase[self.tsString][0]
118
119 def get_beat_level(self):
120 return parameter_setter.timesigBase[self.tsString][1]
121
122 def get_numerator(self):
123 return int(self.tsString.split('/')[0])
124
125 def get_denominator(self):
126 return int(self.tsString.split('/')[1])
127
128
129