Metronom Loesung: Unterschied zwischen den Versionen

Aus microbit - Das Schulbuch
Zur Navigation springen Zur Suche springen
Zeile 3: Zeile 3:


== Hilfestellungen und Lösung zum Metronom ==
== 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"><pre id="pre01">
music.setTempo(100)
</pre>
</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">
input.onButtonPressed(Button.A, function () {
    music.changeTempoBy(-5)
})
</pre>
</spoiler>
;Dauerhafte Audio- und LED-Ausgabe
;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"><pre id="pre01">
:Damit das Tempo zeitgleich mit dem Abspielen der Töne dargestellt wird, sind zwei Blöcke "dauerhaft" nötig. <spoiler text="Block"><pre id="pre01">

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())
})



Zurück zur Aufgabe