Skip to content

Activiteit

Metronoom

Beginner | MakeCode, Python | Geluid, Knoppen, LED scherm | Herhalingen (iteratie), Tempo

Stap 1: Maak het

Wat is het?

Codeer je eigen elektronische metronoom die regelmatige beats maakt die je kunt vertragen en versnellen terwijl je muziek oefent.

Inleiding

Codeer instructies

Wat je gaat leren

  • Het tempo aanpassen van muzieknoten die door de micro:bit worden gespeeld
  • Hoe invoer knoppen en audio-uitgangen te gebruiken om een nuttig elektronisch apparaat te maken

Zo werkt het

  • Bij de start van het programma wordt het tempo ingesteld op 100 bpm - beats per minuut. Dit is een standaard manier om het tempo of de snelheid van muziek te meten.
  • Een oneindige lus zorgt ervoor dat de micro:bit een korte noot speelt en vervolgens één tel rust.
  • Je kunt het geluid horen door een koptelefoon aan te sluiten op pin 0 en GND of op de ingebouwde luidspreker van de nieuwe micro:bit.
  • Druk op knop A om het tempo met 5 bpm te verlagen.
  • Druk op knop B om het met 5 bpm te versnellen.
  • Door tegelijkertijd op knop A en B te drukken, wordt het huidige tempo weergegeven op de LED display uitgang.

Benodigdheden

  • Een micro:bit
  • MakeCode of Python editor
  • batterijpakket (optioneel)

Step 2: Codeer het

1from microbit import *
2import music
3tempo = 100
4
5while True:
6    music.set_tempo(bpm=tempo)
7    music.play(['C4:1', 'r:3']) # play C for 1 tick, rest for 3 ticks
8    if button_a.was_pressed():
9        tempo -= 5
10    if button_b.was_pressed():
11        tempo += 5  
12    

Stap 3: Verbeter het

  • Je zult misschien opmerken dat het ritme iets langzamer speelt dan een elektronisch instrument met dezelfde BPM instelling - dit komt omdat elke lus één en één zestiende van een tel in beslag neemt, in plaats van slechts één tel.
  • Je zou kunnen proberen het nauwkeuriger te maken door fracties van een tel op te tellen om één hele tel te krijgen: 1/2 + 1/4 + 1/8 + 1/16 maakt 15/16 om op te tellen op de 1/16e van een tel waarvoor je de toon speelt.
  • 'Voor altijd' blokken voegen ook een beetje vertraging toe, dus het gebruik van een 'terwijl waar' lus erin zal je code versnellen en nauwkeuriger maken.
  • De code video bovenaan deze pagina laat zien hoe je dit doet.
Raster waarin fracties van beats getoond worden die oplopen tot vijftien zestiende