Osaat kirjoittaa tekstiä tietokoneella. Osaat rytmejä ainakin tititoimalla ja säveltasoja solfaamalla tai nuottinimillä. Noin 12-vuotiaille ja vanhemmille.
kannettavan tietokoneen (Linux, Mac, Windows)
Sonic Pi -ohjelman
kuulokkeet (omat tai Juvenalian).
Musiikkia voi tehdä ohjelmoimalla, siis kirjoittamalla koodia. Tietokonemusiikin alkuperäinen tekotapa 1950-luvulta lähtien olikin koodaaminen. Ohjelmakoodi annettiin tietokoneen prosessoitavaksi, ja aikansa laskettuaan kone tuotti ääntä. Musiikkiohjelmointikieliä käytetään ja kehitetään yhä, vaikka useimmille tutumpia ovatkin graafisen käyttöliittymän ja kosketusnäytön avulla toimivat musiikinteko-ohjelmat.
Nykyään musiikkiohjelmointi on reaaliaikaista: äänen valmistumista ei tarvitse odottaa, vaan kone soittaa musiikin sitä mukaa kuin kirjoitat sitä. Musiikin kirjoittaminen ohjelmoimalla auttaa ymmärtämään musiikin rakenteita ja äänen yksityiskohtia. Samalla oppii ohjelmoinnin perusteita.
Ohjelmoimalla tuotettu ääni saattaa kuulostaa hyvin erilaiselta kuin tavanomaisilla menetelmillä sävelletty musiikki, ja tulokset ovat usein yllättäviä ja jännittäviä.
Tässä pajassa käytetään Sonic Pi -ohjelmaa, joka perustuu ruby-ohjelmointikieleen. Hae se omaan koneeseesi osoitteesta sonic-pi.net. Kuuntele siellä olevia ääniesimerkkejä ja vilkaise koodinpätkiä, joilla ne on tuotettu. Niitä ei tarvitse vielä ymmärtää, mutta jos tunnet yhtään ohjelmointia, saatat havaita yhteyksiä koodin ja äänen välillä. Hyvä keino on kopioida ohjeista esimerkkejä koodi-ikkunaan, soittaa ne, tehdä muutoksia ja kuunnella miten ne vaikuttavat.
Voit halutessasi tutkia Mehackitin suomenkielistä Sonic Pi -kurssia. Tähän pajaan tullessasi sinun ei kuitenkaan tarvitse osata vielä ohjelmoida.
Avaa tämä oppitunti ja tee kaikki esimerkit itse Sonic Pillä. Lue ensimmäisellä kerralla Johdanto, Melodian soittaminen ja Toistaminen. Kokeile samalla itse ja tee omia versioita oppitunnin esimerkeistä. Seuraavalla kerralla tutustu osastoon Kappaleen tekeminen ja sen alaosastoihin, kokeile esimerkkejä ja muuttele niitä omiksi versioiksi.
Voit kopioida tekstin suoraan Sonic Pin koodi-ikkunaan, kuunnella, tehdä muutoksia ja kuunnella mitä muutokset aiheuttivat.
Tee oma melodia, jossa käytät play- ja sleep-komentoja ja x.times do … end -rakennetta.
Tee Mehackit-oppitunnilla näytetty kappale (Johdanto- ja Kappaleen tekeminen -osat) ja muuta säveliä ja rytmejä niin, että siitä tulee sinun oma versiosi.
Jaa koodi sähköpostilla opettajalle.
Seuraava on yhteenvetoa perusasioista. Jos kävit yllä neuvotun oppitunnin läpi, tätä kappaletta ei ole välttämätöntä lukea.
Yhden sävelen soitto: play 60 Numerot vastaavat säveliä niin, että 60 on keski-c. Asteikon sävelten välissä olevia ääniä voi soittaa kirjoittamalla desimaaleja: play 59.34 Sävelen voi antaa myös kirjaimella (ylennysmerkkiä vastaa s ja alennusta b) ja oktaavialan ilmoittaa numerolla. Yksiviivaisen oktaavin fis: play :Fs4
Peräkkäin kirjoitetut sävelet soivat yhtä aikaa. Rytmi saadaan aikaan kirjoittamalla play-käskyjen väliin sleep ja aika sekunteina: sleep 0.5
Soitossa käytettävä ääni määrätään kirjoittamalla alkuun use_synth :saw Kaksoispisteen jälkeen on äänilähteen nimi, ja ohjelma ehdottaa täydennyksiä, kun alat kirjoittaa. Kaikki äänilähteet on lueteltu ohjevalikon Syntetisaattorit-kohdassa. Kaikki sävelet soitetaan määrätyllä äänellä siihen asti, kun määrätään uusi äänilähde.
Yksittäisen sävelen voimakkuus (amp) ja suunta (pan) voidaan määrätä. Puolella voimakkuudella kokonaan vasemmalta: play 65, amp: 0.5, pan: -1
Syntetisoitujen sävelien lisäksi voidaan soittaa valmiita ääninäytteitä. Niitä sisältyy Sonic Pihin iso joukko, ja lisäksi voidaan käyttää itse äänitettyjä näytteitä. Näytteen soitto: sample :ambi_dark_woosh Kaikki näytteet on lueteltu ohjeiden Samplet-kohdassa.
Edellä kerrotut asiat voisi aivan yhtä hyvin tehdä nuotinkirjoitusohjelmalla tai tavallisella musiikinteko-ohjelmalla, tai ne voisi soittaa itse. Ne eivät olekaan vielä varsinaista ohjelmointia. Ohjelmoinnin hauskuus on siinä, että luomme toistorakenteita, ehtoja, muuttujia ja funktioita, joiden avulla kone tuottaa musiikkia meidän antamiemme sääntöjen mukaan.
Monta säveltä voidaan soittaa yhtä aikaa, kun ne annetaan listana. Nämä tarkoittavat samaa:
play [52, 55, 59]
play [:E3, :G3, :B3]
play chord(:E3, :minor)
Sointu voidaan soittaa murtosointuna ja antaa nopeus: play_pattern_timed chord(:E3, :m7), 0.25 Myös asteikko voidaan soittaa halutulla nopeudella: play_pattern_timed scale(:c3, :major), 0.125, release: 0.1 Tutki ja kokeile, mitä kaikkia sointuja ja asteikkoja on rakennettu Sonic Pihin valmiiksi. Luettelo löytyy ohjeiden Kieli-kohdasta (chord, scale).
Soittokäskyt voidaan koota yhteen lohkoiksi, joita puolestaan voidaan käyttää musiikin rakennuspalikoina. Lohko muodostetaan kirjoittamalla sen alkuun do ja loppuun end. Toistamalla lohkoja saadaan laajempia musiikin rakenneosia. Seuraavat esimerkit ovat suoraan Sonic Pin ohjeista.
Toisto:
4.times do
play 50
sleep 0.5
end
8.times do
play 55, release: 0.2
sleep 0.25
end
4.times do
play 50
sleep 0.5
end
Toistot voivat olla myös sisäkkäisiä. Tässä on rumpukomppi:
4.times do
sample :drum_heavy_kick
2.times do
sample :elec_blip2, rate: 2
sleep 0.25
end
sample :elec_snare
4.times do
sample :drum_tom_mid_soft
sleep 0.125
end
end
Loputon toisto saadaan kirjoittamalla lohkon alkuun 4.times-ilmaisun sijaan loop.
Ehto:
loop do
if one_in(2) #arvotaan yksi mahdollisuus kahdesta
sample :drum_heavy_kick #jos toteutuu, soitetaan rumpu
else #muuten soitetaan lautanen
sample :drum_cymbal_closed
end
sleep 0.5
end
Sonic Pille on valmiina opas suomeksi (ja monella muulla kielellä). Voit kerrata sieltä asioita ja opetella omin päin lisää. Tunnilla käsittelemme suunnilleen samoja asioita, ehkä vähän eri painotuksin.
Tämän kerran tavoite on jatkaa oman kappaleen tekemistä niin, että siinä on erilaisia peräkkäisiä osia ja yhtä aikaa soivia osuuksia. Lisäksi käytetään hyväksi Sonic Pin sisältämiä valmiita sointuja ja asteikkoja.
Muista ero silmukkarakenteissa:
live_loop soi jatkuvasti siihen asti kunnes painetaan stoppia. Kappale voi sisältää monta live_loop-silmukkaa. Ne soivat yhtä aikaa ja voivat olla eripituisia. Jokaisella silmukalla pitää olla oma nimi.
live_loop :melodia do
#soittokäskyt
end
Jos haluat tietyn määrän toistoja, käytä rakennetta x.times do … end. Tällaiset silmukat saadaan soimaan yhtä aikaa käyttämällä in_thread-rakennetta. Nämä kaksi silmukkaa soivat yhtä aikaa:
in_thread do
loop do
#soittokäskyt
end
end
loop do
#soittokäskyt
end
Kannattaa ensin päättää, teetkö määrämittaisen kappaleen, jossa on toistuvia, muuntelevia ja erilaisia osia peräkkäin (esim. säkeistörakenne). Tällöin käytät rakenteita loop do, in_thread do ja x.times do. Vai teetkö jatkuvan kappaleen käyttämällä live_loop-rakennetta. Tällöin saat vaihtelua esim. eripituisilla silmukoilla.
Tässä on kappale, jonka melodiat ja rytmit on kirjoitettu listoina. Kun ne toistuvat, niihin voidaan viitata suoraan nimellä.