Metronom Loesung: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Zeile 1: | Zeile 1: | ||
== Grundsätzliche Überlegungen == | == Grundsätzliche Überlegungen == | ||
Bei diesem Beispiel dreht sich alles um die Variable Tempo. Sie ist schon vorgefertigt und unter dem Abschnitt Musik zu finden. Ihr Wert wird in bpm (= beats per minute) angegeben und kann jederzeit verändert und abgerufen werden. | Bei diesem Beispiel dreht sich alles um die Variable Tempo. Sie ist schon vorgefertigt und unter dem Abschnitt Musik zu finden. Ihr Wert wird in bpm (= beats per minute) angegeben und kann jederzeit verändert und abgerufen werden. <spoiler text="Block"><pre id="pre01"> | ||
input.onButtonPressed(Button.A, function () { | |||
music.changeTempoBy(-5) | |||
}) | |||
music.setTempo(100) | |||
</pre> | |||
</spoiler> | |||
== Hilfestellungen und Lösung zum Metronom == | == Hilfestellungen und Lösung zum Metronom == |
Version vom 3. Januar 2022, 19:25 Uhr
Grundsätzliche Überlegungen
Bei diesem Beispiel dreht sich alles um die Variable Tempo. Sie ist schon vorgefertigt und unter dem Abschnitt Musik zu finden. Ihr Wert wird in bpm (= beats per minute) angegeben und kann jederzeit verändert und abgerufen werden. <spoiler text="Block">
input.onButtonPressed(Button.A, function () { music.changeTempoBy(-5) }) music.setTempo(100)
</spoiler>
Hilfestellungen und Lösung zum Metronom
- Dauerhafte Audio- und LED-Ausgabe
- Damit das Tempo zeitgleich mit dem Abspielen der Töne dargestellt wird, sind zwei Blöcke "dauerhaft" nötig. <spoiler text="Block">
basic.forever(function () { basic.showNumber(music.tempo()) }) basic.forever(function () { music.playTone(262, music.beat(BeatFraction.Sixteenth)) music.rest(music.beat(BeatFraction.Whole)) })
</spoiler>
Komplettlösungen
input.onButtonPressed(Button.A, function () { music.changeTempoBy(-5) }) input.onButtonPressed(Button.B, function () { music.changeTempoBy(5) }) music.setTempo(100) basic.forever(function () { music.playTone(262, music.beat(BeatFraction.Sixteenth)) music.rest(music.beat(BeatFraction.Whole)) }) basic.forever(function () { basic.showNumber(music.tempo()) })
- Eine mögliche Lösung