Metronom Loesung: Unterschied zwischen den Versionen

Aus microbit - Das Schulbuch
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())
})



Zurück zur Aufgabe