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. <spoiler text="Block"><pre id="pre01">
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. Wichtig dabei ist zwischen "ändern auf" und "ändern um" zu unterscheiden.
<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:27 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. Wichtig dabei ist zwischen "ändern auf" und "ändern um" zu unterscheiden.

<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