Når musik og computer spiller sammen: Du kan kode musik.

Programmet Sonic Pi giver dig mulighed for at kode musik. Musiker Petayan indfører dig i musikkodningens verden.

Om Sonic Pi: Sonic Pi er en Open-Source Software skabt af Sam Aaron i samarbejde med University of Cambridge. Programmet blev oprindeligt udviklet til den lille mini-pc Raspberry Pi men fungerer fint på Windows og Mac. Sonic Pi er tænkt til at introducere og undervise børn i at kode. Det er ikke et krav, at læreren på forhånd ved noget om kodning eller musik men lidt kendskab vil klart være en fordel.

Af Jan Peter Skambraks, Redigeret af Andreas Kristiansen

Omkring år 2015 stødte jeg for første gang på Sonic Pi. En ven, der på dette tidspunkt læste anvendt matematik, anbefalede programmet til mig. Han mente, at det var en god måde at snuse til programmering på. Og desuden var det jo en spændende, ny måde at lave musik på.

Jeg anede på dette tidspunkt ikke, hvad kodning var – udover noget matematisk volapyk. Jeg downloadede Sonic Pi gratis fra hjemmesiden https://sonic-pi.net og gik igang med at skrive min allerførste sætning kode:

play 60

Computeren lavede et kort og bestemt “bip”, der varede i ca. 2 sekunder, og det var så det. Her havde jeg altså lavet en kommando, som computeren forstod og kunne udføre. Jeg fortsatte min rejse ind i dette matematiske univers. Snart lavede jeg små melodier som denne her:

Koderække:
use_bpm 82
play 60
sleep 1
play 67
sleep 1.5
play 67
sleep 0.5
play 64
sleep 1
play 60
sleep 1
play 69

(hvis du downloader Sonic Pi og skriver denne kode ind, så kan du selv gætte dig frem til, hvilken melodi jeg har prøvet at efterligne her)

Det er meget lettere, end det ser ud

Sonic Pi er designet til at lære børn og andre nysgerrige individer at kode, så der er indbygget en hel del tutorials, der guider dig igennem programmet.

Læs også: Når musik og teater spiller sammen: Musicalen på Fredericia Teater

Jeg meldte mig som frivillig i en forening, der hedder Coding Pirates, hvis mål er at introducere børn til kodning. Sammen med en fyr ved navn Rasmus, startede jeg en workshop i Sonic Pi.

Rasmus var lidt af en IT-nørd, og min plan var, at han skulle have styr på det tekniske, mens jeg kunne udfordre børnene musikalsk. Her fik jeg ved at se børnene kode og ved at iagttage Rasmus i hans tilgang til musik en masse nye indtryk, der berigede mig som musiker.

Video af Sam Aron, der livekoder i Sonic Pi

Kan udvikle dig som musiker

Jeg lærte en hel del om elektronisk musik, hvad lyd fysisk set er eller hvad det vil sige at bruge en ADSR-kurve. Desuden fik jeg en forståelse af hvordan kodning kan bruges til at berige musikken og hvor det ikke giver mening.

En af mine store svagheder som musiker, synes jeg selv, er at lave et spændende trommebeat. Her har Sonic Pi ved hjælp af såkaldt randomisering hjulpet mig med at lave langt mere spændende beats.

Det fungerer på den måde, at jeg starter med at lave et simpelt beat, og så eksporterer det til Sonic Pi som et sample. Her får jeg så computeren til at loope mit sample og fx. vælge et nyt startpunkt, en effekt eller sætte hastigheden op eller ned. Der ligner så noget som det her:

live_loop :beat do
with_fx :echo, phase: 0.25, decay: 12, mix: 0.25 do
with_fx :reverb, mix: 0.25 do
     with_fx :flanger, mix: 0.25 do
       sample yaxIn, "riddim", onset: pick, beat_stretch: 32, amp: vBeat, pan: -0.15
       sleep 32
     end
   end
 end
end

Selvom det måske ikke lyder af meget, så er det sjovt at eksperimentere med det, især hvis man som jeg producerer al sin musik selv.

En Sonic Pi-version af Aerodynamic med Daft Punk. Er de virkelig robotter.

Let at gå til, svært at mestre

