# -*- coding: ISO-8859-1 -*-
""" capellaScript -- 27.05.2004 Andreas Herzog
>>> Spiel mir das Lied...

    Mit diesem Skript kann man Mundharmonika-Tabulatur umsetzen..|
    |
    
    Version 1.0    |
    
    |
    

        |

<<<


"""

import xml.dom
import string


from xml.dom.minidom import NodeList



# doc = [] # parentNode von score
# Alle Noten mit Kreuzalteration
NotenTotalMitKreuz = ['G3-','G3#','A3-','A3#','B3-','C4-','C4#','D4-','D4#','E4-','F4-','F4#','G4-','G4#','A4-','A4#','B4-','C5-','C5#','D5-','D5#','E5-','F5-','F5#','G5-','G5#','A5-','A5#','B5-','C6-','C6#','D6-','D6#','E6-','F6-','F6#','G6-','G6#','A6-','A6#','B6-','C7-','C7#','D7-','D7#','E7-','F7-','F7#','G7-','G7#','A7-','A7#','B7-','C8-','C8#','D8-','D8#','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---']
# Chromatische Mundharmonika
CDurChrom = ['C5-','D5-','E5-','F5-','G5-','A5-','C6-','B5-','C6-','D6-','E6-','F6-','G6-','A6-','C7-','B6-','C7-','D7-','E7-','F7-','G7-','A7-','C8-','B7-','C4-','D4-','E4-','F4-','G4-','A4-','C5-','B4-','C5#','D5#','E5#','F5#','G5#','A5#','C6#','B5#','C6#','D6#','E6#','F6#','G6#','A6#','C7#','B6#','C7#','D7#','E7#','F7#','G7#','A7#','C8#','B7#','C4#','D4#','E4#','F4#','G4#','A4#','C5#','B4#']
# Diatonische Mundharmonika-Listen mit maximal 10 Kanälen
DesDurDia10=['D5b','E5b','F5-','A5b','A5b','C6-','D6b','E6b','F6-','G6b','A6b','B6b','D7b','C7-','F7-','E7b','A7b','G7b','D8b','B7b','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---']
AsDurDia10= ['A4b','B4b','C5-','E5b','E5b','G5-','A5b','B5b','C6-','D6b','E6b','F6-','A6b','G6-','C7-','B6b','E7b','D7b','A7b','F7-','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---']
EsDurDia10= ['E5b','F5-','G5-','B5b','B5b','D6-','E6b','F6-','G6-','A6b','B6b','C7-','E7b','D7-','G7-','F7-','B7b','A7b','E8b','C8-','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---']
BDurDia10 = ['B4b','C5-','D5-','F5-','F5-','A5-','B5b','C6-','D6-','E6b','F6-','G6-','B6b','A6-','D7-','C7-','F7-','E7b','B7b','G7-','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---']
CDurDia10 = ['C5-','D5-','E5-','G5-','G5-','B5-','C6-','D6-','E6-','F6-','G6-','A6-','C7-','B6-','E7-','D7-','G7-','F7-','C8-','A7-','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---']
DDurDia10 = ['D5-','E5-','F5#','A5-','A5-','C6#','D6-','E6-','F6#','G6-','A6-','B6-','D7-','C7#','F7#','E7-','A7-','G7-','D8-','B7-','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---']
EDurDia10 = ['E5-','F5#','G5#','B5-','B5-','D6#','E6-','F6#','G6#','A6-','B6-','C7#','E7-','D7#','G7#','F7#','B7-','A7-','E8-','C8#','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---']
FDurDia10 = ['F5-','G5-','A5-','C6-','C6-','E6-','F6-','G6-','A6-','B6b','C7-','D7-','F7-','E7-','A7-','G7-','C8-','B7b','F8-','D8-','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---']
GDurDia10 = ['G4-','A4-','B4-','D5-','D5-','F5#','G5-','A5-','B5-','C6-','D6-','E6-','G6-','F6#','B6-','A6-','D7-','C7-','G7-','E7-','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---']
ADurDia10 = ['A4-','B4-','C5#','E5-','E5-','G5#','A5-','B5-','C6#','D6-','E6-','F6#','A6-','G6#','C7#','B6-','E7-','D7-','A7-','F7#','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---']
HDurDia10 = ['B4-','C5#','D5#','F5#','F5#','A5#','B5-','C6#','D6#','E6-','F6#','G6#','B6-','A6#','D7#','C7#','F7#','E7-','B7-','G7#','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---']
FisDurDia10=['F5#','G5#','A5#','C6#','C6#','E6#','F6#','G6#','A6#','B6-','C7#','D7#','F7#','E7#','A7#','G7#','C8#','B7-','F8#','D8#','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---']

# Diatonische Mundharmonika-Listen mit maximal 14 Kanälen
DesDurDia14=['D4b','E4b','F4-','A4b','A4b','C5-','D5b','E5b','F5-','G5b','A5b','B5b','D6b','C6-','F6-','E6b','A6b','G6b','D7b','B6b','F7-','C7-','A7b','E7b','D8b','G7b','F8-','B7b','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---']
AsDurDia14= ['A3b','B3b','C4-','E4b','E4b','G4-','A4b','B4b','C5-','D5b','E5b','F5-','A5b','G5-','C6-','B5b','E6b','D6b','A6b','F6-','C7-','G6-','E7b','B6b','A7b','D7b','C8-','F7-','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---']
EsDurDia14= ['E4b','F4-','G4-','B4b','B4b','D5-','E5b','F5-','G5-','A5b','B5b','C6-','E6b','D6-','G6-','F6-','B6b','A6b','E7b','C7-','G7-','D7-','B7b','F7-','E8b','A7b','G8-','C8-','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---']
BDurDia14 = ['B3b','C4-','D4-','F4-','F4-','A4-','B4b','C5-','D5-','E5b','F5-','G5-','B5b','A5-','D6-','C6-','F6-','E6b','B6b','G6-','D7-','A6-','F7-','C7-','B7b','E7b','D8-','G7-','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---']
CDurDia14 = ['C4-','D4-','E4-','G4-','G4-','B4-','C5-','D5-','E5-','F5-','G5-','A5-','C6-','B5-','E6-','D6-','G6-','F6-','C7-','A6-','E7-','B6-','G7-','D7-','C8-','F7-','E8-','A7-','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---']
DDurDia14 = ['D4-','E4-','F4#','A4-','A4-','C5#','D5-','E5-','F5#','G5-','A5-','B5-','D6-','C6#','F6#','E6-','A6-','G6-','D7-','B6-','F7#','C7#','A7-','E7-','D8-','G7-','F8#','B7-','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---']
EDurDia14 = ['E4-','F4#','G4#','B4-','B4-','D5#','E5-','F5#','G5#','A5-','B5-','C6#','E6-','D6#','G6#','F6#','B6-','A6-','E7-','C7#','G7#','D7#','B7-','F7#','E8-','A7-','G8#','C8#','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---']
FDurDia14 = ['F4-','G4-','A4-','C5-','C5-','E5-','F5-','G5-','A5-','B5b','C6-','D6-','F6-','E6-','A6-','G6-','C7-','B6b','F7-','D7-','A7-','E7-','C8-','G7-','F8-','B7b','A8-','D8-','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---']
GDurDia14 = ['G3-','A3-','B3-','D4-','D4-','F4#','G4-','A4-','B4-','C5-','D5-','E5-','G5-','F5#','B5-','A5-','D6-','C6-','G6-','E6-','B6-','F6#','D7-','A6-','G7-','C7-','B7-','E7-','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---']
ADurDia14 = ['A3-','B3-','C4#','E4-','E4-','G4#','A4-','B4-','C5#','D5-','E5-','F5#','A5-','G5#','C6#','B5-','E6-','D6-','A6-','F6#','C7#','G6#','E7-','B6-','A7-','D7-','C8#','F7#','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---']
HDurDia14 = ['B3-','C4#','D4#','F4#','F4#','A4#','B4-','C5#','D5#','E5-','F5#','G5#','B5-','A5#','D6#','C6#','F6#','E6-','B6-','G6#','D7#','A6#','F7#','C7#','B7-','E7-','D8#','G7#','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---']
FisDurDia14=['F4#','G4#','A4#','C5#','C5#','E5#','F5#','G5#','A5#','B5-','C6#','D6#','F6#','E6#','A6#','G6#','C7#','B6-','F7#','D7#','A7#','E7#','C8#','G7#','F8#','B7-','A8#','D8#','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---']

FreiDia   = ['C4-','D4-','E4-','F4-','G4-','A4-','C5-','B4-','C5-','D5-','E5-','F5-','G5-','A5-','C6-','B5-','C6-','D6-','E6-','F6-','G6-','A6-','C7-','B6-','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---','---']
def latin1_e(u):
    return u.encode('Latin-1')
def latin1_d(u):
    return u.decode('Latin-1')
    

def addElementNode(el,tagName):
    # add new Node to el if Node "tagName" does not exist
    # otherwise return the existing Node
    global doc
    childs = el.childNodes
    for n in range(childs.length):
        if childs[n].nodeType ==childs[n].ELEMENT_NODE and childs[n].tagName == tagName:
            return childs[n]
    newChild = doc.createElement(tagName)
    el.appendChild(newChild)
    return newChild
    

def addNewElementNode(el,tagName):
    # add new Node with tagName "tagName" to el 
    global doc
    newChild = doc.createElement(tagName)
    el.appendChild(newChild)
    return newChild

    
