Introduction: The First Usage of Sonic Pi

Today, I am going to show you how to use Sonic Pi program to produce music for anyone! For composers, for makers, for open-source music enthusiasts, for leisure time hobbies... That sounds good to us :D Special thanks for Sam Aaron!

The need list:

1. Your computer (Here I'll show on Windows, Raspbian (Raspberry Pi), Mac OS X)

2. Internet connection to download Sonic Pi


Although Sonic Pi is open source program to prepare musics, you can make a donation today to help creator to do beautiful things again for you.

Step 1: Download Sonic Pi

1. Open your web browser

2. Surf to

3. Select your operating system

4. Download the program to your pc

Step 2: The First Code on Sonic Pi

On Windows, go to Start >> type "Sonic Pi" >> open the program >> write these codes:

play 60
sleep 1

>> volume up your speakers till between %60-70 or to your want >> Click on "RUN" button >> Enjoy!

You can use STOP button to stop the actual music, SAVE for saving the codes, REC for making the voice file.

Also, if the codes seem tiny, you can enlarge by clicking on SIZE- and SIZE+ buttons.

There are ALIGN, INFO, HELP, and PREFS buttons to use.

On preferences, you can modify your music editor's color, full screen, log options e.t.c.

Note: play 60 is the function that the note to play (as a MIDI number) then sleeps 1 second. The Sonic Pi Cheatsheet PDF file includes some detailed brief for notas.

Step 3: One Sample

On your Sonic Pi program, there are list view located on the bottom-left panel. Go to 3 Samples among others on the list, and choose whatever you want. I am sharing some example codes:

sample :loop_amen, norm: 1, decay: 1
sample :ambi_drone, beat_stretch: 1 wait 1.7 sample :loop_amen, norm: 1, decay: 1 sample :ambi_drone, beat_stretch: 1 wait 1.7 play 65, decay: 1

You can listen this sound with click on play on Sonic Pi program or listen the file my-recordings.wav which is attached.

Step 4: Longer Track

On website, there are a lot of sample music codes. Such as longer track is like that: ACID WALK

in_thread do
use_synth :fm sleep 2 loop do 28.times do sample :drum_bass_hard, amp: 0.8 sleep 0.25 play :e2, release: 0.2 sample :elec_cymbal, rate: 12, amp: 0.6 sleep 0.25 end sleep 4 end end

use_synth :tb303 with_fx :reverb do |rev| loop do control rev, mix: rrand(0, 0.3) with_fx :slicer, phase: 0.125 do sample :ambi_lunar_land, sustain: 0, release: 8, amp: 2 end

control rev, mix: rrand(0, 0.6) r = rrand(0.05, 0.3) 64.times do play chord(:e3, :minor).choose, release: r, cutoff: rrand(50, 90), amp: 0.5 sleep 0.125 end

control rev, mix: rrand(0, 0.6) r = rrand(0.1, 0.2) with_synth :prophet do 32.times do sleep 0.125 play chord(:a3, :m7).choose, release: r, cutoff: rrand(40, 130), amp: 0.7 end end

control rev, mix: rrand(0, 0.6) r = rrand(0.05, 0.3) 32.times do play chord(:e3, :minor).choose, release: r, cutoff: rrand(110, 130), amp: 0.4 sleep 0.125 end

control rev, mix: rrand(0, 0.6) with_fx :echo, phase: 0.25, decay: 8 do 16.times do play chord([:e2, :e3, :e4].choose, :m7).choose, release: 0.05, cutoff: rrand(50, 129), amp: 0.5 sleep 0.125 end end end end

Step 5: The More Longer Tracks

We can use samples to write more longer track codes like this:

use_debug false
bizet_bass = (ring :d, :r, :r, :a, :f5, :r, :a, :r) #bizet_bass = (ring :d, :r, :r, :Bb, :g5, :r, :Bb, :r)

with_fx :reverb, room: 1, mix: 0.3 do live_loop :bizet do with_fx :slicer, phase: 0.125 do synth :blade, note: :d4, release: 8, cutoff: 100, amp: 1.5 end 16.times do tick play bizet_bass.look, release: 0.1 play bizet_bass.look - 12, release: 0.3 sleep 0.125 end end end

live_loop :ind do sample :loop_industrial, beat_stretch: 1, cutoff: 100, rate: 1 sleep 1 end

live_loop :drums do sample :bd_haus, cutoff: 110 synth :beep, note: 49, attack: 0, release: 0.1 sleep 0.5 end

use_debug false

live_loop :low do |idx| # idx = 0 synth :zawa, wave: 1, invert_wave: 1, phase: 0.25, release: 5, note: :e1, cutoff: (range 60, 120, 10)[idx] sleep 4 idx += 1 end

live_loop :lands, auto_cue: false do |idx| use_synth :dsaw use_random_seed 66679 with_fx :reverb, room: 1 do 16.times do ns = (scale :e2, :minor_pentatonic, num_octaves: 3) play ns.choose, detune: 12, release: 0.1, amp: 2, amp: rand + 0.5, cutoff: rrand(70, 120) sleep 0.125 end end end

live_loop :bikes do |idx| sleep 0.25 sample :guit_em9, rate: -1 sleep 7.75 end

live_loop :time, auto_cue: false do |idx| sample :bd_haus, amp: 2.5 sleep 0.5 end


That's all!

Step 6: Bonus Video

This presentation was recorded at GOTO Amsterdam 2014

Sam Aaron - Postdoc Researcher at The University of Cambridge & GOTO Fellow

This talk introduces Sonic Pi, a music language and environment running on the Raspberry Pi specifically focussed on introducing core Computer Science concepts for KS3 students.

Step 7: BONUS: Reading This Instructable

NOTE: This instructable's step is aimed for visually impaired people to hear the sentences to learn what's going on here. Watch the video, it explains all steps.

NOTE: You can also listen the recorded musics on the video with voice.


ThomasK19 made it! (author)2016-04-16

This also runs on my Mac and it's really fun playing with it.

Bay Yolal made it! (author)Bay Yolal2016-04-16

Zehr gut :) Well done!

About This Instructable




Bio: Electrical and Electronics Engineer in Istanbul.
More by Bay Yolal:How to use Raspberry Pi 3 Model B+ V1.2 For The First Time!How to knit baby booties in only one hour! Ta-Da!How to extract walnut
Add instructable to: