Kappaleen tekeminen
Mahtavaa! Nyt sinulla on valmiina kappaleen alku, jossa on tukeva peruskomppi, hihatit, basso ja melodiakoukku kaiken huipulla. Seuraavaksi teemme jotain mikä avaa Sonic Pi:n todelliset mahdollisuudet. Lisätään seuraavaksi satunnaisia elementtejä kappaleen koodiin! Se tarkoittaa sitä että voimme antaa tietokoneen “heittää noppaa” puolestamme ja tehdä valintoja esim. siitä mitä säveliä jossain kappaleen kohdassa soitetaan.
Transponointi tarkoittaa sävelkorkeuden muuttamista ylös (korkeammalle) tai alas (matalammalle). Me voimme esimerkiksi antaa tietokoneen välillä transponoida yhden live_loopin
sisällä olevat sävelet kaksi sävelaskelta korkeammalle. Sitä varten tutustumme komentoon if one_in(6)
seuraavassa esimerkissä:
Huomasitko miten kappaleen melodia soi välillä korkeammalta? Esimerkissä jokaisella live_loopin kierrolla kutsutaan komentoa if one_in(6)
, joka käskee Sonic Pi:tä heittämään kuusisivuista noppaa. Jos nopanheiton tulos on kuusi, seuraavan rivin komento use_tranpose 2
suoritetaan ja sen seurauksena play_pattern_timed
-komennon sävelet soitetaan kaksi sävelaskelta korkeammalta. Jos nopanheiton tulos on alle kuusi, kutsutaan rivin else
jälkeistä komentoa use_transpose 0
, joka tarkoittaa että melodiaa ei transponoida.
Kokeillaan seuraavaksi tehdä jotain mielenkiintoista bassolinjalle. choose
on erittäin hyödyllinen komento, jolla voimme valita listasta satunnaisesti jonkin elementin. Esimerkiksi näin:
[:c, :e, :g]
on lista nuotteja (tässä tapauksessa C-duurisoinnun sävelet). .choose
valitsee satunnaisesti yhden sävelen kaikista listassa olevista sävelistä. Sävelten sijasta voit myös satunnaisesti valita esimerkiksi numerolukuja. Kuten tässä esimerkissä:
Tässä välissä on hyvä mainita muutama asia soinnuista, Sonic Pi:ssä sinun ei tarvitse muistaa mitkä sävelet kuuluvat mihinkin sointuun. Sen sijaan että kirjoittaisit [:c, :e, :g]
voit kirjoittaa komennon chord(:C, :major)
, joka palauttaa listana sävelet jotka kuuluvat C-duurisointuun. Esimerkiksi:
Käytetään tätä komentoa esimerkiksi Acid House -musiikista tuttuun “kuplivaan” bassoraitaan. Tallenna työsi (Save-nappia painamalla) ja kopioi sinun :basso
-luuppi uudelle Buffer-välilehdelle. Tyhjennä live_loop
:in sisältö ja kirjoitetaan se uusiksi. Käytetään uutta bassolinjaa varten syntetisaattorin ääntä :tb303
ja soitetaan C-duurisoinnun säveliä 1/16-nuotin pituisina:
No se ei kuulostanut vielä kovin hyvältä. Sävelten pituus (oletuksena release: 1
) aiheuttaa sen että ne soivat päällekäin ja puuroutuvat. Lisätään play
-komennon perään parametri , release: 0.125
ja lopputulos kuulostaa jo paljon paremmalta:
Tähän mennessä olet käyttänyt parametreja attack:
ja release:
play-komennon kanssa, mutta parametreja on paljon enemmänkin ja voivat riippua siitä mitä syntetisaattorin ääntä käytät. Esimerkiksi :tb303
-äänellä on 45 erilaista parametria, joilla ääntä voi muokata. Kokeillaan seuraavaksi muokata bassoääntä parametrillä cutoff
, joka leikkaa äänestä pois kaikki taajuudet cutoff-arvon yläpuolelta. Cutoff:in kanssa voit käyttää arvoja väliltä 0-130.
Cutoff:in kanssa ei kannata käyttää mitään kiinteätä lukua ja voimme tehdä äänestä paljon mielenkiintoisemman muuttamalla arvoa satunnaisesti. Voimme käyttää uutta komentoa rrand(minimi, maksimi)
, joka arpoo satunnaisesti lukuja minimi- ja maksimiarvojen väliltä. Kokeillaan sitä bassolinjassa:
Mahtavaa! Muista tutkia ja kokeille erilaisia arvoja esimerkin komennoilla. Kertauksena, tässä on ohjelma minkä olemme esimerkkien avulla kirjoittaneet: