Muziek maken met LIVE CODING! www.toekomstklas.nl 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. www.toekomstklas.nl En nu?! We gaan beginnen met het programmeren van een ‘live loop’. Typ de volgende code in en druk op ‘run’ (afspelen). live_loop :beat do sample :bd_haus sleep 0.5 end Nu ben je bijna een echte dj! Maar wat heb je nou precies ingevoerd? Laten we daar eens naar kijken…. Wat zegt de code??? 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. sleep 0.5 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! end Door dit woord vertel je de computer dat de loop is afgelopen. Als de computer alle regels van de code heeft uitgevoerd en bij ‘end’ komt, start hij de loop weer opnieuw. www.toekomstklas.nl Tijd voor wat geluiden! Typ de volgende code eens in onder de code die er al staat (de beat): live_loop :achtergrondkoor do sample :ambi_choir, rate: 0.4 sleep 1 end Druk nu op run. Nu heb je ook een achtergrondkoor! Hoe gaaf! Wat zegt de code??? 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. www.toekomstklas.nl Effecten toevoegen Je kunt nu dus beats starten en geluiden toevoegen. Maar ‘standaard’ geluiden zijn natuurlijk ook maar standaard….. Om alle geluiden wat spannender 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 sleep 0.5 end end Druk nu op ‘run’. Hoor je de effecten? Wat zegt de code??? 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 klinkend 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. sleep 0.5 end Ik voeg een korte pauze in. En laat de computer weten dat dit het eind is van de loop. www.toekomstklas.nl 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 volgende code in: live_loop :melodie do play 52 sleep 0.25 play 55 sleep 0.5 play 59 sleep 0.25 play 62 sleep 0.5 play 66 sleep 0.25 play 69 sleep 0.5 play 73 sleep 0.25 end Druk op ‘run’! Wat een feest! Wat zegt de code??? 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! sleep 0.25 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. www.toekomstklas.nl 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 , attack: 1 , viberato_rate: 6 , pan: -1 Hiermee regel je de geluidssterkte. Kies zelf een getal tussen 0-1. Hiermee regel je de lengte van een geluid. 0.1 is kort, 1 is lang. De trilling van het geluid kan je hiermee regelen. Hiermee verander je het geluid van links (-1) naar rechts (1) with_fx with_fx with_fx with_fx 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! :echo :flanger :krush :reverb 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! www.toekomstklas.nl