Metronom Loesung: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Zeile 5: | Zeile 5: | ||
;"ändern auf" und "ändern um" | ;"ändern auf" und "ändern um" | ||
:Wichtig ist die Unterscheidung zwischen "ändern auf" und "ändern um". | :Wichtig ist die Unterscheidung zwischen "ändern auf" und "ändern um". | ||
:"ändern auf" setzt das Tempo auf einen bestimmten Wert. <spoiler text="Block"><pre id="pre01"> | |||
music.setTempo(100) | music.setTempo(100) | ||
</pre> | </pre> | ||
</spoiler> | </spoiler> | ||
:"ändern um" verändert das Tempo um einen bestimmten Wert. Das funktioniert sowohl mit positiven als auch negativen Zahlen. <spoiler text="Block"><pre id="pre01"> | |||
<spoiler text="Block"><pre id="pre01"> | |||
input.onButtonPressed(Button.A, function () { | input.onButtonPressed(Button.A, function () { | ||
music.changeTempoBy(-5) | music.changeTempoBy(-5) |
Version vom 3. Januar 2022, 19:29 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 abgerufen und verändert werden.
Hilfestellungen und Lösung zum Metronom
- "ändern auf" und "ändern um"
- Wichtig ist die Unterscheidung zwischen "ändern auf" und "ändern um".
- "ändern auf" setzt das Tempo auf einen bestimmten Wert. <spoiler text="Block">
music.setTempo(100)
</spoiler>
- "ändern um" verändert das Tempo um einen bestimmten Wert. Das funktioniert sowohl mit positiven als auch negativen Zahlen. <spoiler text="Block">
input.onButtonPressed(Button.A, function () {
music.changeTempoBy(-5)
})
</spoiler>
- 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