Lag din egen melodi med python

Lag en melodi med micropython

Vi kan benytte python til å spille av noter. En variant av python som ligger på nett blir kalt “micropython”, og er en variant av python som er beregnet til å bruke på microbits.

Her kan vi benytte oss av et bibliotek som heter music til å spille av noter. Du ser et skjermbilde av programmet til høyre. Der har jeg laget en melodi, som jeg kan spille av ved å bruke play-funksjonen på microbitten øverst til høyre. Programmet benytter pc-høytaleren til å spille tonen.

Det kan ta litt tid å venne seg til å skrive noter på denne måten, men øvelse gjør mester!

Start med å lage min melodi, så kan du se om du kan lage dine egne etterpå 😉

Pyton
				from microbit import * # Importere alle funksjoner i microbit
import music # Importere modulen "music"

music.set_tempo(bpm=100) # Setter tempo
# Lage en liste som inneholder alle noter som skal spilles
notes = [
    'E:2','G:2','C:2','R:2',
    'E:2','G:2','C:2','R:2',
    'F:2','A:2','C5:2','A4:2',
    'A:4', 'G:4',
    'E:2','G:2','C:2','R:2',
    'E:2','G:2','C:2','R:2',
    'D:2','E:2','F:2','B3:2',
    'D4:4','C:4'
]

music.play(notes) # Spiller alle noter i lista
			

Her ser du koden som jeg har brukt. En note beskrives i en string som ser slik ut:

‘E:2’

Dette blir noten E som varer i 2 takter. (altså en halvnote)

‘R:2’ blir stillhet (rest) i to takter, og dersom man skal bytte oktav, så gjøres det slik:

‘G5:2’ – tone G i 5. oktav i to takter.

Link til program: http://python.microbit.org/

Lag en melodi med python og microbeeps

Visste du at vi kan få python til å spille forskjellige toner, eller noter, og dermed også spille egne melodier? Her benytter jeg meg av et bibliotek som heter musicalbeeps. Det er et lite bibliotek som har et objekt som heter Player. Dette objektet kan spille noter i en bestemt varighet. Dette kan vi benytte til å legge inn fra et noteark, eller lage egne melodier fra bunn.

Under ser du at jeg har lagt inn en kjent melodi. Hvilken sang spiller denne koden?

Pyton
				import musicalbeeps # Importere bibliotek
player = musicalbeeps.Player(volume = 1) # Opprette et objekt som kan spille

BPM = 100 # Bestemme beats per minute

k = 60/BPM/4 # Varighet på en kvartnote
h = 60/BPM/2 # Varighet på en halvnote
H = 60/BPM # Varighet på en helnote

# Opprette en liste med noter som skal spilles
liste_noter = [
    ("C", h), ("D", h), ("E", h), ("F", h), 
    ("G", H), ("G", H),
    ("A", h), ("A", h), ("A", h), ("A", h), 
    ("G",H),("pause", H),
    ("F", h), ("F", h), ("F", h), ("F", h), 
    ("E", H), ("E", H),
    ("D", h), ("D", h), ("D", h), ("D", h), 
    ("C",H), ("pause", H)
]

# En løkke som spiller alle noter i lista
for i in liste_noter:
    player.play_note(i[0], i[1])
			

Klarer du å kjenne igjen sangen?

Dersom du kjører programmet, og får en feilmelding om at python ikke finner “musicalbeeps”, så er det fordi musicalbeeps ikke er installert. Den kan installeres fra terminalen slik:

pip install musicalbeeps

Fortsatt problemer? Bruk google eller kontakt administrator. 😉

DigitAbel – for dypere læring