Weihnachtsprojekt: Verteiltes Glockenspiel mit mehreren Calliope Mini
Seite 6: Konzert 4: Und nun etwas schneller bitte.
Sollen nicht nur ganze Noten, sondern auch Halb-, Viertel- und Achtelnoten in der Melodie verwendet werden, muss die Notenlänge zusammen mit der Tonhöhe im Array gespeichert werden. Dazu werden vor der Tonhöhe die Werte g
(ganze), h
(halbe), v
(viertel) oder a
(achtel) ergänzt. Eine Achtelnote D der zweiten Oktave wird somit zu aD2
. Der erste Buchstabe der Note bestimmt die Pausenzeit bis die nächste Note gespielt wird.
Definiert drei neue Variablen: Notenlaenge
, Ton
und Takt
. Der Variablen Takt
weist ihr in der Startklammer einen fixen Wert zu, beispielsweise 1000 ms. Der Variablen Notenlaenge
weist ihr mit dem Befehl Extrahiere aus … beginnend mit …
(Menü "Fortgeschritten" "Text") den ersten Buchstaben des in AktuelleNoteEmpfangen
gespeicherten Texts zu. Dazu müsst ihr die Werte von Position 0
bis 1
auswählen. Mit Ändere Notenlaenge auf / Extrahiere aus AktuelleNoteEmpfangen von 0 bis 1
wird also die Information g,h,v oder a in Notenlaenge
gespeichert. Der Ton
, beispielsweise D1, wird mit dem gleichen Befehl und den Positionen 1
bis 3
gespeichert.
Für die Einhaltung der Pause definiert ihr noch die Funktion Taktpause
. Nutzt die Wenn … dann … sonst wenn…
Funktion (Menü "Logik") um die Variable Notenlaenge
mit g,h,v und a zu vergleichen. Dazu müsst ihr im Setup der Funktion (blaues Icon) weitere else if
Optionen in die Funktion ziehen. Den Wert in der Variablen Notenlaenge
vergleicht ihr nach nacheinander mit den möglichen Tonlängen. Ist die richtige Tonlänge gefunden, wird der Pausenbefehl ausgeführt. Die Länge der Pause entspricht entweder dem Takt
(Länge g), dem Takt ÷ 2
(h), dem Takt ÷ 4
(v) oder dem Takt geteilt durch 8 (a). Der Teilen-Befehl befindet sich im "Mathematik" Menü.