Bang van programmeren? Speel muziek!
Uitzending do 18:00 ** May 25th, 2017 by wim.webgang ** Bang van programmeren?
Wie van jullie is van plan om schrijver te worden? … (geen enkele vinger gaat naar boven)
- Waarom hebben jullie dan allemaal leren schrijven?
Een ronduit belachelijke en kromgetrokken redenering in vraagvorm, lijkt de opening van de TED talk van Sam Aaron.
Maar hij trekt ze terug recht; bekijk het andersom; als je kan schrijven, moet je dan schrijver worden? Of zijn er allerlei andere leuke en/of nuttige dingen die je ermee kan doen?
De vraag stellen is ze beantwoorden, en de volgende vraag is: hoe? Raspberry Pi was al een deel van het antwoord, en bereikte kinderen in scholen in het VK en de rest van de wereld. Daarmee zette Sam Aaron de volgende stap.
- Hij maakte een programmeeromgeving voor de Raspberry Pi, het kleine computerbordje om een pc of ander project mee te bouwen.
- Hij maakte ook een nieuw muziekprogramma om op een heel laagdrempelige manier muziek te maken met de computer en er bovendien zelfs live mee op te kunnen treden.
Sonic Pi
Beide programma’s heten: Sonic Pi, en het is dus maar één en het zelfde programma.
Speel!
(Play 80)
We beginnen met zowat het eenvoudigste wat je kan doen aan “programmeren” in Sonic Pi: speel een toon. Tik play 80 en duw op de “run” knop.
Je kan evengoed play 60, play 70 … welk getal, uitproberen kan geen kwaad.
Dat is een van de goede punten van Sonic Pi: (1) Gemaakt om te spelen, te proberen, je kan niets fout doen.
doe je iets fout, dan helpt Sonic Pi door uitleg te geven wat er fout is, meestal een verkeerde letter of leesteken punt, komma, enz, zodat je het snel kan verbeteren.
Je kan stukjes onder elkaar plakken om ze te herhalen, of je kan in het vervolg kleine wijzigingen aanbrengen zodat de muziek evolueert. Maar kunnen we de computer niet inschakelen om de herhaling uit te voeren?
live_loop
Sterk punt nummer (2) is live_loop …. end ; tussen deze code zet je bv de play 80 lijn, erna een pauze met sleep 1, en dan RUN er begint een loopje te spelen.
Maar dat is nog niet alles (want dat zou je ook kunnen met een repeat commando); de live in live_loop moet je letterlijk nemen. Verander de 80 in 70 en druk terug op RUN, en de muziek blijft gewoon doorlopen, maar ondertussen wordt de volgende versie “geladen”, en als de loop terug aan het begin komt, neemt hij die nieuwe versie. Zonder onderbreking. Je kan dus live je “programma” = je muziek- wijzigen.
Samples gebruiken
Sterk nummer (3) is dat je samples kan laden. Je kan kiezen het een heleboel ingebouwde muziekinstrumenten, dikwijls legendarische electronische synthesizers en drumcomputers, als de
Je kan stukjes onder elkaar zetten, loopjes dus, die dan samen lopen; synchroniseren regel je met de sleeps.
Je kan verschillende dingen klaarzetten in andere tabbladen, en die allemaal starten, ook naast elkaar.
Je kan de snelheid veranderen, effecten toepassen als reverb, filters gebruiken, …
(wordt vervolgd – hier wat code .. )
—
Nog even terug naar de software, waarop het draait en hoe te installeren…
Pixel gaat zijn eigen weg…
Sonic Pi werd gemaakt voor de goedkope Raspberry Pi (zo’n 40 euro), laagdrempelig computerbordje.
De Sonic Pi muzieksoftware is ingebouwd in het standaard desktopsysteem voor de Raspberry Pi, en dat heet “pixel”
Zie ook voorheen onze bespreking van Pixel op netbook een paar weken geleden; Je kan Raspberry Pi software op de netbook installeren (zelfs met beperkte 1 GB RAM geheugen; bv vanaf externe USB-DVD-drive.
Of je kan het draaien van een alternatieve opstartschijf, bv een voorbereide Pixel-SD kaart in de sleuf, en SD kaar kiezen als opstartapparaat.
Bv met behulp van OpenSUSE:
Yast, Partitioner: verwijder bestaande partitie en maak nieuwe Linux partitie op de SD kaart.
Steek de DVD (waar de ISO op staat) in de drive.
Om te zoeken hoe de drives heten; bv de micro sd kaart waarop de distro moet komen:
lsblk
Om de ISO van de DVD op de kaart te zetten (mmcblk0p1 is de naam in onze situatie, pas aan):
dd if=/var/run/media/cybr/Debian\ jessie\ 20/dvd/files/2016-12-13-pixel-x86-jessie.iso of=/dev/mmcblk0p1
Dit kan een tijdje duren…. en leidde hier tot:
2709120+0 records in
2709120+0 records out
1387069440 bytes (1.4 GB) copied, 502.943 s, 2.8 MB/s
(achteraf aangevuld, dus niet helemaal zeker dat het deze was):
# Welcome to Sonic Pi v2.10
live_loop :beats do
sample :bd_haus, amp: rrand(0.5, 0.9)
sleep 0.5
end
#
live_loop :choral_drone do
sample :ambi_choir, rate: rrand(0.2, 0.4)
sleep 1.5
end
en alle mogelijke variaties..
Eentje die we niet gebruikten:
# Welcome to Sonic Pi v2.10
live_loop :beats do
sample :bd_haus, amp: rrand(0.5, 0.9)
sleep 0.5
end
#
live_loop :choral_drone do
sample :ambi_choir, rate: rrand(0.2, 0.8)
sleep 1.5
end