-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconstants.py
49 lines (43 loc) · 1.54 KB
/
constants.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
##
## Constants
##
OCTAVE_MAX_VALUE = 12
OCTAVE_VALUES = range( OCTAVE_MAX_VALUE )
NOTE_NAMES = ['C','Cs','D','Ds','E','F','Fs','G','Gs','A','As','B']
WHITE_KEYS = [0, 2, 4, 5, 7, 9, 11]
BLACK_KEYS = [1, 3, 6, 8, 10]
NOTE_PER_OCTAVE = len( NOTE_NAMES )
NOTE_VALUES = range( OCTAVE_MAX_VALUE * NOTE_PER_OCTAVE )
NOTE_NAME_MAP_FLAT = {}
NOTE_VALUE_MAP_FLAT = []
NOTE_NAME_MAP_SHARP = {}
NOTE_VALUE_MAP_SHARP = []
for value in range( 128 ):
noteidx = value % NOTE_PER_OCTAVE
octidx = value / OCTAVE_MAX_VALUE
name = NOTE_NAMES[noteidx]
if len( name ) == 2:
# sharp note
flat = NOTE_NAMES[noteidx+1] + 'b'
NOTE_NAME_MAP_FLAT['%s_%d' % (flat, octidx)] = value
NOTE_NAME_MAP_SHARP['%s_%d' % (name, octidx)] = value
NOTE_VALUE_MAP_FLAT.append( '%s_%d' % (flat, octidx) )
NOTE_VALUE_MAP_SHARP.append( '%s_%d' % (name, octidx) )
globals()['%s_%d' % (name[0] + 's', octidx)] = value
globals()['%s_%d' % (flat, octidx)] = value
else:
NOTE_NAME_MAP_FLAT['%s_%d' % (name, octidx)] = value
NOTE_NAME_MAP_SHARP['%s_%d' % (name, octidx)] = value
NOTE_VALUE_MAP_FLAT.append( '%s_%d' % (name, octidx) )
NOTE_VALUE_MAP_SHARP.append( '%s_%d' % (name, octidx) )
globals()['%s_%d' % (name, octidx)] = value
BEATNAMES = ['whole', 'half', 'quarter', 'eighth', 'sixteenth', 'thiry-second', 'sixty-fourth']
BEATVALUES = [4, 2, 1, .5, .25, .125, .0625]
WHOLE = 0
HALF = 1
QUARTER = 2
EIGHTH = 3
SIXTEENTH = 4
THIRTYSECOND = 5
SIXTYFOURTH = 6
DEFAULT_MIDI_HEADER_SIZE = 14