1. juuni 2017

Live coding ehk koodilaiv

Mis on koodilaiv?

Koodilaiv (ingl k live coding) on programmi kirjutamine reaalajas publiku ees olles. Enamasti harrastatakse seda muusika programmeerimisel ning seetõttu keskendungi selles postituses just muusikale. Koodilaiv võimaldab ühendada helide loomise, koodikirjutamise ja kuulajate ees esinemise. Seega inimene, kes sellega tegeleb kombineerib oma programmeerimise ja muusika loomise oskused.

Kuidas see käib?

Programmeerija-helilooja vajab esinemiseks sobivat tarkvara, arvutit ja sellega ühendatud projektorit koodi kuulajatele-vaatajatele kuvamiseks. Viimane on reaalajas muusika programmeerimise oluline aspekt. Osa esinejaid kirjutab enne esinemist koodi valmis ja neil on paigas plaan, kuidas nad oma koodi ehk oma muusikapala rahva ees edasi arendavad. Osa esinejaid jällegi alustavad tühjalt ekraanilt ja nende heliteos sünnib rahva ees improviseerides ja eksperimenteerides. Viimane sobib pigem vilunud koodilaivi esinejatele ning esimene vähemkogenenutele. Parema arusaama koodilaivist annab allolev video Andrew Sorenseniga, kes on tarkvara arendaja, programmeerija ja helilooja. Selles ingliskeelses videos demonstreerib ta reaalajas muusika programmeerimist, jagades samal ajal oma tegevuste kohta selgitusi.


Kas koodilaiv nõuab muusikalist haridust?

Reaalajas muusika programmeerimise jaoks on loodud lihtsamat ja keerulisemat tarkvara. Mõned neist eeldavad rohkem ja teised vähem teadmisi muusika loomisest. Kuigi muusikaline haridus tuleb kasuks, on peamine rütmitaju ja oskus hinnata, millised helid kokku kõlavad ja millised mitte. Lisaks veidi pealehakkamist, loovust ja huvi koodikirjutamise vastu ning võibki koodilaiviga proovi teha. Üks lihtne, tasuta ja algajatatele suunatud tarkvara on Sonic Pi, mis ei eelda kasutajalt põhjalikke teadmisi muusika loomisest ega programmeerimisest.


Mis on Sonic Pi?


Sonic Pi on vabavaraline, avatud lähtekoodiga muusika programmeerimise tarkvara, mille arendamisega tegeleb Sam Aaron. Esialgu oli see arendatud Raspberry Pi miniarvutile, mis kasutab Linux'i operatsioonisüsteemi, kuid nüüd saab Sonic Pi'd paigaldada ka Windows'i ja MacOS arvutitele. Sam Aaroni eesmärk oli luua tarkvara koolidele, et õpilased saaksid muusika- ja/või arvutitundides luua muusikat läbi koodikirjutamise. Sonic Pi võlu seisneb osaliselt selles, et see on piisavalt lihtne, et ka väheste muusikaliste teadmistega saab programmeerida huvitavaid ja mitmekülgseid heliteoseid. Õpilased peavad vaid olema loovad ja julgema eksperimenteerida.

Sonic Pi. Foto: Les Pounder

Kuidas arendab Sonic Pi programmeerimisoskust?

Sonic Pi põhineb Ruby programmeerimiskeelel ja tegemist on tekstilise programmeerimiskeelega. Muusikat programmeerides õpib koodikirjutamise põhikonstruktsioone ja nende kasutamist nagu tsüklid, if-laused, algoritmid, muutujad, juhuslikkus jne. Areneb algoritmiline ja loogiline mõtlemine ning probleemide lahendamise oskus.

Koodilaiv koolis

Muusika programmeerimine arendab nii õpilaste koodikirjutamise oskust, muusikalist kirjaoskust ja loovust ning seetõttu sobib hästi kooli muusika- ja/või arvutitundidesse. Nagu eelpool mainitud, on Sonic Pi tarkvara suunatud eelkõige õpilastele, seetõttu võikski just seda programmi tundides kasutada. Sonic Pi sobib hästi ka neile, kes pole varem (tekstilise) programmeerimisega kokku puutunud. Õpilastel võiks vanust olla 12 või rohkem eluaastat, sest kood tuleb ise kirjutada. Näidiskoodide jäljendamisest jääb väheseks, tuleb mõista koodi sisu.

Sonic Pi õppematerjalid

Sonic Pi's muusika loomine katse-eksituse teel ilma juhendmaterjalita ei ole mõistlik lähenemine. Internetis on mitmeid tasuta ingliskeelseid õppematerjale. Juhendi koos rohkete näidetega leiab samuti Sonic Pi'st endast, kuid ka see on ingliskeelne. Samas ei pruugi õppijate inglise keele tase olla piisavalt kõrge selleks, et nendest juhendidest aru saada. Kuna kasutan Sonic Pi'd põhikooliõpilastele programmeerimise õpetamiseks, siis tekkis vajadus eestikeelsete materjalide järele. Võttes aluseks ingliskeelsed materjalid, koostasin eestikeelse Sonic Pi õppematerjali. Praegu tegelen nende toimetamisega. Ja kuna ma pole kade inimene, siis on plaanis jagada oma materjali ka selles blogis. Palun lihtsalt natuke kannatust.

15.06.2017 Sonic Pi õppematerjal on nüüd olemas ja leiab selle siit.

Sonic Pi veebileht: sonic-pi.net

Jälgi KristiProget ka Facebookis.