def getDialogValues1():
	
    global KanalZahl, NotenAblage, chosenNote, PositionUeberUnter, TextHight, Tonart, MundHarmTyp, Auswahl, NurLoeschen, ChromProblem, Gruppiert, KanalDrei, TextSpace

    ChromProblem = 0
    labLeer = Label(' ', padding=0)
    rad1 = Radio(['diatonisch eintönig, 10 Kanäle (20-stimmig)', 'diatonisch eintönig, 12 Kanäle (24-stimmig)', 'diatonisch eintönig, 14 Kanäle (28-stimmig)','chromatisch, 8 Kanäle (32-stimmig)','chromatisch, 10 Kanäle (40-stimmig)','chromatisch, 12 Kanäle (48-stimmig)', 'chromatisch, 14 Kanäle (56-stimmig)', 'chromatisch, 16 Kanäle (64-stimmig)','Schwebe- / Tremolo-Modell, 6 Kanäle (24-stimmig)','Schwebe- / Tremolo-Modell, 7 Kanäle (28-stimmig)','Schwebe- / Tremolo-Modell, 8 Kanäle (32-stimmig)','Schwebe- / Tremolo-Modell, 10 Kanäle (40-stimmig)', 'Schwebe- / Tremolo-Modell, 12 Kanäle (48-stimmig)','freie Belegung'], text = 'Typ', padding =8)
    rad2 = Radio(['Des-Dur','As-Dur','Es-Dur','B-Dur','F-Dur','C-Dur','G-Dur','D-Dur','A-Dur','E-Dur','H-Dur','Fis-Dur'], text='Tonart', padding = 0, value=5)
    rad3 = Radio(['über der Notenzeile', 'unter der Notenzeile'], text='Position', padding = 0, value=0)
    rad4 = Radio(['nur Notenzeile mit Cursor', 'Notenzeile mit Cursor in allen Systemen   ','gesamte Partitur'], text='Zu bearbeiten:', padding = 0, value=1)
    edit1  = Edit ('4', min=0, max=11,text = 'Zwischenräume     ', width=4)
    edit2  = Edit ('3', min=0, max=50,text = '/10 Zwischenräume     ', width=4)
    lab1 = Label('Zwischenräume', width = 13)
    NurLoeschenCheck = CheckBox('Nur Elemente dieses Skripts löschen!', value=0)
    GruppiertCheck = CheckBox('Elemente einer Note immer gruppieren!', value=1)
    KanalDreiCheck = CheckBox('Kanal 3 geblasen bevorzugen!', value=1)
    hbox1a = HBox([edit1, lab1], padding = 4,text = 'Abstand von der Mittellinie')
    hbox1b = HBox([edit2, lab1], padding = 4,text = 'Abstand der einzelnen Noten')
    vbox1a = VBox([hbox1a, rad3], padding = 4)
    vbox1b = VBox([rad4, hbox1b], padding = 4)
    vbox3 = HBox([vbox1a,vbox1b], padding = 9)
    #vbox4 = VBox([text= 'Tonart', padding = 0)
    hbox2 = HBox([vbox3], padding = 16)
    hbox3 = HBox([rad1, rad2], padding = 16)
    hbox4= HBox([NurLoeschenCheck, GruppiertCheck], padding = 8)
    hbox5= HBox([KanalDreiCheck], padding = 8)
    vbox2= VBox([hbox3, hbox2, hbox4, hbox5 ], padding = 8)
    
    dlg = Dialog('Mundharmonika-Typ: ', vbox2)

	
    if dlg.run():
        if rad1.value() == 0:
            KanalZahl = 10
            MundHarmTyp = 0
        if rad1.value() == 1:
    		KanalZahl = 12
    		MundHarmTyp = 0
    	if rad1.value() == 2:
    		KanalZahl = 14
    		MundHarmTyp = 0
    	if rad1.value() == 3:
    		KanalZahl = 8
    		MundHarmTyp = 1
    	if rad1.value() == 4:
    		KanalZahl = 10
    		MundHarmTyp = 1
    	if rad1.value() == 5:
    		KanalZahl = 12
    		MundHarmTyp = 1
    	if rad1.value() == 6:
    		KanalZahl = 14
    		MundHarmTyp = 1
    	if rad1.value() == 7:
    		KanalZahl = 16
    		MundHarmTyp = 1
    	if rad1.value() == 8:
    		KanalZahl = 6
    		MundHarmTyp = 2
    	if rad1.value() == 9:
    		KanalZahl = 7
    		MundHarmTyp = 2
    	if rad1.value() == 10:
    		KanalZahl = 8
    		MundHarmTyp = 2
    	if rad1.value() == 11:
    		KanalZahl = 10
    		MundHarmTyp = 2
    	if rad1.value() == 12:
    		KanalZahl = 12
    		MundHarmTyp = 2	
    	if rad1.value() == 13:
    		KanalZahl = 14
    		MundHarmTyp = 0
    		Tonart = 'Frei'
    	if rad2.value() == 0:
    		Tonart = 'Des'
    	if rad2.value() == 1:
    		Tonart = 'As'
    	if rad2.value() == 2:
    		Tonart = 'Es'
    	if rad2.value() == 3:
    		Tonart = 'B'
    	if rad2.value() == 4:
    		Tonart = 'F'
    	if rad2.value() == 5:
    		Tonart = 'C'
    	if rad2.value() == 6:
    		Tonart = 'G'
    	if rad2.value() == 7:
    		Tonart = 'D'
    	if rad2.value() == 8:
    		Tonart = 'A'
    	if rad2.value() == 9:
    		Tonart = 'E'
    	if rad2.value() == 10:
    		Tonart = 'H'
    	if rad2.value() == 11:
    		Tonart = 'Fis'
    	if rad1.value() == 13:
    		Tonart = 'Frei'
    	if (Tonart <> 'C') and (MundHarmTyp == 1):
    		ChromProblem = 1
    	PositionUeberUnter = rad3.value()
    	TextHight= edit1.value()
    	TextSpace = edit2.value()
    	Auswahl = rad4.value()
    	NurLoeschen = NurLoeschenCheck.value()
    	Gruppiert = GruppiertCheck.value()
    	KanalDrei = KanalDreiCheck.value()
        return True
    else:
        return False
        
def getDialogValues2():

    global KanalZahl, NotenAblage, chosenNote, chosenAlter, PositionUeberUnter, TextHight, Tonart, MundHarmTyp, TasterLoslassen

    labK01 = Label('Kanal 01°', width = 4)
    labK02 = Label('Kanal 02°', width = 4)
    labK03 = Label('Kanal 03°', width = 4)
    labK04 = Label('Kanal 04°', width = 4)
    labK1 = Label('Kanal 01', width = 4)
    labK2 = Label('Kanal 02', width = 4)
    labK3 = Label('Kanal 03', width = 4)
    labK4 = Label('Kanal 04', width = 4)
    labK5 = Label('Kanal 05', width = 4)
    labK6 = Label('Kanal 06', width = 4)
    labK7 = Label('Kanal 07', width = 4)
    labK8 = Label('Kanal 08', width = 4)
    labK9 = Label('Kanal 09', width = 4)
    labK10 = Label('Kanal 10', width = 4)
    labK11 = Label('Kanal 11', width = 4)
    labK12 = Label('Kanal 12', width = 4)
    labK13 = Label('Kanal 13', width = 4)
    labK14 = Label('Kanal 14', width = 4)
    lableer = Label(' ', width = 4)
    NotenAuswahl = ['G3','A3','B3','C4','D4','E4','F4','G4','A4','B4','C5','D5','E5','F5','G5','A5','B5','C6','D6','E6','F6','G6','A6','B6','C7','D7','E7','F7','G7','A7','B7','C8','D8','E8','F8','G8','A8','B8','--']
    AlterAuswahl = ['-','#','b']
    NotenAblage = []
    chosenNote = []
    chosenAlter = []
    index = 0
    if MundHarmTyp == 0 or MundHarmTyp == 2:
    
	    if Tonart == 'Des' and KanalZahl == 10:
	             NotenAblage = DesDurDia10
	    if Tonart == 'As' and KanalZahl == 10:
	             NotenAblage = AsDurDia10
	    if Tonart == 'Es' and KanalZahl == 10:
	             NotenAblage = EsDurDia10
	    if Tonart == 'B' and KanalZahl == 10:
	             NotenAblage = BDurDia10
	    if Tonart == 'F' and KanalZahl == 10:
	             NotenAblage = FDurDia10
	    if Tonart == 'C' and KanalZahl == 10:
	             NotenAblage = CDurDia10
	    if Tonart == 'G' and KanalZahl == 10:
	             NotenAblage = GDurDia10
	    if Tonart == 'D' and KanalZahl == 10:
	             NotenAblage = DDurDia10
	    if Tonart == 'A' and KanalZahl == 10:
	             NotenAblage = ADurDia10
	    if Tonart == 'E' and KanalZahl == 10:
	             NotenAblage = EDurDia10 
	    if Tonart == 'H' and KanalZahl == 10:
	             NotenAblage = HDurDia10  
	    if Tonart == 'Fis' and KanalZahl == 10:
	             NotenAblage = FisDurDia10  
	                       
	    if Tonart == 'Des' and (KanalZahl == 12 or KanalZahl == 14):
	             NotenAblage = DesDurDia14
	    if Tonart == 'As' and (KanalZahl == 12 or KanalZahl == 14):
	             NotenAblage = AsDurDia14
	    if Tonart == 'Es' and (KanalZahl == 12 or KanalZahl == 14):
	             NotenAblage = EsDurDia14
	    if Tonart == 'B' and (KanalZahl == 12 or KanalZahl == 14):
	             NotenAblage = BDurDia14
	    if Tonart == 'F' and (KanalZahl == 12 or KanalZahl == 14):
	             NotenAblage = FDurDia14
	    if Tonart == 'C' and (KanalZahl == 12 or KanalZahl == 14):
	             NotenAblage = CDurDia14
	    if Tonart == 'G' and (KanalZahl == 12 or KanalZahl == 14):
	             NotenAblage = GDurDia14
	    if Tonart == 'D' and (KanalZahl == 12 or KanalZahl == 14):
	             NotenAblage = DDurDia14
	    if Tonart == 'A' and (KanalZahl == 12 or KanalZahl == 14):
	             NotenAblage = ADurDia14
	    if Tonart == 'E' and (KanalZahl == 12 or KanalZahl == 14):
	             NotenAblage = EDurDia14
	    if Tonart == 'H' and (KanalZahl == 12 or KanalZahl == 14):
	             NotenAblage = HDurDia14
	    if Tonart == 'Fis' and (KanalZahl == 12 or KanalZahl == 14):
	             NotenAblage = FisDurDia14
	    
	    if Tonart == 'Frei': 
	             NotenAblage = FreiDia
    if MundHarmTyp == 1:
	    NotenAblage = CDurChrom		
    if MundHarmTyp == 2:
		if Tonart == 'C' and ((KanalZahl == 6) or (KanalZahl == 7) or (KanalZahl == 8) or (KanalZahl == 10)):
	             NotenAblage = CDurDia10
		
    for a in NotenAblage:
    	chosenAlter.append(NotenAblage[index][2])
    	chosenNote.append(NotenAblage[index][0:2])
    	index += 1
   
    		
    AlterCheckK1B = CheckBox('', value=0)
    Alter01B = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[24]), text='', padding= 4)
    Alter02B = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[26]), text='', padding= 4)
    Alter03B = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[28]), text='', padding= 4)
    Alter04B = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[30]), text='', padding= 8)
    Alter1B = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[0]), text='', padding= 4)
    Alter2B = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[2]), text='', padding= 4)
    Alter3B = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[4]), text='', padding= 4)
    Alter4B = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[6]), text='', padding= 8)
    Alter5B = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[8]), text='', padding= 8)
    Alter6B = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[10]), text='', padding= 8)
    Alter7B = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[12]), text='', padding= 8)
    Alter8B = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[14]), text='', padding= 8)
    Alter9B = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[16]), text='', padding= 8)
    Alter10B = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[18]), text='', padding= 8)
    Alter11B = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[20]), text='', padding= 8)
    Alter12B = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[22]), text='', padding= 8)
    Alter13B = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[24]), text='', padding= 8)
    Alter14B = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[26]), text='', padding= 8)
    Alter01Z = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[25]), text='', padding= 4)
    Alter02Z = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[27]), text='', padding= 4)
    Alter03Z = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[29]), text='', padding= 4)
    Alter04Z = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[31]), text='', padding= 8)
    Alter1Z = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[1]), text='', padding= 4)
    Alter2Z = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[3]), text='', padding= 4)
    Alter3Z = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[5]), text='', padding= 4)
    Alter4Z = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[7]), text='', padding= 8)
    Alter5Z = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[9]), text='', padding= 8)
    Alter6Z = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[11]), text='', padding= 8)
    Alter7Z = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[13]), text='', padding= 8)
    Alter8Z = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[15]), text='', padding= 8)
    Alter9Z = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[17]), text='', padding= 8)
    Alter10Z = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[19]), text='', padding= 8)
    Alter11Z = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[21]), text='', padding= 8)
    Alter12Z = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[23]), text='', padding= 8)
    Alter13Z = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[25]), text='', padding= 8)
    Alter14Z = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[27]), text='', padding= 8)
    Kanal01B = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[24]), text='', padding= 8)
    Kanal02B = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[26]), text='', padding= 8)
    Kanal03B = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[28]), text='Kanal 3', padding= 8)
    Kanal04B = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[30]), text='Kanal 4', padding= 8)
    Kanal1B = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[0]), text='Kanal 1', padding= 8)
    Kanal2B = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[2]), text='Kanal 2', padding= 8)
    Kanal3B = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[4]), text='Kanal 3', padding= 8)
    Kanal4B = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[6]), text='Kanal 4', padding= 8)
    Kanal5B = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[8]), text='Kanal 5', padding= 8)
    Kanal6B = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[10]), text='Kanal 6', padding= 8)
    Kanal7B = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[12]), text='Kanal 7', padding= 8)
    Kanal8B = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[14]), text='Kanal 8', padding= 8)
    Kanal9B = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[16]), text='Kanal 9', padding= 8)
    Kanal10B = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[18]), text='Kanal 10', padding= 8)
    Kanal11B = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[20]), text='Kanal 11', padding= 8)
    Kanal12B = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[22]), text='Kanal 12', padding= 8)
    Kanal13B = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[24]), text='Kanal 13', padding= 8)
    Kanal14B = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[26]), text='Kanal 14', padding= 8)
    Kanal01Z = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[25]), text='Kanal 1°', padding= 8)
    Kanal02Z = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[27]), text='Kanal 2°', padding= 8)
    Kanal03Z = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[29]), text='Kanal 3°', padding= 8)
    Kanal04Z = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[31]), text='Kanal 4°', padding= 8)
    Kanal1Z = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[1]), text='Kanal 1', padding= 8)
    Kanal2Z = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[3]), text='Kanal 2', padding= 8)
    Kanal3Z = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[5]), text='Kanal 3', padding= 8)
    Kanal4Z = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[7]), text='Kanal 4', padding= 8)
    Kanal5Z = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[9]), text='Kanal 5', padding= 8)
    Kanal6Z = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[11]), text='Kanal 6', padding= 8)
    Kanal7Z = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[13]), text='Kanal 7', padding= 8)
    Kanal8Z = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[15]), text='Kanal 8', padding= 8)
    Kanal9Z = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[17]), text='Kanal 9', padding= 8)
    Kanal10Z = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[19]), text='Kanal 10', padding= 8)
    Kanal11Z = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[21]), text='Kanal 11', padding= 8)
    Kanal12Z = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[23]), text='Kanal 12', padding= 8)
    Kanal13Z = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[25]), text='Kanal 13', padding= 8)
    Kanal14Z = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[27]), text='Kanal 14', padding= 8)
    AlterT01B = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[56]), text='', padding= 4)
    AlterT02B = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[58]), text='', padding= 4)
    AlterT03B = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[60]), text='', padding= 4)
    AlterT04B = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[62]), text='', padding= 8)
    AlterT1B = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[32]), text='', padding= 4)
    AlterT2B = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[34]), text='', padding= 4)
    AlterT3B = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[36]), text='', padding= 4)
    AlterT4B = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[38]), text='', padding= 8)
    AlterT5B = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[40]), text='', padding= 8)
    AlterT6B = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[42]), text='', padding= 8)
    AlterT7B = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[44]), text='', padding= 8)
    AlterT8B = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[46]), text='', padding= 8)
    AlterT9B = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[48]), text='', padding= 8)
    AlterT10B = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[50]), text='', padding= 8)
    AlterT11B = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[52]), text='', padding= 8)
    AlterT12B = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[54]), text='', padding= 8)
    AlterT01Z = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[57]), text='', padding= 4)
    AlterT02Z = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[59]), text='', padding= 4)
    AlterT03Z = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[61]), text='', padding= 4)
    AlterT04Z = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[63]), text='', padding= 8)
    AlterT1Z = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[33]), text='', padding= 4)
    AlterT2Z = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[35]), text='', padding= 4)
    AlterT3Z = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[37]), text='', padding= 4)
    AlterT4Z = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[39]), text='', padding= 8)
    AlterT5Z = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[41]), text='', padding= 8)
    AlterT6Z = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[43]), text='', padding= 8)
    AlterT7Z = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[45]), text='', padding= 8)
    AlterT8Z = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[47]), text='', padding= 8)
    AlterT9Z = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[49]), text='', padding= 8)
    AlterT10Z = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[51]), text='', padding= 8)
    AlterT11Z = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[53]), text='', padding= 8)
    AlterT12Z = ComboBox(AlterAuswahl, width=4, value=AlterAuswahl.index(chosenAlter[55]), text='', padding= 8)
    KanalT01B = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[56]), text='Kanal 1', padding= 8)
    KanalT02B = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[58]), text='Kanal 2', padding= 8)
    KanalT03B = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[60]), text='Kanal 3', padding= 8)
    KanalT04B = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[62]), text='Kanal 4', padding= 8)
    KanalT1B = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[32]), text='Kanal 1', padding= 8)
    KanalT2B = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[34]), text='Kanal 2', padding= 8)
    KanalT3B = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[36]), text='Kanal 3', padding= 8)
    KanalT4B = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[38]), text='Kanal 4', padding= 8)
    KanalT5B = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[40]), text='Kanal 5', padding= 8)
    KanalT6B = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[42]), text='Kanal 6', padding= 8)
    KanalT7B = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[44]), text='Kanal 7', padding= 8)
    KanalT8B = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[46]), text='Kanal 8', padding= 8)
    KanalT9B = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[48]), text='Kanal 9', padding= 8)
    KanalT10B = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[50]), text='Kanal 10', padding= 8)
    KanalT11B = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[52]), text='Kanal 11', padding= 8)
    KanalT12B = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[54]), text='Kanal 12', padding= 8)
    KanalT01Z = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[57]), text='Kanal 1', padding= 8)
    KanalT02Z = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[59]), text='Kanal 2', padding= 8)
    KanalT03Z = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[61]), text='Kanal 3', padding= 8)
    KanalT04Z = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[63]), text='Kanal 4', padding= 8)
    KanalT1Z = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[33]), text='Kanal 1', padding= 8)
    KanalT2Z = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[35]), text='Kanal 2', padding= 8)
    KanalT3Z = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[37]), text='Kanal 3', padding= 8)
    KanalT4Z = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[39]), text='Kanal 4', padding= 8)
    KanalT5Z = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[41]), text='Kanal 5', padding= 8)
    KanalT6Z = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[43]), text='Kanal 6', padding= 8)
    KanalT7Z = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[45]), text='Kanal 7', padding= 8)
    KanalT8Z = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[47]), text='Kanal 8', padding= 8)
    KanalT9Z = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[49]), text='Kanal 9', padding= 8)
    KanalT10Z = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[51]), text='Kanal 10', padding= 8)
    KanalT11Z = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[53]), text='Kanal 11', padding= 8)
    KanalT12Z = ComboBox(NotenAuswahl, width=6, value=NotenAuswahl.index(chosenNote[55]), text='Kanal 12', padding= 8)
    TasterLoslassenCheck = CheckBox('"Taster-Loslassen"-Zeichen einfügen', value=1)
    if KanalZahl == 6:
    	# diatonische Auswahl:
    	vbox1= VBox([Kanal2B, Kanal3B, Kanal4B, Kanal5B, Kanal6B, Kanal7B], text='',padding = 8)
        vbox2= VBox([Alter2B, Alter3B, Alter4B, Alter5B, Alter6B, Alter7B], text='',padding = 8)
        vbox3b= VBox([labK2, labK3, labK4, labK5, labK6, labK7, lableer], padding = 15)
    	vbox4= VBox([Kanal2Z, Kanal3Z, Kanal4Z, Kanal5Z, Kanal6Z, Kanal7Z], text='',padding = 8)
    	vbox5= VBox([ Alter2Z, Alter3Z, Alter4Z, Alter5Z, Alter6Z, Alter7Z], text='',padding = 8)
    if KanalZahl == 7:
    	# diatonische Auswahl:
    	vbox1= VBox([Kanal2B, Kanal3B, Kanal4B, Kanal5B, Kanal6B, Kanal7B, Kanal8B], text='',padding = 8)
        vbox2= VBox([Alter2B, Alter3B, Alter4B, Alter5B, Alter6B, Alter7B, Alter8B], text='',padding = 8)
        vbox3b= VBox([labK2, labK3, labK4, labK5, labK6, labK7, labK8,lableer], padding = 15)
    	vbox4= VBox([Kanal2Z, Kanal3Z, Kanal4Z, Kanal5Z, Kanal6Z, Kanal7Z, Kanal8Z], text='',padding = 8)
    	vbox5= VBox([Alter2Z, Alter3Z, Alter4Z, Alter5Z, Alter6Z, Alter7Z, Alter8Z], text='',padding = 8)
    if KanalZahl == 8:
    	if MundHarmTyp <> 2:
	    	# diatonische Auswahl:
	    	vbox1= VBox([Kanal1B,Kanal2B, Kanal3B, Kanal4B, Kanal5B, Kanal6B, Kanal7B, Kanal8B], text='',padding = 8)
	        vbox2= VBox([Alter1B, Alter2B, Alter3B, Alter4B, Alter5B, Alter6B, Alter7B, Alter8B], text='',padding = 8)
	        vbox3b= VBox([labK1, labK2, labK3, labK4, labK5, labK6, labK7, labK8, lableer], padding = 15)
	    	vbox4= VBox([Kanal1Z,Kanal2Z, Kanal3Z, Kanal4Z, Kanal5Z, Kanal6Z, Kanal7Z, Kanal8Z], text='',padding = 8)
	    	vbox5= VBox([Alter1Z, Alter2Z, Alter3Z, Alter4Z, Alter5Z, Alter6Z, Alter7Z, Alter8Z], text='',padding = 8)
	    	# zusätzliche chromatisch Auswahl:
	    	vbox1T= VBox([KanalT1B,KanalT2B, KanalT3B, KanalT4B, KanalT5B, KanalT6B, KanalT7B, KanalT8B], text='',padding = 8)
	        vbox2T= VBox([AlterT1B, AlterT2B, AlterT3B, AlterT4B, AlterT5B, AlterT6B, AlterT7B, AlterT8B], text='',padding = 8)
	        vbox4T= VBox([KanalT1Z,KanalT2Z, KanalT3Z, KanalT4Z, KanalT5Z, KanalT6Z, KanalT7Z, KanalT8Z], text='',padding = 8)
	    	vbox5T= VBox([AlterT1Z, AlterT2Z, AlterT3Z, AlterT4Z, AlterT5Z, AlterT6Z, AlterT7Z, AlterT8Z], text='',padding = 8)
    	if MundHarmTyp == 2:
	    	# diatonische Auswahl:
	    	vbox1= VBox([Kanal2B, Kanal3B, Kanal4B, Kanal5B, Kanal6B, Kanal7B, Kanal8B, Kanal9B], text='',padding = 8)
	        vbox2= VBox([Alter2B, Alter3B, Alter4B, Alter5B, Alter6B, Alter7B, Alter8B, Alter9B], text='',padding = 8)
	        vbox3b= VBox([labK2, labK3, labK4, labK5, labK6, labK7, labK8,labK9, lableer], padding = 15)
	    	vbox4= VBox([Kanal2Z, Kanal3Z, Kanal4Z, Kanal5Z, Kanal6Z, Kanal7Z, Kanal8Z, Kanal9Z], text='',padding = 8)
	    	vbox5= VBox([Alter2Z, Alter3Z, Alter4Z, Alter5Z, Alter6Z, Alter7Z, Alter8Z, Alter9Z], text='',padding = 8)
    if KanalZahl == 10:
    	# diatonische Auswahl:
    	vbox1= VBox([Kanal1B,Kanal2B, Kanal3B, Kanal4B, Kanal5B, Kanal6B, Kanal7B, Kanal8B, Kanal9B, Kanal10B], text='',padding = 8)
        vbox2= VBox([Alter1B, Alter2B, Alter3B, Alter4B, Alter5B, Alter6B, Alter7B, Alter8B, Alter9B, Alter10B], text='',padding = 8)
        vbox3b= VBox([labK1, labK2, labK3, labK4, labK5, labK6, labK7, labK8, labK9, labK10, lableer], padding = 15)
    	vbox4= VBox([Kanal1Z,Kanal2Z, Kanal3Z, Kanal4Z, Kanal5Z, Kanal6Z, Kanal7Z, Kanal8Z, Kanal9Z, Kanal10Z], text='',padding = 8)
    	vbox5= VBox([Alter1Z, Alter2Z, Alter3Z, Alter4Z, Alter5Z, Alter6Z, Alter7Z, Alter8Z, Alter9Z, Alter10Z], text='',padding = 8)
    	# zusätzliche chromatisch Auswahl:
    	vbox1T= VBox([KanalT1B,KanalT2B, KanalT3B, KanalT4B, KanalT5B, KanalT6B, KanalT7B, KanalT8B, KanalT9B, KanalT10B], text='',padding = 8)
        vbox2T= VBox([AlterT1B, AlterT2B, AlterT3B, AlterT4B, AlterT5B, AlterT6B, AlterT7B, AlterT8B, AlterT9B, AlterT10B], text='',padding = 8)
        vbox4T= VBox([KanalT1Z,KanalT2Z, KanalT3Z, KanalT4Z, KanalT5Z, KanalT6Z, KanalT7Z, KanalT8Z, KanalT9Z, KanalT10Z], text='',padding = 8)
    	vbox5T= VBox([AlterT1Z, AlterT2Z, AlterT3Z, AlterT4Z, AlterT5Z, AlterT6Z, AlterT7Z, AlterT8Z, AlterT9Z, AlterT10Z], text='',padding = 8)
    if KanalZahl == 12:
    	if MundHarmTyp <> 2:
	    	vbox2= VBox([Alter1B, Alter2B, Alter3B, Alter4B, Alter5B, Alter6B, Alter7B, Alter8B, Alter9B, Alter10B, Alter11B, Alter12B], text='',padding = 8)
	    	vbox1= VBox([Kanal1B,Kanal2B, Kanal3B, Kanal4B, Kanal5B, Kanal6B, Kanal7B, Kanal8B, Kanal9B, Kanal10B, Kanal11B, Kanal12B], text='',padding = 8)
	        vbox3b= VBox([labK1, labK2, labK3, labK4, labK5, labK6, labK7, labK8, labK9, labK10, labK11, labK12, lableer], padding = 15)
	    	vbox4= VBox([Kanal1Z,Kanal2Z, Kanal3Z, Kanal4Z, Kanal5Z, Kanal6Z, Kanal7Z, Kanal8Z, Kanal9Z, Kanal10Z, Kanal11Z, Kanal12Z], text='',padding = 8)
	    	vbox5= VBox([Alter1Z, Alter2Z, Alter3Z, Alter4Z, Alter5Z, Alter6Z, Alter7Z, Alter8Z, Alter9Z, Alter10Z, Alter11Z, Alter12Z], text='',padding = 8)
	    	# zusätzliche chromatisch Auswahl:
	    	vbox1T= VBox([KanalT1B,KanalT2B, KanalT3B, KanalT4B, KanalT5B, KanalT6B, KanalT7B, KanalT8B, KanalT9B, KanalT10B, KanalT11B, KanalT12B], text='',padding = 8)
	        vbox2T= VBox([AlterT1B, AlterT2B, AlterT3B, AlterT4B, AlterT5B, AlterT6B, AlterT7B, AlterT8B, AlterT9B, AlterT10B, AlterT11B, AlterT12B], text='',padding = 8)
	        vbox4T= VBox([KanalT1Z,KanalT2Z, KanalT3Z, KanalT4Z, KanalT5Z, KanalT6Z, KanalT7Z, KanalT8Z, KanalT9Z, KanalT10Z, KanalT11Z, KanalT12Z], text='',padding = 8)
	    	vbox5T= VBox([AlterT1Z, AlterT2Z, AlterT3Z, AlterT4Z, AlterT5Z, AlterT6Z, AlterT7Z, AlterT8Z, AlterT9Z, AlterT10Z, AlterT11Z, AlterT12Z], text='',padding = 8)
    	if MundHarmTyp == 2:
	    	vbox2= VBox([ Alter2B, Alter3B, Alter4B, Alter5B, Alter6B, Alter7B, Alter8B, Alter9B, Alter10B, Alter11B, Alter12B, Alter13B], text='',padding = 8)
	    	vbox1= VBox([Kanal2B, Kanal3B, Kanal4B, Kanal5B, Kanal6B, Kanal7B, Kanal8B, Kanal9B, Kanal10B, Kanal11B, Kanal12B, Kanal13B], text='',padding = 8)
	        vbox3b= VBox([labK2, labK3, labK4, labK5, labK6, labK7, labK8, labK9, labK10, labK11, labK12, labK13, lableer], padding = 15)
	    	vbox4= VBox([Kanal2Z, Kanal3Z, Kanal4Z, Kanal5Z, Kanal6Z, Kanal7Z, Kanal8Z, Kanal9Z, Kanal10Z, Kanal11Z, Kanal12Z, Kanal13Z], text='',padding = 8)
	    	vbox5= VBox([Alter2Z, Alter3Z, Alter4Z, Alter5Z, Alter6Z, Alter7Z, Alter8Z, Alter9Z, Alter10Z, Alter11Z, Alter12Z, Alter13Z], text='',padding = 8)
    if KanalZahl == 14:
    	if MundHarmTyp == 0:
	    	vbox2= VBox([Alter1B, Alter2B, Alter3B, Alter4B, Alter5B, Alter6B, Alter7B, Alter8B, Alter9B, Alter10B, Alter11B, Alter12B, Alter13B, Alter14B], text='',padding = 8)
	    	vbox1= VBox([Kanal1B,Kanal2B, Kanal3B, Kanal4B, Kanal5B, Kanal6B, Kanal7B, Kanal8B, Kanal9B, Kanal10B, Kanal11B, Kanal12B, Kanal13B, Kanal14B], text='',padding = 8)
	        vbox3b= VBox([labK1, labK2, labK3, labK4, labK5, labK6, labK7, labK8, labK9, labK10, labK11, labK12, labK13, labK14, lableer], padding = 15)
	    	vbox4= VBox([Kanal1Z,Kanal2Z, Kanal3Z, Kanal4Z, Kanal5Z, Kanal6Z, Kanal7Z, Kanal8Z, Kanal9Z, Kanal10Z, Kanal11Z, Kanal12Z, Kanal13Z, Kanal14Z], text='',padding = 8)
	    	vbox5= VBox([Alter1Z, Alter2Z, Alter3Z, Alter4Z, Alter5Z, Alter6Z, Alter7Z, Alter8Z, Alter9Z, Alter10Z, Alter11Z, Alter12Z, Alter13Z, Alter14B], text='',padding = 8)
    	if MundHarmTyp == 1:
    		vbox2= VBox([Alter03B, Alter04B,Alter1B, Alter2B, Alter3B, Alter4B, Alter5B, Alter6B, Alter7B, Alter8B, Alter9B, Alter10B, Alter11B, Alter12B], text='',padding = 8)
	    	vbox1= VBox([Kanal03B,Kanal04B,Kanal1B,Kanal2B, Kanal3B, Kanal4B, Kanal5B, Kanal6B, Kanal7B, Kanal8B, Kanal9B, Kanal10B, Kanal11B, Kanal12B], text='',padding = 8)
	        vbox3b= VBox([labK03, labK04, labK1, labK2, labK3, labK4, labK5, labK6, labK7, labK8, labK9, labK10, labK11, labK12,lableer], padding = 15)
	    	vbox4= VBox([Kanal03Z, Kanal04Z,Kanal1Z,Kanal2Z, Kanal3Z, Kanal4Z, Kanal5Z, Kanal6Z, Kanal7Z, Kanal8Z, Kanal9Z, Kanal10Z, Kanal11Z, Kanal12Z], text='',padding = 8)
	    	vbox5= VBox([Alter03Z, Alter04Z,Alter1Z, Alter2Z, Alter3Z, Alter4Z, Alter5Z, Alter6Z, Alter7Z, Alter8Z, Alter9Z, Alter10Z, Alter11Z, Alter12Z], text='',padding = 8)
    		# zusätzliche chromatisch Auswahl:
    		vbox1T= VBox([KanalT03B, KanalT04B, KanalT1B,KanalT2B, KanalT3B, KanalT4B, KanalT5B, KanalT6B, KanalT7B, KanalT8B, KanalT9B, KanalT10B, KanalT11B, KanalT12B], text='',padding = 8)
        	vbox2T= VBox([AlterT03B, AlterT04B, AlterT1B, AlterT2B, AlterT3B, AlterT4B, AlterT5B, AlterT6B, AlterT7B, AlterT8B, AlterT9B, AlterT10B, AlterT11B, AlterT12B], text='',padding = 8)
        	vbox4T= VBox([KanalT03Z, KanalT04Z, KanalT1Z,KanalT2Z, KanalT3Z, KanalT4Z, KanalT5Z, KanalT6Z, KanalT7Z, KanalT8Z, KanalT9Z, KanalT10Z, KanalT11Z, KanalT12Z], text='',padding = 8)
    		vbox5T= VBox([AlterT03Z, AlterT04Z, AlterT1Z, AlterT2Z, AlterT3Z, AlterT4Z, AlterT5Z, AlterT6Z, AlterT7Z, AlterT8Z, AlterT9Z, AlterT10Z, AlterT11Z, AlterT12Z], text='',padding = 8)
    #KanalZahl = 16
    if KanalZahl == 16:
 		if MundHarmTyp == 1:
 			vbox2= VBox([Alter01B, Alter02B, Alter03B, Alter04B, Alter1B, Alter2B, Alter3B, Alter4B, Alter5B, Alter6B, Alter7B, Alter8B, Alter9B, Alter10B, Alter11B, Alter12B], text='',padding = 8)
 			vbox1= VBox([Kanal01B,Kanal02B,Kanal03B,Kanal04B,Kanal1B,Kanal2B, Kanal3B, Kanal4B, Kanal5B, Kanal6B, Kanal7B, Kanal8B, Kanal9B, Kanal10B, Kanal11B, Kanal12B], text='',padding = 8)
 			vbox3b= VBox([labK01, labK02,labK03, labK04, labK1, labK2, labK3, labK4, labK5, labK6, labK7, labK8, labK9, labK10, labK11, labK12,lableer], padding = 15)
 			vbox4= VBox([Kanal01Z, Kanal02Z,Kanal03Z, Kanal04Z,Kanal1Z,Kanal2Z, Kanal3Z, Kanal4Z, Kanal5Z, Kanal6Z, Kanal7Z, Kanal8Z, Kanal9Z, Kanal10Z, Kanal11Z, Kanal12Z], text='',padding = 8)
 			vbox5= VBox([Alter01Z, Alter02Z,Alter03Z, Alter04Z,Alter1Z, Alter2Z, Alter3Z, Alter4Z, Alter5Z, Alter6Z, Alter7Z, Alter8Z, Alter9Z, Alter10Z, Alter11Z, Alter12Z], text='',padding = 8)
    		# zusätzliche chromatisch Auswahl:
 			vbox1T= VBox([KanalT01B, KanalT02B,KanalT03B, KanalT04B, KanalT1B,KanalT2B, KanalT3B, KanalT4B, KanalT5B, KanalT6B, KanalT7B, KanalT8B, KanalT9B, KanalT10B, KanalT11B, KanalT12B], text='',padding = 8)
 			vbox2T= VBox([AlterT01B, AlterT02B,AlterT03B, AlterT04B, AlterT1B, AlterT2B, AlterT3B, AlterT4B, AlterT5B, AlterT6B, AlterT7B, AlterT8B, AlterT9B, AlterT10B, AlterT11B, AlterT12B], text='',padding = 8)
 			vbox4T= VBox([KanalT01Z, KanalT02Z,KanalT03Z, KanalT04Z, KanalT1Z,KanalT2Z, KanalT3Z, KanalT4Z, KanalT5Z, KanalT6Z, KanalT7Z, KanalT8Z, KanalT9Z, KanalT10Z, KanalT11Z, KanalT12Z], text='',padding = 8)
  			vbox5T= VBox([AlterT01Z, AlterT02Z,AlterT03Z, AlterT04Z, AlterT1Z, AlterT2Z, AlterT3Z, AlterT4Z, AlterT5Z, AlterT6Z, AlterT7Z, AlterT8Z, AlterT9Z, AlterT10Z, AlterT11Z, AlterT12Z], text='',padding = 8)   	
    if MundHarmTyp == 0:
  	   	vbox3a =VBox([lableer], padding = 8)
    if MundHarmTyp == 1:
  	   	vbox3a =VBox([lableer, lableer], padding = 6)  	   	
    if MundHarmTyp == 2:
  	   	vbox3a =VBox([lableer], padding = 6)  	
    vbox3 = VBox([vbox3a,vbox3b],padding=9)
    if MundHarmTyp == 0 or MundHarmTyp == 2:
    	hbox1= HBox([vbox1, vbox2], text = 'Geblasene Töne', padding = 8)
    	hbox2= HBox([vbox4,vbox5], text = 'Gezogene Töne', padding = 8)
    	hbox3= HBox([hbox1,vbox3,hbox2], padding = 8)
    if MundHarmTyp == 1:
    	hbox1a= HBox([vbox1, vbox2], text = 'ohne Taster', padding = 8)
    	hbox1b= HBox([vbox1T, vbox2T], text = 'mit Taster', padding = 8)
    	hbox1= HBox([hbox1a, hbox1b], text = 'Geblasene Töne', padding = 8)
    	hbox2a= HBox([vbox4, vbox5], text = 'ohne Taster', padding = 8)
    	hbox2b= HBox([vbox4T, vbox5T], text = 'mit Taster', padding = 8)
    	hbox2= HBox([hbox2a, hbox2b], text = 'Gezogene Töne', padding = 8)
       	hbox4= HBox([hbox1,vbox3,hbox2], padding = 8)
       	vbox1= VBox([hbox4, TasterLoslassenCheck], padding = 8)
       	hbox3= HBox([vbox1], padding = 8)
      	
    dlg = Dialog('Kanalbelegung: ', hbox3)
    
	
    if dlg.run():
  	    	if TasterLoslassenCheck.value() == 0:
		       	TasterLoslassen = 0
	    	if TasterLoslassenCheck.value() == 1:
		       	TasterLoslassen = 1
	    	chosenAlter[0] = AlterAuswahl[Alter1B.value()]
	    	chosenAlter[2] = AlterAuswahl[Alter2B.value()]
	    	chosenAlter[4] = AlterAuswahl[Alter3B.value()]
	    	chosenAlter[6] = AlterAuswahl[Alter4B.value()]
	    	chosenAlter[8] = AlterAuswahl[Alter5B.value()]
	    	chosenAlter[10] = AlterAuswahl[Alter6B.value()]
	    	chosenAlter[12] = AlterAuswahl[Alter7B.value()]
	    	chosenAlter[14] = AlterAuswahl[Alter8B.value()]
	    	chosenAlter[16] = AlterAuswahl[Alter9B.value()]
	    	chosenAlter[18] = AlterAuswahl[Alter10B.value()]
	    	chosenAlter[20] = AlterAuswahl[Alter11B.value()]
	    	chosenAlter[22] = AlterAuswahl[Alter12B.value()]
	    	chosenAlter[24] = AlterAuswahl[Alter13B.value()]
	    	chosenAlter[26] = AlterAuswahl[Alter14B.value()]
	    	chosenAlter[1] = AlterAuswahl[Alter1Z.value()]
	    	chosenAlter[3] = AlterAuswahl[Alter2Z.value()]
	    	chosenAlter[5] = AlterAuswahl[Alter3Z.value()]
	    	chosenAlter[7] = AlterAuswahl[Alter4Z.value()]
	    	chosenAlter[9] = AlterAuswahl[Alter5Z.value()]
	    	chosenAlter[11] = AlterAuswahl[Alter6Z.value()]
	    	chosenAlter[13] = AlterAuswahl[Alter7Z.value()]
	    	chosenAlter[15] = AlterAuswahl[Alter8Z.value()]
	    	chosenAlter[17] = AlterAuswahl[Alter9Z.value()]
	    	chosenAlter[19] = AlterAuswahl[Alter10Z.value()]
	    	chosenAlter[21] = AlterAuswahl[Alter11Z.value()]
	    	chosenAlter[23] = AlterAuswahl[Alter12Z.value()]
	    	chosenAlter[25] = AlterAuswahl[Alter13Z.value()]
	    	chosenAlter[27] = AlterAuswahl[Alter14Z.value()]
	    	chosenNote[0] = NotenAuswahl[Kanal1B.value()]
	    	chosenNote[2] = NotenAuswahl[Kanal2B.value()]
	    	chosenNote[4] = NotenAuswahl[Kanal3B.value()]
	    	chosenNote[6] = NotenAuswahl[Kanal4B.value()]
	    	chosenNote[8] = NotenAuswahl[Kanal5B.value()]
	    	chosenNote[10] = NotenAuswahl[Kanal6B.value()]
	    	chosenNote[12] = NotenAuswahl[Kanal7B.value()]
	    	chosenNote[14] = NotenAuswahl[Kanal8B.value()]
	    	chosenNote[16] = NotenAuswahl[Kanal9B.value()]
	    	chosenNote[18] = NotenAuswahl[Kanal10B.value()]
	    	chosenNote[20] = NotenAuswahl[Kanal11B.value()]
	    	chosenNote[22] = NotenAuswahl[Kanal12B.value()]
	    	chosenNote[24] = NotenAuswahl[Kanal13B.value()]
	    	chosenNote[26] = NotenAuswahl[Kanal14B.value()]
	    	chosenNote[1] = NotenAuswahl[Kanal1Z.value()]
	    	chosenNote[3] = NotenAuswahl[Kanal2Z.value()]
	    	chosenNote[5] = NotenAuswahl[Kanal3Z.value()]
	    	chosenNote[7] = NotenAuswahl[Kanal4Z.value()]
	    	chosenNote[9] = NotenAuswahl[Kanal5Z.value()]
	    	chosenNote[11] = NotenAuswahl[Kanal6Z.value()]
	    	chosenNote[13] = NotenAuswahl[Kanal7Z.value()]
	    	chosenNote[15] = NotenAuswahl[Kanal8Z.value()]
	    	chosenNote[17] = NotenAuswahl[Kanal9Z.value()]
	    	chosenNote[19] = NotenAuswahl[Kanal10Z.value()]
	    	chosenNote[21] = NotenAuswahl[Kanal11Z.value()]
	    	chosenNote[23] = NotenAuswahl[Kanal12Z.value()]
	    	chosenNote[25] = NotenAuswahl[Kanal13Z.value()]
	    	chosenNote[27] = NotenAuswahl[Kanal14Z.value()]
	    	if MundHarmTyp == 1:
		    	chosenAlter[32] = AlterAuswahl[AlterT1B.value()]
		    	chosenAlter[34] = AlterAuswahl[AlterT2B.value()]
		    	chosenAlter[36] = AlterAuswahl[AlterT3B.value()]
		    	chosenAlter[38] = AlterAuswahl[AlterT4B.value()]
		    	chosenAlter[40] = AlterAuswahl[AlterT5B.value()]
		    	chosenAlter[42] = AlterAuswahl[AlterT6B.value()]
		    	chosenAlter[44] = AlterAuswahl[AlterT7B.value()]
		    	chosenAlter[46] = AlterAuswahl[AlterT8B.value()]
		    	chosenAlter[48] = AlterAuswahl[AlterT9B.value()]
		    	chosenAlter[50] = AlterAuswahl[AlterT10B.value()]
		    	chosenAlter[52] = AlterAuswahl[AlterT11B.value()]
		    	chosenAlter[54] = AlterAuswahl[AlterT12B.value()]
		    	chosenAlter[56] = AlterAuswahl[AlterT01B.value()]
		    	chosenAlter[58] = AlterAuswahl[AlterT02B.value()]
		    	chosenAlter[60] = AlterAuswahl[AlterT03B.value()]
		    	chosenAlter[62] = AlterAuswahl[AlterT04B.value()]
		    	chosenAlter[33] = AlterAuswahl[AlterT1Z.value()]
		    	chosenAlter[35] = AlterAuswahl[AlterT2Z.value()]
		    	chosenAlter[37] = AlterAuswahl[AlterT3Z.value()]
		    	chosenAlter[39] = AlterAuswahl[AlterT4Z.value()]
		    	chosenAlter[41] = AlterAuswahl[AlterT5Z.value()]
		    	chosenAlter[43] = AlterAuswahl[AlterT6Z.value()]
		    	chosenAlter[45] = AlterAuswahl[AlterT7Z.value()]
		    	chosenAlter[47] = AlterAuswahl[AlterT8Z.value()]
		    	chosenAlter[49] = AlterAuswahl[AlterT9Z.value()]
		    	chosenAlter[51] = AlterAuswahl[AlterT10Z.value()]
		    	chosenAlter[53] = AlterAuswahl[AlterT11Z.value()]
		    	chosenAlter[55] = AlterAuswahl[AlterT12Z.value()]
		    	chosenAlter[57] = AlterAuswahl[AlterT01Z.value()]
		    	chosenAlter[59] = AlterAuswahl[AlterT02Z.value()]
		    	chosenAlter[61] = AlterAuswahl[AlterT03Z.value()]
		    	chosenAlter[63] = AlterAuswahl[AlterT04Z.value()]
		     	chosenNote[32] = NotenAuswahl[KanalT1B.value()]
		    	chosenNote[34] = NotenAuswahl[KanalT2B.value()]
		    	chosenNote[36] = NotenAuswahl[KanalT3B.value()]
		    	chosenNote[38] = NotenAuswahl[KanalT4B.value()]
		    	chosenNote[40] = NotenAuswahl[KanalT5B.value()]
		    	chosenNote[42] = NotenAuswahl[KanalT6B.value()]
		    	chosenNote[44] = NotenAuswahl[KanalT7B.value()]
		    	chosenNote[46] = NotenAuswahl[KanalT8B.value()]
		    	chosenNote[48] = NotenAuswahl[KanalT9B.value()]
		    	chosenNote[50] = NotenAuswahl[KanalT10B.value()]
		    	chosenNote[52] = NotenAuswahl[KanalT11B.value()]
		    	chosenNote[54] = NotenAuswahl[KanalT12B.value()]
		    	chosenNote[56] = NotenAuswahl[KanalT01B.value()]
		    	chosenNote[58] = NotenAuswahl[KanalT02B.value()]
		    	chosenNote[60] = NotenAuswahl[KanalT03B.value()]
		    	chosenNote[62] = NotenAuswahl[KanalT04B.value()]
		       	chosenNote[33] = NotenAuswahl[KanalT1Z.value()]
		    	chosenNote[35] = NotenAuswahl[KanalT2Z.value()]
		    	chosenNote[37] = NotenAuswahl[KanalT3Z.value()]
		    	chosenNote[39] = NotenAuswahl[KanalT4Z.value()]
		    	chosenNote[41] = NotenAuswahl[KanalT5Z.value()]
		    	chosenNote[43] = NotenAuswahl[KanalT6Z.value()]
		    	chosenNote[45] = NotenAuswahl[KanalT7Z.value()]
		    	chosenNote[47] = NotenAuswahl[KanalT8Z.value()]
		    	chosenNote[49] = NotenAuswahl[KanalT9Z.value()]
		    	chosenNote[51] = NotenAuswahl[KanalT10Z.value()]
		    	chosenNote[53] = NotenAuswahl[KanalT11Z.value()]
		    	chosenNote[55] = NotenAuswahl[KanalT12Z.value()]
		    	chosenNote[57] = NotenAuswahl[KanalT01Z.value()]
		    	chosenNote[59] = NotenAuswahl[KanalT02Z.value()]
		    	chosenNote[61] = NotenAuswahl[KanalT03Z.value()]
		    	chosenNote[63] = NotenAuswahl[KanalT04Z.value()]
	    	
	    	return True
    else:
        return False


