la gestion du son

L'ajout de bruitages rend souvent les applications plus attractives - sauf peut-être en salle de classe ! En connectant un haut-parleur entre les broches 0 et GND de la carte microbit, il est possible de jouer des sons.

Complément

Il existe des shields sur laquelle la carte microbit s'enfiche qui intègrent un haut-parleur. La carte peut alors émettre des sons sans branchements supplémentaires. C'est le cas du gator:bit V2 de sparkfun que nous avons déjà rencontré dans la partie sur les entrées-sorties.

Jouer une musique préenregistrée

La carte intègre un certain nombre de musiques réenregistrées pour différentes ambiances. Essayez le code suivant :

1
import music
2
3
music.play(music.BIRTHDAY)

Difficile de f aire plus simple ! voici la liste des musiques disponibles. Pour les retrouver depuis le REPL, faites dir(music)

'DADADADUM', 'ENTERTAINER', 'PRELUDE', 'ODE', 'NYAN', 'RINGTONE', 'FUNK', 'BLUES', 'BIRTHDAY', 'WEDDING', 'FUNERAL', 'PUNCHLINE', 'PYTHON', 'BADDY', 'CHASE', 'BA_DING', 'WAWAWAWAA', 'JUMP_UP', 'JUMP_DOWN', 'POWER_UP', 'POWER_DOWN'

Jouer une musique personalisée

Vous pouvez composer votre propre musique comme vous pouvez le voir sur l'exemple suivant :

1
import music
2
3
tune = ["C4:4", "D4:4", "E4:4", "C4:4", "C4:4", "D4:4", "E4:4", "C4:4",
4
        "E4:4", "F4:4", "G4:8", "E4:4", "F4:4", "G4:8"]
5
music.play(tune)

Le format de chaque note est le nom de la note ("A" pour La, "B" pour Si etc...) suivi du numéro de l'octave suivi de " :" et enfin la longueur de la note.

ComplémentSimplification d'écriture

Pour simplifier, MicroPython se rappèle les paramètres de la note précédente si ceux-ci sont omis pour la note suivante. La musique précédente peut ainsi se simplifier en

tune = ["C4:4", "D", "E", "C", "C", "D", "E", "C", "E", "F", "G:8", "E:4", "F", "G:8"]

Effets sonore

On peut enfin utiliser music.pitch() pour spécifier une fréquence et une durée précise. L'exemple ci-dessous reproduit une sirène de police et illustre cette méthode.

1
import music
2
3
while True:
4
    for freq in range(880, 1760, 16):
5
        music.pitch(freq, 6)
6
    for freq in range(1760, 880, -16):
7
        music.pitch(freq, 6)