Weihnachtsprojekt: Verteiltes Glockenspiel mit mehreren Calliope Mini

Seite 6: Konzert 4: Und nun etwas schneller bitte.

Inhaltsverzeichnis

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ü.

Konzert 3 mit alben, Viertel- und Achtel-Noten. Aus Gründen der Übersichtlichkeit wurde dem Calliope-Dirigenten das Instrument weggenommen. Der Calliope, der eine Melodie sendet, spielt selbst keinen Ton. Aber das kann natürlich leicht geändert werden.