def deleteNotes(score, voice):

 	Kennung = '56294-' +  '11'
 	GraficalTag = Kennung
    # Alle drawObj mit tag == GraficalTag löschen
 	for drawObjects in voice.getElementsByTagName('drawObjects'):
         for drawObj in drawObjects.childNodes:
            if drawObj.nodeType == drawObj.ELEMENT_NODE and drawObj.tagName == 'drawObj':
                for basic in drawObj.getElementsByTagName('basic'):
                    if basic.hasAttribute('tag') and basic.getAttribute('tag') == GraficalTag:
                        drawObjects.removeChild(drawObj)

        # Wenn drawObjects keine Elemente mehr enthält, dann löschen                        
         if drawObjects.getElementsByTagName('drawObj').length == 0:
            drawObjects.parentNode.removeChild(drawObjects)


def handleNotes(score, voice):
    global NoteChoice,SetzeTasterZeichen, TextHight, NoteHight, NoteLength, NoteSharpOrFlat, NotePosition, HeadChoice, ClefChoice, GraficalTag, NotenAblage, chosenNote, PositionUeberUnter, chosenAlter, TasterLoslassen

    
    Kennung = '56294-' +  '11'
    GraficalTag = Kennung	
	
    SetzeTasterZeichen = 0
    for chord in voice.getElementsByTagName('chord'):
        
        duration = chord.getElementsByTagName('duration')[0]
        NoteLength = duration.getAttribute('base')
        
        heads =  chord.getElementsByTagName('head')
        drawObjs = chord.getElementsByTagName('drawObjs')
        KopfAnzahl = 0
        SetzeTasterZeichen = 0
        for head in chord.getElementsByTagName('head'):
                Bending = 0
                KopfAnzahl = KopfAnzahl +1
                keineNote = 0
                Kringel = 0
                alter = addElementNode(head,'alter')
                tie = addElementNode(head,'tie')
                if not alter.hasAttribute('step'):
                   alter.setAttribute('step',str('0'))
                if tie.hasAttribute('end'):
                		keineNote = 1		
                alters =  head.getElementsByTagName('alter')
            
                if alter.getAttribute('step') == '0':								# Berücksichtigung der Alteration
                	Alteration = '-'
                if alter.getAttribute('step') == '1':
                	Alteration = '#'
                if alter.getAttribute('step') == '-1':
                	Alteration = 'b'	
                Weiter = 0	
                NummerImFeld = -1	
                
                for Everything in chosenNote: 										# Durchsuchung der MundharmonikaListe
	               	if head.getAttribute('pitch') == chosenNote[Weiter] and Alteration == chosenAlter[Weiter]:
	               			NummerImFeld = Weiter
	               			break
	               	Weiter = Weiter + 1
	               	
                if NummerImFeld == 3 and KanalDrei == 1:							# Kanal 3 (geblasen) bevorzugen		
	            	NummerImFeld = 4   	
                
                
                if NummerImFeld == -1 and MundHarmTyp == 0:							# Weitersuchen für Bending-Notes
									
	                Weiter2 = -1	
	                
	                
	                TripBend = ''
	                DoubBend = ''
	                SingBend = ''
	                for Everything in NotenTotalMitKreuz:
	                	Weiter2 = Weiter2 + 1 										# Durchsuchung der normalen Liste 
	                	#result = None
		               	#messageBox('Fehler',NotenTotalMitKreuz[Weiter2][0:2] + head.getAttribute('pitch'))
		               	#return result
	                	if head.getAttribute('pitch') == NotenTotalMitKreuz[Weiter2][0:2] and Alteration == NotenTotalMitKreuz[Weiter2][2]:
	                		TripBend = NotenTotalMitKreuz[Weiter2+3]
	                		DoubBend = NotenTotalMitKreuz[Weiter2+2]
	                		SingBend = NotenTotalMitKreuz[Weiter2+1]
	                		break
	                		
	                Weiter3 = 0
	                for Everything2 in chosenNote: 									# Durchsuchung der MundharmonikaListe
		              	if SingBend[0:2] == chosenNote[Weiter3] and SingBend[2] == chosenAlter[Weiter3]:
	               			if ((Weiter3/2)*2-Weiter3) == -1:
	               				NummerImFeld = Weiter3
	               				Bending = 1
	               				break
	               	   	Weiter3 = Weiter3 + 1
	               	   	
	               	Weiter3 = 0
	               	if Bending == 0:	   
		                for Everything2 in chosenNote: 									# Durchsuchung der MundharmonikaListe
			              	if DoubBend[0:2] == chosenNote[Weiter3] and DoubBend[2] == chosenAlter[Weiter3]:
		               			if ((Weiter3/2)*2-Weiter3) == -1:
		               				NummerImFeld = Weiter3
		               				Bending = 2
		               				break
		               	   	Weiter3 = Weiter3 + 1	  
					
		                Weiter3 = 0
		                if Bending == 0:	   
			                for Everything2 in chosenNote: 								# Durchsuchung der MundharmonikaListe
				              	if TripBend[0:2] == chosenNote[Weiter3] and TripBend[2] == chosenAlter[Weiter3]:
			               			if ((Weiter3/2)*2-Weiter3) == -1:
			               				NummerImFeld = Weiter3
			               				Bending = 3
			               				break
			               	   	Weiter3 = Weiter3 + 1
		               		
                if keineNote == 0 and NummerImFeld > -1:
                	
                	if NummerImFeld > 31 and MundHarmTyp == 1:							# Korrektur der NummerImFeld bei Chromatischen Mundharmonikas
	                	NummerImFeld = NummerImFeld - 32
	                	SetzeTasterZeichen = 1	  	

	                if PositionUeberUnter == 0:    										# Positionen festlegen
	                	TextPositionY = 0-string.atoi(TextHight) - (3.6+(string.atof('0.'+TextSpace))) * KopfAnzahl + 3.5
	                   	EllipsenHight1 = -2.7 + TextPositionY
	                	EllipsenHight2 = 0.8 + TextPositionY
	                if PositionUeberUnter == 1:
	                	TextPositionY = string.atoi(TextHight) - (3.6+(string.atof('0.'+TextSpace))) * KopfAnzahl + 3.5                 
	                   	EllipsenHight1 = -2.7 + TextPositionY
	                	EllipsenHight2 = 0.8 + TextPositionY
	                
	                
	                				
	                
	                if Gruppiert == 0:
	                	group = addElementNode(chord,'drawObjects')
	                	
	                if Gruppiert == 1:
	                	drawObjects = addElementNode(chord,'drawObjects') 
	                	drawObj1 = addNewElementNode(drawObjects,'drawObj')
	                	group = addNewElementNode(drawObj1, 'group')
	                	basic = addElementNode(drawObj1,'basic')							
	                	basic.setAttribute('tag',GraficalTag)
	                	
	                drawObj2 = addNewElementNode(group, 'drawObj')	
	                ellipse = addNewElementNode(drawObj2,'ellipse')						# Zeichnen der Ellipse
	                ellipse.setAttribute('x1','-1')
	                ellipse.setAttribute('x2','2.5')
	                ellipse.setAttribute('y1',str(EllipsenHight1))
	                ellipse.setAttribute('y2',str(EllipsenHight2))
	                KanalNummerString = '' 
	                if head.getAttribute('pitch') in chosenNote or Bending > 0:	# Wählen der Farbe
	                	if ((NummerImFeld/2)*2-NummerImFeld) == 0:						# Gerade Nummern = Geblasene Töne
	                		ellipse.setAttribute('filled','true')
	                		if NummerImFeld > 23 and MundHarmTyp == 1:
	                			NummerImFeld = NummerImFeld-24
	                			Kringel = 1
	                		KanalNummerString = str(NummerImFeld/2+1)
	                		Farbe = 'FFFFFF'
	                	if ((NummerImFeld/2)*2-NummerImFeld) == -1:						# Ungerade Nummern = Gezogene Töne
	                		#ellipse.setAttribute('filled','false')
	                		if NummerImFeld > 23 and MundHarmTyp == 1:
	                			NummerImFeld = NummerImFeld-24
	                			Kringel = 1
	                		KanalNummerString = str(NummerImFeld/2+1)
	                		Farbe = ''
	                	                		
	                
	                drawObj3 = addNewElementNode(group,'drawObj')						# Kanalnummern
	                text = addNewElementNode(drawObj3,'text')
	                text.setAttribute('x','0.8')
	                font = addNewElementNode(text,'font')
	                font.setAttribute('face','Arial')
	                font.setAttribute('color',Farbe)
	                NoteHeight = '12'
	                font.setAttribute('height','10')
	                font.setAttribute('charSet','1')
	                font.setAttribute('pitchAndFamily','2')
	                content = addNewElementNode(text,'content')
	                textNode = doc.createTextNode(KanalNummerString)
	                content.appendChild(textNode)
	                text.setAttribute('y',str(TextPositionY))
	                text.setAttribute('align','center')
	                if SetzeTasterZeichen == 2 and TasterLoslassen == 1:
		                drawObj4 = addNewElementNode(group,'drawObj')				# Taster-Zeichen-Loslassen					
		                text2 = addNewElementNode(drawObj4,'text')
		                text2.setAttribute('x','0.8')
		                font2 = addElementNode(text2,'font')
		                font2.setAttribute('face','Symbol')
		                font2.setAttribute('color','')
		                NoteHeight = '12'
		                font2.setAttribute('height','12')
		                font2.setAttribute('charSet','1')
		                font2.setAttribute('pitchAndFamily','2')
		                content2 = addElementNode(text2,'content')
		                Symbol = chr(174)
		                textNode2 = doc.createTextNode(latin1_d(Symbol))
		                content2.appendChild(textNode2)
		                text2.setAttribute('y',str(TextPositionY-3))
		                text2.setAttribute('align','center')
		                SetzeTasterZeichen = 3
	                if SetzeTasterZeichen == 2 and TasterLoslassen == 0:
		            	SetzeTasterZeichen = 0
	                if SetzeTasterZeichen == 1:
		                drawObj5 = addNewElementNode(group,'drawObj')				# Taster-Zeichen-Drücken					
		                text2 = addNewElementNode(drawObj5,'text')
		                text2.setAttribute('x','0.8')
		                font2 = addElementNode(text2,'font')
		                font2.setAttribute('face','Symbol')
		                font2.setAttribute('color','')
		                NoteHeight = '12'
		                font2.setAttribute('height','12')
		                font2.setAttribute('charSet','1')
		                font2.setAttribute('pitchAndFamily','2')
		                content2 = addElementNode(text2,'content')
		                Symbol = chr(172)
		                textNode2 = doc.createTextNode(latin1_d(Symbol))
		                content2.appendChild(textNode2)
		                text2.setAttribute('y',str(TextPositionY-3))
		                text2.setAttribute('align','center')
		                SetzeTasterZeichen = 2
	                if Kringel == 1:
		                drawObj6 = addNewElementNode(group,'drawObj')			# Zeichnen der Ellipse
		                ellipse2 = addNewElementNode(drawObj6,'ellipse')
		                ellipse2.setAttribute('x1','0.6')
		                ellipse2.setAttribute('x2','0.9')
		                ellipse2.setAttribute('y1',str(EllipsenHight1+0.3))
		                ellipse2.setAttribute('y2',str(EllipsenHight1+0.6))
		                ellipse2.setAttribute('lineColor',Farbe)
	                if Bending == 1 or Bending == 3:
		                drawObj7 = addNewElementNode(group,'drawObj')			# Bending-Zeichen Mitte					
		                text4 = addNewElementNode(drawObj7,'text')
		                text4.setAttribute('x','0.8')
		                font4 = addElementNode(text4,'font')
		                font4.setAttribute('face','Symbol')
		                font4.setAttribute('color','')
		                NoteHeight = '12'
		                font4.setAttribute('height','7')
		                font4.setAttribute('charSet','1')
		                font4.setAttribute('pitchAndFamily','2')
		                content4 = addElementNode(text4,'content')
		                Symbol = chr(175)
		                textNode4 = doc.createTextNode(latin1_d(Symbol))
		                content4.appendChild(textNode4)
		                text4.setAttribute('y',str(TextPositionY+2.2))
		                text4.setAttribute('align','center')
	                if Bending == 2 or Bending == 3:
		                drawObj8 = addNewElementNode(group,'drawObj')		# Bending-Zeichen linke Seite						
		                text5 = addNewElementNode(drawObj8,'text')
		                text5.setAttribute('x','-0.4')
		                font5 = addElementNode(text5,'font')
		                font5.setAttribute('face','Symbol')
		                font5.setAttribute('color','')
		                NoteHeight = '12'
		                font5.setAttribute('height','7')
		                font5.setAttribute('charSet','1')
		                font5.setAttribute('pitchAndFamily','2')
		                content5 = addElementNode(text5,'content')
		                Symbol = chr(175)
		                textNode5 = doc.createTextNode(latin1_d(Symbol))
		                content5.appendChild(textNode5)
		                text5.setAttribute('y',str(TextPositionY+1.8))
		                text5.setAttribute('align','center')
			
		                drawObj9 = addNewElementNode(group,'drawObj')	# Bending-Zeichen rechte Seite						
		                text6 = addNewElementNode(drawObj9,'text')
		                text6.setAttribute('x','1.9')
		                font6 = addElementNode(text6,'font')
		                font6.setAttribute('face','Symbol')
		                font6.setAttribute('color','')
		                NoteHeight = '12'
		                font6.setAttribute('height','7')
		                font6.setAttribute('charSet','1')
		                font6.setAttribute('pitchAndFamily','2')
		                content6 = addElementNode(text6,'content')
		                Symbol = chr(175)
		                textNode6 = doc.createTextNode(latin1_d(Symbol))
		                content6.appendChild(textNode6)
		                text6.setAttribute('y',str(TextPositionY+1.8))
		                text6.setAttribute('align','center')
	                if Gruppiert == 0:
	                	basic = addElementNode(drawObj2,'basic')							
	                	basic.setAttribute('tag',GraficalTag)
	                	basic = addElementNode(drawObj3,'basic')							
	                	basic.setAttribute('tag',GraficalTag)
	                	if SetzeTasterZeichen == 3:
		                	basic = addElementNode(drawObj4,'basic')							
		                	basic.setAttribute('tag',GraficalTag)
		                	SetzeTasterZeichen = 0
	                	if SetzeTasterZeichen == 2:
		                	basic = addElementNode(drawObj5,'basic')							
		                	basic.setAttribute('tag',GraficalTag)
	                	if Kringel == 1:
	                		basic = addElementNode(drawObj6,'basic')							
	                		basic.setAttribute('tag',GraficalTag)
	                	if Bending == 1 or Bending == 3:
		                	basic = addElementNode(drawObj7,'basic')							
		                	basic.setAttribute('tag',GraficalTag)
	                	if Bending == 2 or Bending == 3:
		                	basic = addElementNode(drawObj8,'basic')							
		                	basic.setAttribute('tag',GraficalTag)
		                	basic = addElementNode(drawObj9,'basic')							
		                	basic.setAttribute('tag',GraficalTag)