Jeg bruger Sonic Pi lidt on/off. Min tilgang til softwaren er nok i høj grad præget af, at jeg er meget “klassisk” uddannet på en musikskole.

Jeg kan læse noder og har et grundlæggende kendskab til musikteori og -historie. Derfor bruger jeg måske Sonic Pi lidt for meget som en looper, fremfor at jeg virkelig kan vække alt det potentiale, der slumrer inde under dens overflade af etter og nuller.

Så hvis du vil høre på nogle virkelig imponerende kunstværker, så kan jeg kun anbefale forummet https://in-thread.sonic-pi.net. Her samles Sonic Pi entusiaster for at drøfte deres seneste sange, få hjælp til en bestemt udfordring eller bare at diskutere nye funktioner, der kunne gøre Sonic Pi sjovere at bruge.

Et andet stort aspekt af Sonic Pi er, at det opfordrer til såkaldt live-coding – en bevægelse, der vokser frem overalt på kloden. Det går grundlæggende ud på, at man skaber kode live og foran et publikum. Så hvis du tænker, at det lyder spændende, så hold øje med om, der ikke i din by arrangeres en algorave eller noget lignende. Så kan det jo være du for lov til at optræde med din nyeste Sonic Pi sang.

Prøv at kode Petayans nyeste sang

(Hvis du har lyst til at lege med min nyeste sang, så kan du se kode her. Husk at downloade de tilsvarende samples og ændre navnet på folderen i selve koden.)

https://drive.google.com/open?id=16nQ9eJaSPokzwwWew_amtpF4wuWg-26L

#Yaxche Interstellar // 2019 by PETAYAN

yaxIn = “C:/Users/…” #your own path to sample folder here
use_bpm 103
set_volume! 5

########Volumen-control################
vPeach = 1
vDrumsBits = 1
vDrums = 2
vBass = 2
vBassSlice = 0
vBongos = 1
vGuiero = 0.5
vShaker = 0.5
vDubDelay = 0.25
vDubDelay2 = 1
#####################################

live_loop :Peach do
with_fx :reverb, mix: 0.25 do
with_fx :flanger, mix: 0.25 do
sample yaxIn, “chiptune101”, beat_stretch: 32, amp: vPeach, pan: -0.5
sleep 32
end
end
end

live_loop :BeatBits, sync: :Peach do
sample yaxIn, “drums”, onset: pick, beat_stretch: rrand(1, 32), cutoff: rrand(70, 120), amp: vDrumsBits, pan: -0.2
sleep 1
end

live_loop :Beat, sync: :Peach do
sample yaxIn, “drums”, beat_stretch: 32, amp: vDrums
sleep 32
end

live_loop :Bass, sync: :Peach do
sample yaxIn, “Bass”, beat_stretch: 32, amp: vBass, cutoff: 90
sleep 32
end

live_loop :BassSlice, sync: :Peach do
sample yaxIn, “Bass”, onset: pick, beat_stretch: 32, amp: vBassSlice, cutoff: 100
sleep 1
end

live_loop :Bongos, sync: :Peach do
sample yaxIn, “Bongos”, beat_stretch: 32, amp: vBongos, pan: 0.5
sleep 32
end

live_loop :Guiero, sync: :Peach do
sample yaxIn, “Guiero”, beat_stretch: 32, amp: vGuiero, pan: 0.35
sleep 32
end

live_loop :Shaker, sync: :Peach do
sample yaxIn, “Shaker”, beat_stretch: 32, amp: vShaker, pan: -0.35
sleep 32
end

live_loop :DubDelay, sync: :Peach do
with_fx :echo, mix: 0.75, phase: 0.3, decay: 16 do
with_fx :bitcrusher, mix: 0.45, bits: 10, cutoff: rrand(70, 110) do
sample yaxIn, “DubDelay”, onset: pick, beat_stretch: 32, amp: vDubDelay, pan: -0.2
sleep 4
end
end
end

live_loop :DubDelay2, sync: :Peach do
#with_fx :echo, mix: 1, phase: 0.75, decay: 16 do
sample yaxIn, “DubDelay”, beat_stretch: 32, amp: vDubDelay2, pan: 0.2
sleep 32
#end
end


Skriv en kommentar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *