Musiikkiohjelmointia – Sonic PI

SonicPI- ohjelman voi ladata täältä: http://sonic-pi.net/

SonicPI:llä tehty biisi voi kuulostaa vaikka tältä: Introduction

Käynnistäkää SonicPI- ohjelmat koneiltanne. Tutustutaan yhdessä käyttöliittymään, joka koostuu kolmesta pääikkunasta:

  • Ohjelmointipaneeli koodin kirjoittamista varten
  • Lokipaneeli koodin suorituksen seuraamista varten
  • Apupaneelista löytyy help, jossa hyödyllisiä esimerkkejä ja ohjeita koodaamiseen: komennoista, äänistä, efekteistä..

Tehdään yhdessä muutama kokeilu, jonka jälkeen voitte tehdä musaa itse. Tämä on ns. LIVE-koodausta ja sitä voisi verrata vaikka kitaran näppäilyyn. Muistakaa, että tässä musan tekemisessä ette voi tehdä virheitä, ainoastaan uusia ominaisuuksia !!

Koodausvinkki 1.
Koodatessa tarvii normaalitilanteessa vain vähän kirjoittaa tekstiä. Yleensä riittää, kun osaa kopioida koodia paikasta toiseen ja tehdä siihen tarvittavat muutokset.
Tunteeko porukka hiirellä kopioinnin, tai komennot CTRL+C ja CTRL+V ??
Jos kaikki ei tunne, niin näytän projektorilla yhteisesti.

MELODIAN SOITTAMINEN:

Avaa Apupaneelista vasemmalta Tuturial ja sieltä 2.1 Your first beeps- kappale.

  • Kokeillaan koodata ääniä.
    Kirjoittakaa ensin PLAY 70. Miltä kuulostaa?
    Kokeilkaa sitten muuttaa numeroa, mitä vaikutti?HUOM: voit kopioida esimerkkikoodit tästä sivulta!!
   play 70
  • Sitten voit laittaa useamman äänen peräkkäin. Kokeile!
play 72
play 75
play 79
  • Huomasit varmaan, että äänet eivät soi peräkkäin, vaan yhtäaikaa.
  • Melodian saa aikaan laittamalla SLEEP- komentoja PLAY-komentojen väliin.
    SLEEP 1 = odottaa kokonaisen iskun. Mitä pienempi arvo, sitä lyhyemmän aikaa odotetaan.
play 72
sleep 1
play 75
sleep 1
play 79
  • Jos hallitset nuotit, voit käyttää myös kirjamia numeroiden tilalla.
play :C
sleep 0.5
play :D
sleep 0.5
play :E
  • Jos tunnet nuotit, niin tämä taulukko kertoo miten eri tauot ja sävelpituudet toimivat SonicPI:ssä:

Tässä opittiin tapa tehdä ääniä itse.

 

TOISTAMINEN:

Kun sinulla on melodia koodattuna, haluat ehkä toistaa sitä useamman kerran. Muistat ehkä aiemmilta koodauksen tunneilta Toista- komennot (=silmukka). SonicPI:ssä komento on ”2. times do” ja ”end”. Kakkonen kertoo montako kertaa rivit toistetaan.

2.times do
  play :c4
  sleep 0.5
  play :d4
  sleep 0.5
  play :e4
  sleep 0.5
  play :c4
  sleep 0.5
end

… ja toistoja voi lisätä myös sisäkkäin:

4.times do
  4.times do
    play :c4
    sleep 0.25
  end
  play :d4
  sleep 0.5
  play :f4
  sleep 0.5
end

Nyt olet oppinut tekemään jo melodian.

 

BIISIN TEKEMINEN (RUMPUBIITTI):

Tutustutaan ensin rumpubiitin tekemiseen LIVE_LOOP-komennon avulla. Sitten lisätään biisiin basso- ja päämelodiat.

  • LIVE_LOOP:n sisällä olevia rivejä toistetaan, niin kauan, että painetaan STOP-nappula.
  • LIVE_LOOP ajetaan yhtäaikaa muiden looppien kanssa.
  • LIVE_LOOP:lle annetaan nimi : kaksoispisteen jälkeen.
  • LIVE_LOOP:n sisällä on oltava vähintään yksi SLEEP.
live_loop :rummut do
  sleep 1
end

Kopioi tästä rumpubiitti itsellesi:

use_bpm 100

live_loop :rummut do
  sample :drum_heavy_kick
  sleep 1
  sample :drum_snare_hard
  sleep 1
  sample :drum_heavy_kick
  sleep 1
  sample :drum_snare_hard
  sleep 1
end
  • Kirjoita  :rummut tilalle :oma_nimi
  • Klikkaa RUN- nappulaa.
  • Mitä kuuluu ?? Tämä on perusbiitti, johon voit nyt lisätä muita ääniä.
  • STOP- nappula pysäyttää biisin.
  • LIVE_LOOP:in edessä on USE_BPM- komento. Sillä voit muuttaa biitin tempoa eli sitä, kuinka tiheään ääni kuuluu.
  • Voit vaihtaa SAMLE- rivejä tai lisätä niitä.
    Tee uusi rivi ja kirjoita siihen SAMPLE ja paina välilyönti-näppäintä, niin ohjelma tarjoaa sinulle vaihtoehdot millaisia sampeja voit lisätä.
    SAMPLE-komennon jälkeen tulee : kaksoispiste ja samplen nimi.

 

BIISIN TEKEMINEN (BASSORAITA):

Kopioit tästä bassoraitaa varten koodiisi uusi LIVE_LOOP-komento.

live_loop :basso do
  play :c2
  sleep 0.25
  play :c2
  sleep 2
  play :e2
  sleep 0.75
  play :f2
  sleep 1
end

PLAY-komennon äänen voi muuntaa eri kuuloiseksi USE_SYNTH- komennon avulla.
Kirjoita LIVE_LOOP- rivin jälkeen USE_SYNTH- komento ja paina välilyöntinäppäintä, niin sinulle avautuu lista, josta valita. Kokeile!

 use_synth :chipbass

Voit myös haluta soittaa säveliä eri pituisina. Tällöin voit lisätä PLAY-komentoon ATTACK ja RELEASE parametrin. Kokeile!

play 60, attack: 1, release: 3

 

BIISIN TEKEMINEN (PÄÄMELODIA):

Nyt biisin taustaäänet on kunnossa, ja puuttuu enää päämelodia. Se voidaan kirjoittaa PLAY ja SLEEP- komennoilla, mutta helpompi tapa on käyttää PLAY_PATTERN_TIMED- komentoa.

Kopioi tästä päämelodiaa varten uusi LIVE_LOOP.

live_loop :melodia do
  play_pattern_timed [:c4, :e4, :f4, :g4, :f4, :e4, :f4, :g4, :f4, :e4, :f4], [0.25, 0.25, 0.25, 1.5, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25]
end

Nyt sinulla on biisi tehtynä. Kokeile muuttaa arvoja, niin saat muokattu biisistä ihan omanlaisesi !!

KAPPALEEN NAUHOITTAMINEN:

Kun biisi on valmis, haluat ehkä nauhoittaa sen ja kuunnella sitä myöhemminkin. Se tapahtuu näin:

  1. Paina REC painiketta.
  2. Nauhoitus on nyt päällä, joten laita biisi kuulumana RUN painikkeella.
  3. Kun haluat lopettaa nauhoituksen paina REC painiketta uudelleen.
  4. Nyt aukeaa tallennusikkuna, johon voi antaa biisille nimen.

Kun olette tallentaneet oman biisin omalle levylle, niin pyydä koodiopelta muistitikku, johon laitat biisin talteen. Voidaan kuunnella niitä yhteisesti. Oman biisin voitte kuunnella kaksoisklikkaamalla biisin wav-tiedostoa resursisen hallinnasta!

VALMIIT ESIMERKIT:

Tästä linkistä voi katsella valmiita esimerkkejä. Niistä voi myös kopioida koodin omaan SonicPI ohjelmaan, ja muokata koodia omaksi biisiksi!

HIPHOP beetti:

# Hip Hop Beat
# Mehackit 2016

use_bpm 90

live_loop :biitti do
  sample :bd_808, rate: 1, amp: 4
  sleep 1
  sample :elec_hi_snare, amp: 1
  sleep 1
  sample :bd_808, rate: 1, amp: 4
  sleep 1
  sample :elec_hi_snare, amp: 1
  sleep 1
end

live_loop :luuppi do
  sample :loop_breakbeat, beat_stretch: 4
  sleep 4
end

live_loop :kitaramelodia do
  sample :guit_e_fifths, rate: 0.5, amp: 1.5
  sample :guit_e_fifths, rate: 1, amp: 0.8
  sleep 1.5
  sample :guit_e_fifths, rate: 1.5, amp: 0.8
  sleep 1.5
  sample :guit_e_fifths, rate: 1.4, amp: 0.8
  sleep 3
  sample :guit_e_slide, rate: 1, amp: 0.8
  sleep 2
end

live_loop :ujellus do
  with_fx :echo, phase: 1.5, mix: 0.5 do
    use_synth :mod_beep
    use_synth_defaults mod_phase: 0.125, pulse_width: 0.8, mod_wave: 2, attack: 1
    play :G5
    sleep 8
  end
end

live_loop :hihat do
  16.times do
    sample :drum_cymbal_pedal, start: 0.05, finish: 0.4, rate: 3, amp: 0.5 + rrand(-0.1, 0.1)
    sleep 0.125
  end
  4.times do
    sample :drum_cymbal_pedal, start: 0.05, finish: 0.6, rate: 3, amp: 0.5 + rrand(-0.1, 0.1)
    sleep 0.25
  end
  16.times do
    sample :drum_cymbal_pedal, start: 0.1, finish: 0.3, rate: 3, amp: 0.5 + rrand(-0.1, 0.1)
    sleep 0.0625
  end
end

 

Täma materiaali on koottu parin tunnin mittaisen session opiskelumateriaaliksi 6. luokan oppilaille Mehackitin sivulta: http://sonic-pi.mehackit.org/index_fi.html
Kuten Mehackitin materiaali, niin myös tämä on on myös Creative commons CC-BY-SA lisenssin alaista.

 

Advertisements

One thought on “Musiikkiohjelmointia – Sonic PI

  1. Päivitysilmoitus: Musiikkiohjelmointia 6. luokkalaisten kanssa | Datasepän koodikoulu

Vastaa

Täytä tietosi alle tai klikkaa kuvaketta kirjautuaksesi sisään:

WordPress.com-logo

Olet kommentoimassa WordPress.com -tilin nimissä. Log Out / Muuta )

Twitter-kuva

Olet kommentoimassa Twitter -tilin nimissä. Log Out / Muuta )

Facebook-kuva

Olet kommentoimassa Facebook -tilin nimissä. Log Out / Muuta )

Google+ photo

Olet kommentoimassa Google+ -tilin nimissä. Log Out / Muuta )

Muodostetaan yhteyttä palveluun %s