VocalEasel/mma/util/mmatabs.py

83 lines
2.1 KiB
Python
Raw Normal View History

2007-04-29 06:47:40 +00:00
#!/usr/bin/env python
# create tex files of the mma midi constants
import sys, os, commands
sys.path.insert(0, "/usr/local/share/mma/MMA/")
from miditables import *
from chordtable import chords
err, version = commands.getstatusoutput( "mma -v")
if err:
print "Can't get MMA version ... strange error!"
sys.ex
def dodrums(order):
""" Print LaTex table of drum names. """
notenames = ['E\\flat', 'E', 'F', 'G\\flat', 'G', 'A\\flat',
'A', 'B\\flat', 'B', 'C', 'D\\flat', 'D'] * 5
n=zip( drumNames, range(27,len(drumNames)+27), notenames )
if order == "a":
for a,v,m in sorted(n):
outfile.write ("\\insline{%s} {%s$^{%s}$}\n" % (a, v, m ))
else:
for a,v,m in n:
outfile.write ("\\insline{%s} {%s$^{%s}$}\n" % (v, a, m))
def docrtls(order):
""" Print LaTex table of MIDI controller names. """
n=zip( ctrlNames, range(len(ctrlNames)) )
if order == "a":
for a,v in sorted(n):
outfile.write ("\\insline{%s} {%02x}\n" % (a, v))
else:
for a,v in n:
outfile.write("\\insline{%02x} {%s}\n" % (v, a))
def doinsts(order):
""" Print LaTex table of instrument names. """
n=zip( voiceNames, range(len(voiceNames)) )
if order == "a":
for a,v in sorted(n):
a=a.replace('&', '\&')
outfile.write("\\insline{%s} {%s}\n" % (a, v))
else:
for a,v in n:
a=a.replace('&', '\&')
outfile.write( "\\insline{%s} {%s}\n" % (v, a))
def dochords():
""" Print out a list of chord names and docs in LaTex. """
for n in sorted(chords.keys()):
nm=n.replace("#", '$\\sharp$')
nm=nm.replace('b', '$\\flat$')
outfile.write( "\\insline{%s}{%s}\n" % (nm, chords[n][2]) )
for a,f,o in (
('m', docrtls, 'ctrlmidi.AUTO'),
('a', docrtls, 'ctrlalpha.AUTO'),
('m', dodrums, 'drumsmidi.AUTO'),
('a', dodrums, 'drumsalpha.AUTO'),
('m', doinsts, 'instmidi.AUTO'),
('a', doinsts, 'instalpha.AUTO') ):
outfile = file(o, 'w')
f(a)
outfile.close()
outfile = file("chordnames.AUTO", 'w')
dochords()
outfile.close()