def getCursor():
    sel = curSelection()
    result = None
    if sel == 0:
        messageBox('Fehler', 'keine aktive Partitur')
        return result
    result = sel[0]
    return result
    
def changeDoc(score):
    global NurLoeschen, ChromProblem
    if getDialogValues1():
    	if NurLoeschen == 0:
    		if ChromProblem == 1:	# Fehler bei Nichtexistenz der Tonart für chromatische Modelle
    			result = None
    			messageBox('Fehler', 'Für die chromatische Mundharmonika existiert ')
        		return result
    		if getDialogValues2():
    			if Auswahl == 0:												# Nur die Markierte Zeile 
		        	sel = getCursor()
		    		if sel == None:
		        		return
		    		else:
		        		system = score.getElementsByTagName('system')[sel[0]]
		        		staff = system.getElementsByTagName('staff')[sel[1]]
		        		voice = staff.getElementsByTagName('voice')[sel[2]]
		        		deleteNotes(score, voice)
		        		handleNotes(score, voice)
		        					
	    		if Auswahl == 1:												# Nur die Markierte Zeile, allerdings über die gesamte Partitur
		        	sel = getCursor()
		    		if sel == None:
		        		return
		    		else:
		        		system = score.getElementsByTagName('system')[sel[0]]
		        		staff = system.getElementsByTagName('staff')[sel[1]]
		        		actLayout = staff.getAttribute('layout')
		        		for staff in score.getElementsByTagName('staff'):
        					if staff.getAttribute('layout') == actLayout:
		        				for voice in staff.getElementsByTagName('voice'):
		        					deleteNotes(score, voice)
		        					handleNotes(score, voice)
		        		
		        				
	    		if Auswahl == 2:
	    			for voice in score.getElementsByTagName('voice'):			# Gesamte Partitur bearbeiten
	    				deleteNotes(score, voice)
	    				handleNotes(score, voice)
    	if NurLoeschen == 1:
    				for voice in score.getElementsByTagName('voice'):			# Nur Objekte löschen
	    				deleteNotes(score, voice)
	    				
    				
# Hauptprogramm:

from caplib.capDOM import ScoreChange
import tempfile

class ScoreChange(ScoreChange):
	def changeScore(self, score):
	   global doc
	   doc = score.parentNode  
	   changeDoc(score)
		
        

if activeScore():
	
	activeScore().registerUndo("Schlagzeug-Notation")
	tempInput = tempfile.mktemp('.capx')
	tempOutput = tempfile.mktemp('.capx')
	activeScore().write(tempInput)
	ScoreChange(tempInput, tempOutput)
	activeScore().read(tempOutput)
	os.remove(tempInput)
	os.remove(tempOutput)
