BeatNick – en python trommemaskin
Lage beats med python (og pygame)
Det finnes mange programmer som lar oss lage rytmer og beats, men vi kan faktisk kode vår egen beat rett inn i python. Her har jeg laget et lite program som jeg baserer på den samme logikken som jeg brukte på metronomen. Det å lage dette programmet sammen med elevene vil kanskje være litt i overkant i musikktimen, men kanskje man kan gi alle elevene koden, som elevene kan leke litt med, og lage sin egen beat. Programmet trenger 3 filer som må ligge i samme mappe som programmet, og disse 3 filene kan man lage selv (i Audacity) eller man kan laste de ned fra internett. Jeg legger ut tre filer som fungerer til formålet.
#-----------------------------------------
# Fire notasjoner per beat ('1' vil slå og '0' vil ikke slå)
BASS = "1000 0001 1010 0000"
SKARP = "0000 1000 0000 1000"
CHH = "1000"
V_BASS = 0.8 # Volum bass
V_SKARP = 0.5 # Volum skarp
V_CHH = 0.7 # Volum hihat
BPM = 105 # Antall beats per minutt
SEKUNDER = 5 # Hvor lenge skal beaten kjøre
#-----------------------------------------
from pygame import mixer, time # Importerer nødvendige funksjoner og objekter
mixer.init() # Starter mixer-modulen
klokke = time.Clock() # Oppretter et klokke-objekt som passer på tiden
# Renser BASS, SKARP og CHH ved å fjerne mellomrom
BASS = BASS.replace(" ", "")
SKARP = SKARP.replace(" ","")
CHH = CHH.replace(" ","")
#Oppretter lyd-objekter fra lydfiler
snd_chh = mixer.Sound("chh.wav")
snd_skarp = mixer.Sound("skarp.wav")
snd_bass = mixer.Sound("bass.wav")
# Setter volum på lyd-objektene
snd_bass.set_volume(V_BASS)
snd_skarp.set_volume(V_SKARP)
snd_chh.set_volume(V_CHH)
# Kjører en løkke som gjentas nødvendig antall ganger for at den skal vare i riktig antall sekunder
for i in range(4 * BPM * SEKUNDER // 60):
if CHH[i % len(CHH)] == "1": snd_chh.play() # Spill lyd dersom 1
if SKARP[i % len(SKARP)] == "1": snd_skarp.play()
if BASS[i % len(BASS)] == "1": snd_bass.play()
klokke.tick(4 * BPM/60)
Her er det tenkt at elever og lærer kun trenger å redigere på linje 3-10, og bygge sammen en beat som man kan benytte til å spille sammen med. Kun fantasien som setter grenser 😀
DigitAbel – for dypere læring