Queerfloetengriffe
-- coding: ISO-8859-1 --
"""
Querflötengriffe anzeigen
(Version 1.2 - 06.02.2014)
Mit diesem Skript werden die Griffe für die Spielmannszugs Sopran- oder Alt-Flöte,
sowie für Lyra und Trompete Bb angezeigt.
Bitte den Cursor für die automatische Zeilenwahl in die entsprechende Notenzeile setzen
oder die gewünschte Notenzeile im nachfolgenden Dialog wählen.
Falls nur bestimmte Noten die Griffe erhalten sollen, bitte diese vor Aufruf des Skripts markieren.
"""
from musescore import *
def show_flute_fingerings():
score = currentScore()
if not score:
return
staff_list = score.staves()
staff_index = 0
sel = selection()
if sel:
sy, st, vo, no0 = sel
sy1, st1, vo1, no1 = sel
system = score.system(sy)
staff = system.staff(st)
for i, descr in enumerate(staff_list):
if staff.index() == system.staffIndexFromDescr(descr):
staff_index = i
break
type_list = ['Sopran-Flöte', 'Alt-Flöte', 'Lyra C', 'Lyra Bb (Katrin)', 'Trompete Bb (eine Oktave nach unten Transponiert)']
dlg = Dialog('Querflötengriffe anzeigen (Version 1.2)')
dlg.addLabel('Notenzeile des Instruments wählen (durch Cursorpositionierung automatisch vorgewählt)')
sel_staff = dlg.addComboBox(staff_list, value=staff_index)
dlg.addLabel(' "Beschreibung" der Notenzeile im Mustersystem')
sel_type = dlg.addComboBox(type_list, value=0)
dlg.addLabel(' Bitte Instrumententyp auswählen')
dlg.addLabel(' "Lyra" nur zur Kontrolle des Tonumfangs (nicht spielbare Noten werden rot markiert)')
number_size = dlg.addEdit(' 7')
dlg.addLabel(' Zifferngröße ')
vert_dist = dlg.addEdit(' 5')
dlg.addLabel(' vertikaler Abstand von der Notenzeile')
strich = dlg.addCheckBox('gleichbleibende Griffe werden durch einen Strich "-" dargestellt', value=0)
dlg.addLabel('HINWEIS: Für markierte Noten werden Griffe exklusiv angezeigt')
if dlg.exec():
types = {
0: {62: '1\n/\n7', 63: '1\n/\n6', 64: '1\n/\n5', 65: '1\n2\n3\n4\n6\n7', 66: '1\n2\n3\n5\n6\n7', 67: '1\n2\n3', 68: '1\n2\n4\n5\n6\n7', 69: '1\n2', 70: '1\n3\n4\n5\n6', 71: '1', 72: '2\n3', 73: '4\n5\n6', 74: '2\n/\n7', 75: '2\n/\n6', 76: '1\n/\n5', 77: '1\n2\n3\n4\n6', 78: '1\n2\n3\n5\n6', 79: '1\n2\n3', 80: '1\n2\n4', 81: '1\n2', 82: '1\n3', 83: '1', 84: '1\n3\n4\n6', 85: '4\n5\n6', 86: '2\n3', 87: '2\n3\n5\n6', 88: '1\n2\n5\n6', 89: '1\n2\n4', 90: '1\n2\n4\n5\n6\n7', 91: '1\n3\n7', 92: '3\n6', 93: '2\n/\n7'},
1: {62: '1\n/\n7', 63: '1\n/\n6', 64: '1\n/\n5', 65: '1\n2\n3\n4\n6\n7', 66: '1\n2\n3\n5\n6\n7', 67: '1\n2\n3', 68: '1\n2\n4\n5\n6\n7', 69: '1\n2', 70: '1\n3\n4\n5\n6', 71: '1', 72: '2\n3', 73: '4\n5\n6', 74: '2\n/\n7', 75: '2\n/\n6', 76: '1\n/\n5', 77: '1\n2\n3\n4\n6', 78: '1\n2\n3\n5\n6', 79: '1\n2\n3', 80: '1\n2\n4', 81: '1\n2', 82: '1\n3', 83: '1', 84: '1\n3\n4\n6', 85: '4\n5\n6', 86: '2\n3', 87: '2\n3\n5\n6', 88: '1\n2\n5\n6'},
2: {74: '2\n/\n7', 75: '2\n/\n6', 76: '1\n/\n5', 77: '1\n2\n3\n4\n6', 78: '1\n2\n3\n5\n6', 79: '1\n2\n3', 80: '1\n2\n4', 81: '1\n2', 82: '1\n3', 83: '1', 84: '1\n3\n4\n6', 85: '4\n5\n6', 86: '2\n3', 87: '2\n3\n5\n6', 88: '1\n2\n5\n6', 89: '1\n2\n4', 90: '1\n2\n4\n5\n6\n7', 91: '1\n3\n7', 92: '3\n6', 93: '2\n/\n7', 94: '1\n2\n4\n7', 95: '1\n2\n(3)', 96: '1\n3\n4\n5', 97: 'n.a.', 98: '3\n4\n7'},
3: {72: '2\n3', 73: '4\n5\n6', 74: '2\n/\n7', 75: '2\n/\n6', 76: '1\n/\n5', 77: '1\n2\n3\n4\n6', 78: '1\n2\n3\n5\n6', 79: '1\n2\n3', 80: '1\n2\n4', 81: '1\n2', 82: '1\n3', 83: '1', 84: '1\n3\n4\n6', 85: '4\n5\n6', 86: '2\n3', 87: '2\n3\n5\n6', 88: '1\n2\n5\n6', 89: '1\n2\n4', 90: '1\n2\n4\n5\n6\n7', 91: '1\n3\n7', 92: '3\n6', 93: '2\n/\n7', 94: '1\n2\n4\n7', 95: '1\n2\n(3)', 96: '1\n3\n4\n5'},
4: {66: '1\n2\n3', 67: '1\n3', 68: '2\n3', 69: '1\n2', 70: '1', 71: '2', 72: '0', 73: '1\n2\n3', 74: '1\n3', 75: '2\n3', 76: '1\n2', 77: '1', 78: '2', 79: '0', 80: '2\n3', 81: '1\n2', 82: '1', 83: '2', 84: '0', 85: '1\n2', 86: '1', 87: '2', 88: '0', 89: '1', 90: '2', 91: '0', 92: '2\n3', 93: '1\n2\n(3)', 94: '1', 95: '2', 96: '0', 97: '1\n2', 98: '1', 99: '2', 100: '0'}
}
range = {0: (62, 93), 1: (62, 88), 2: (74, 98), 3: (72, 96), 4: (