Sonic Pi is een programma waarmee je muziek kunt programmeren. Het programma kun je hier downloaden.
Speel MIDI noot 60 (C)
play 60of:
play :cAls je meedere noten achter elkaar zet, dan speelt Sonic Pi ze tegelijk af:
play :c
play :eMeestal wil je dat de noten achter elkaar afgespeeld worden, met een kleine pauze ertussen. Dit kun je doen met sleep:
play :c
sleep 0.25
play :e
sleep 0.25
play :f
sleep 0.25
play :aAlle regels waar een hekje (#) voor staat negeert Sonic Pi.
# dit speelt MIDI note 60
play 60
# de volgende regel word niet gespeeld
# play 70Naast MIDI noten kan Sonic Pi ook "samples" afspelen. Samples zijn korte stukjes opgenomen geluid van een echt of nagebootst instrument. Probeer bijvoorbeeld is deze samples:
sample :loop_industrial
sleep 2
sample :bd_haus
sleep 1
sample :guit_e_slide
sleep 2
sample :drum_cymbal_closedIn de Help van Sonic Pi kun je een lijst vinden van alle samples die ondersteund worden (links onder in het venster).
Muziek bevat vaak herhalingen van een melodie, de volgende code herhaalt een melodie twee keer:
2.times do
play :c
sleep 0.5
play :d
sleep 0.5
play :e
sleep 0.5
play :c
sleep 0.5
endSamples hebben allemaal een verschillende lengte, sommige zijn korter dan 1 seconde, andere langer dan 5 seconden. Als je een sample perfect wilt herhalen is daar een trucje voor:
4.times do
sample :loop_industrial
sleep (sample_duration :loop_industrial)
endIn het algemeen wordt muziek gespeeld door meerdere artiesten en/of instrumenten. In Sonic Pi kun je dit bereiken met zogenaamde "live loops". Bijvoorbeeld:
live_loop :kick do
sample :bd_haus, rate: 0.75
sleep 0.5
end
live_loop :snare do
sleep 0.5
sample :sn_dolf
sleep 0.5
endDe code in live loops kan worden aangepast terwijl Sonic Pi de muziek afspeelt! Probeer het maar eens in het vorige voorbeeld: klik op "Run" en pas daarna bijvoorbeeld rate: 0.75 aan naar rate: 1.0. Druk nogmaals op "Run" om de nieuwe code in te laden en luister wat er gebeurd (tip: Alt+R doet hetzelfde). Dit heet ook wel "live coding" en is een heel handige techniek om muziek spelenderwijs te maken, door steeds kleine veranderingen te maken, en ze live te beluisteren.
Vrijwel alle operaties in Sonic Pi kunnen worden aangepast met parameters. Bijvoorbeeld:
play 60, sustain:2
sleep 2
play 60, attack:0.5
sleep 1
play 60, attack:0.1, sustain:0, release:0Tip: Gebruik de autocomplete van Sonic Pi om de verschillende parameters te ontdekken!
Met effecten kun je het geluid van een stukje muziek veranderen. Probeer bijvoorbeeld eerst eens het volgende sample:
sample :guit_e_fifthsEn nu:
with_fx :wobble do
sample :guit_e_fifths
endOf met nog een effect:
with_fx :reverb do
with_fx :wobble do
sample :guit_e_fifths
end
endTip: Effecten kunnen, net als noten, worden veranderd met parameters.
Een willekeurige noot kiezen:
4.times do
play [:c, :d, :e].choose
sleep 0.25
endNoten op volgorde afspelen:
live_loop :melodie do
play [:c, :d, :e, :f].tick
sleep 0.5
endAkkoorden spelen:
play 57
play 60
play 64
# is hetzelfde als:
play [57, 60, 64]
# is hetzelfde als:
play (chord :a3, :minor)Akkoorden, willekeurig en parameters:
live_loop :first do
play chord(:a3, :minor).choose, attack: 0, release: 0.3, cutoff: 80
sleep 0.2
endIn de map samples staan enkele voorbeelden.