Muziek maken met LIVE CODING!
Wat is Sonic Pi? Sonic Pi is een programma waarmee je live muziek kunt maken door codes te gebruiken. Sonic Pi maakt eigenlijk van een computer een instrument! Hoe werkt Sonic Pi? Sonic Pi werkt met live loops. Dat zijn geluiden die zichzelf herhalen. Dit ken je vast wel! Denk maar eens aan een beat van een dj. Dat is eigenlijk het geluid van een bass drum die steeds wordt herhaald. Door live loops samen te voegen, te veranderen en naar jouw smaak aan te passen, maak je muziek! Starten met Sonic Pi. Sonic Pi is compleet in het Engels. Hierdoor kan het voorkomen dat je sommige dingen niet direct begrijpt. Dat is niet erg, vraag het gewoon! Sonic Pi is opgedeeld in 4 schermgedeeltes: - Het linkerbovenscherm is het codescherm. Hier vul je alle codes in. Hier kan je gewoon in typen. - Het rechterbovenscherm is het afspeelscherm. Hierin kan je zien wat er wordt afgespeeld op het moment. - Het scherm linksonder is een voorbeeldscherm. Hier staat de uitleg over het programma. Ook kan je hier voorbeeldcodes vinden. Ben je goed in Engels? Probeer het maar eens door te bladeren! - Het scherm rechtsonder is het informatiescherm. Hier komt alle informatie in te staan. Bijvoorbeeld wanneer je een fout in de code hebt gemaakt.
En nu?! We gaan beginnen met het programmeren van een live loop. Typ de volge code in en druk op run (afspelen). live_loop :beat do sample :bd_haus Nu ben je bijna een echte dj! Maar wat heb je nou precies ingevoerd? Laten we daar eens naar kijken. live_loop :beats do Deze regel zorgt ervoor dat een loop wordt gestart. Live_loop betekent herhaal, je zegt tegen de computer dat de code die je nu gaat typen moet worden herhaald. :beats is de naam van mijn loop. Je kunt hier van maken wat je wilt. Ik noem het beats want deze loop is mijn beat. Do betekent doen. Je vertelt de computer dat hij na deze regel iets moet gaan doen. sample :bd_haus Sample betekent patroon. De computer begrijpt dat je een patroon wilt afspelen. Een geluid is een patroon. : bd_haus is het geluid dat je gaat afspelen. Alle geluiden met bd zijn bijvoorbeeld bassdrums. Een erg belangrijke coderegel! Je wilt natuurlijk dat er een (korte) pauze zit tussen de geluidjes. Hiervoor gebruik je de regel sleep. Hoe groter het getal achter sleep, hoe langer de rust duurt. Zonder sleep werkt de loop niet! Door dit woord vertel je de computer dat de loop is afgelopen. Als de computer alle regels van de code heeft uitgevoerd en bij komt, start hij de loop weer opnieuw.
Tijd voor wat geluiden! Typ de volge code eens in onder de code die er al staat (de beat): live_loop :achtergrondkoor do sample :ambi_choir, rate: 0.4 sleep 1 Druk nu op run. Nu heb je ook een achtergrondkoor! Hoe gaaf! live_loop :achtergrondkoor do Ook hier vul je eerst live_loop in. Je start met een nieuwe loop. Ik noem de loop achtergrondkoor. Om dat te doen toets ik :achtergrondkoor in. Ik had hem ook frietkar kunnen noemen, dat heeft alleen niets met het koortje te maken. Ik typ do zodat de loop ook start. sample :ambi_choir, rate: 0.4 Ik start weer een nieuw geluid (patroon). Hiervoor typ ik sample aan het begin. :ambi_choir is de naam van het geluid., rate: 0.4 is nieuw! Het getal na rate geeft de toonhoogte aan van het geluid aan. Je kunt deze dus veranderen in 0.6, 0.33, 1.6 of zelfs -1. Probeer maar eens uit! sleep 1 Zo lang duurt de pauze. Dit kan je dus ook zelf bepalen! Maar vergeet niet, elk geluid heeft een pauze nodig! End Het einde van de loop.
Effecten toevoegen Je kunt nu dus beats starten en geluiden toevoegen. Maar standaard geluiden zijn natuurlijk ook maar standaard.. Om alle geluiden wat spanner te maken gebruiken we effecten. Wis alle vorige codes en typ deze code maar eens in: live_loop :beats do sample :bd_tek with_fx :echo, phase: 0.125, mix: 0.4 do sample :drum_cymbal_soft, sustain: 0, release: 0.1 Druk nu op run. Hoor je de effecten? live_loop :beats do De computer start een nieuwe loop. sample :bd_tek Ik gebruik het geluid (patroon) bd_tek. PRO TIP: vind je het niet vet genoeg? Typ dan na deze code, amp: 1 (of een ander getal tussen 0 en 1). Nu is het pas een zware bassdrum! with_fx :echo, phase: 0.125, mix: 0.4 do with_fx betekent met effect. Het effect dat ik gebruik heet echo (daarom typ ik :echo). Phase: 0.125 zorgt voor een groter echo-effect. Je kunt die getallen ook veranderen voor andere waardes. Mix: 0.4 dit zorgt voor de zwaarte van het effect. Hoeveel effect geef je aan het geluid. sample :drum_cymbal_soft, sustain: 0, release: 0.1 Hiermee voeg ik een ander geluid (patroon) toe. Namelijk een zacht klink bekken van een drum (drum_cymbal_soft). Sustain: 0 regelt hoe lang het geluid op dezelfde geluidssterkte doorklinkt. Release: 0.1 regelt hoe lang het duurt voordat het geluid afsterft. Ik voeg een korte pauze in. En laat de computer weten dat dit het eind is van de loop.
Losse noten en melodietjes Natuurlijk kan je ook losse noten of melodietjes inprogrammeren. Dat doe je met het commando play (speel). Maak het codeveld leeg en typ de volge code in: live_loop :melodie do play 52 play 55 play 59 play 62 play 66 play 69 play 73 Druk op run! Wat een feest! live_loop :melodie do Ik begin de loop. Ik noem hem melodie. play 52 Speel een noot met de toonhoogte 52. Hoe hoger het cijfer, des te hoger de noot! Een korte pauze voordat de andere noot wordt gespeeld. En zo verder. Elke play geeft een andere toon. Je kunt nu voorafgaand aan de play commando s ook de code use_synth gebruiken. Als je na use_synth een spatie en daarna : typt, kan je een synthesizer geluid kiezen.
En nu?! Zoals met al het programmeren en coderen. Proberen, proberen, proberen En nog een keer proberen! Wees trots op je werk. Geef niet snel op en vraag anderen om hulp wanneer je het even niet meer weet! Wel heb ik nog een aantal leuke toevoegingen. Probeer ze maar eens aan je code vast te plakken. Wie weet gebeurt er wel iets heel leuks!, amp: 1 Hiermee regel je de geluidssterkte. Kies zelf een getal tussen 0-1., attack: 1 Hiermee regel je de lengte van een geluid. 0.1 is kort, 1 is lang., viberato_rate: 6 De trilling van het geluid kan je hiermee regelen., pan: -1 Hiermee verander je het geluid van links (-1) naar rechts (1) with_fx :echo with_fx :flanger with_fx :krush with_fx :reverb Voeg een echo toe aan een geluid Een flanger is een soort woosh effect Verpletter het geluid! Hiermee lijk je net alsof je in een grote ruimte staat! En dan nog iets sample :loop_(en hier een naam) Hiermee kan je drumloops en/of synthesizerloops inladen die door iemand anders gemaakt zijn. Dat kan een goed begin zijn van een liedje! Heel veel plezier!