Sonic Pi

Audible Computing.

A free sound synthesiser for live coding designed to support computing and music lessons within schools.
Use code to compose and perform in classical and contemporary styles ranging from Canons to Dubstep.

Brought to you by Sam Aaron and the Sonic Pi Core Team,

v2.1.1 is available free for:

Raspberry Pi Mac OS X Windows

Watch the Video...

Use Sonic Pi to transform your school Music and Computing lessons as pioneered by the Sonic Pi Live & Coding project.

Start Coding Today...

Sonic Pi provides a powerful interface designed for complete beginners.

Watch how you open Sonic Pi and be Live Coding a full track in 10 seconds....

Music. Code. Simple.

See how easy it is to get started coding your first sounds...

Haunted Bells


loop do
  sample :perc_bell, rate: (rrand 0.125, 1.5)
  sleep rrand(0, 2)
end
            

Listen to the coded bells...



Pentatonic Bleeps

with_fx :reverb, mix: 0.2 do
  loop do
    play scale(:Eb2, :major_pentatonic, num_octaves: 3).choose, release: 0.1, amp: rand
    sleep 0.1
  end
end
              

Code with scales and chords...



Tron Bikes

loop do
  with_synth :dsaw do
    with_fx(:slicer, phase: [0.25,0.125].choose) do
      with_fx(:reverb, room: 0.5, mix: 0.3) do
        start_note = chord([:b1, :b2, :e1, :e2, :b3, :e3].choose, :minor).choose
        final_note = chord([:b1, :b2, :e1, :e2, :b3, :e3].choose, :minor).choose

        p = play start_note, release: 8, note_slide: 4, cutoff: 30, cutoff_slide: 4, detune: rrand(0, 0.2), pan: rrand(-1, 0), pan_slide: rrand(4, 8)
        control p, note: final_note, cutoff: rrand(80, 120), pan: rrand(0, 1)
      end
    end
  end
  sleep 8
end
                

Listen to bikes from the future...



Wob Rhythm

with_fx :reverb do
  in_thread do
    loop do
      r = [0.5, 1.0/3, 3.0/5].choose
      8.times do
        sample :ambi_choir, rate: r, pan: rrand(-1, 1)
        sleep 0.5
      end
    end
  end
end

with_fx :wobble, phase: 2 do |w|
  with_fx :echo, mix: 0.6 do
    loop do
      sample :drum_heavy_kick
      sample :bass_hit_c, rate: 0.8, amp: 0.4
      sleep 1
    end
  end
end
                  

Hear the rhythmic wobble...



Ocean Waves

with_fx :reverb, mix: 0.5 do
  loop do
    s = synth [:bnoise, :cnoise, :gnoise].choose, amp: rrand(0.5, 1.5), attack: rrand(0, 4), sustain: rrand(0, 2), release: rrand(1, 3), cutoff_slide: rrand(0, 3), cutoff: rrand(60, 80), pan: rrand(-1, 1), pan_slide: 1, amp: rrand(0.5, 1)
    control s, pan: rrand(-1, 1), cutoff: rrand(60, 115)
    sleep rrand(2, 3)
  end
end
                    

Hear the digital waves crash...



IDM Breakbeat

define :play_bb do |n|
  sample :drum_heavy_kick
  sample :ambi_drone, rate: [0.25, 0.5, 0.125, 1].choose, amp: 0.25 if rand < 0.125
  sample :ambi_lunar_land, rate: [0.5, 0.125, 1, -1, -0.5].choose, amp: 0.25 if rand < 0.125
  sample :loop_amen, attack: 0, release: 0.05, start: 1 - (1.0 / n), rate: [1,1,1,1,1,1,-1].choose
  sleep sample_duration(:loop_amen) / n
end
loop {play_bb([1,2,4,8,16].choose)}
                      

Listen to crazy coded beats...



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
                        

Start producing longer tracks...

Sonic Pi in the

Classroom

Sonic Pi was specfically designed for and built in collaboration with teachers for use in the classroom.

Music Live Coding

Sonic Pi has been extended from a focus on Computing to Music Live Coding. We have also developed a scheme of work specifically for the Music curriculum.

Simple & Fun Computing

Sonic Pi comes with a scheme of work targetted for KS3 Computing developed in harmony with the new curriculum.

Get Scheme of Work

Designed for Teachers

Sonic Pi was designed, implemented and developed with extensive classroom trials in close collaboration with teachers. Sonic Pi is therefore ready for your classroom.

What's Happening

Here's a taster of some of the exciting things happening in the Sonic Pi world...

Get Sonic Pi for

Raspberry Pi

Get started on the world's most affordable computer.

Raspbian Package Manager

Easily keep your Sonic Pi up-to-date via the Raspbian Package Manager:

sudo apt-get update && sudo apt-get install sonic-pi

Pre-installed on NOOBS

Sonic Pi is already pre-installed on NOOBS - the SD card image recommended by the Raspberry Pi Foundation.

Manual Download

wget http://sonic-pi.net/app/sonic-pi-rp.tgz
tar -xvzf sonic-pi-rp.tgz
./sonic-pi-v2.2.0/bin/sonic-pi

Download

Get Sonic Pi for

Windows

Turn any PC into a full Sonic Pi workstation.

Built for Microsoft

Sonic Pi has been built as a self-contained Windows MSI ready for you to download and install.

Sonic Pi for Windows

Download Sonic Pi v2.1.1 for Windows here.

Download

Backwards Compatible from XP

Sonic Pi for Windows works with all versions of Windows from XP SP3 to 8.1

Get Sonic Pi for

Mac OS X

Use the full power of your Mac to take Sonic Pi to the next level.

Built for Apple

Sonic Pi has been built as a self-contained OS X app ready for you to download and launch.

Just ensure you give Sonic Pi permission to run in the Security Preferences.

Sonic Pi for OS X

Download Sonic Pi v2.2 for OS X here.

Download

Compiled for 64 bit

Compiled for 64 bit architectures, Sonic Pi has been tested to run on OS X Snow Leopard through to Yosemite.