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.

v2.1 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 offers a very simple uncluttered editing experience designed to get you started as soon as possible with minimal effort.

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 are currently developing a specific Music scheme of work to be released in November 2014.

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/files/sonic-pi-raspberry-pi-latest.tgz
tar -xvzf sonic-pi-raspberry-pi-latest.tgz
./sonic-pi/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.1 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.