Sonic Pi

Welcome to the future of music.

Sonic Pi is a code-based music creation and performance tool.


Simple enough for computing and music lessons.
Powerful enough for professional musicians.
Free to download with a friendly tutorial.
Diverse community of over 1.8 million live coders.

Learn to code creatively by composing or performing music in an incredible range of styles from Classical & Jazz to Grime & EDM.

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

Please support Sam on Patreon to help keep Sonic Pi free.
Sam currently has 707 out of 1000 supporters needed to continue.


Originally created at the University of Cambridge Computer Laboratory.
Developed with kind support from 400+ contributors and generous Patreon supporters.
Sonic Pi is an Open Source Project released under the MIT Licence.

Code. Music. Live.

Sonic Pi is a new kind of musical instrument.
Watch how you can use it for live performances from ambient sets to dance music in nightclubs...

Live Coded set by DJ Dave

Sonic Pi Band - Sam Aaron & Ben Smith

Reeled - Jylda & Sam Aaron

Daft Punk - Aerodynamic
coded by Sébastien Rannou

Welcome to our Community

Join the friendly Sonic Pi community and share your ideas and thoughts with other educators, musicians and live coders...

Live Coding Education



Sonic Pi helps you engage students in Computing through music. Read how in the article 'Live Coding Education'

Watch this introductory CAS TV interview with Sonic Pi creator Sam Aaron.

Sonic Pi in the

Computing Classroom

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

Music Live Coding

Sonic Pi is a new kind of musical instrument which enables exciting new learning pathways in the classroom.

Music programming workshop by Mehackit

Classroom Ready

Sonic Pi was designed, implemented and developed with extensive classroom trials in close collaboration with teachers.

Introduction for Teachers

Creative Computing

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

Scheme of Work for Computing Lessons

Sonic Pi Talks

"Sonic Pi lowers the barrier to entry for a creative experience with code..."

Free Sonic Pi Book

Sam Aaron, creator of Sonic Pi, has written this book to
complement the built-in tutorial.

Master live loops, code drum breaks, compose your own melodies make random riffs and loops, learn to shape and sculpt sounds and much, much more...

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...

What's Happening with

Sonic Pi

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

The Music Commission

The Music Commission

Sonic Pi is represented by Sam Aaron on The Music Commission panel, a new enquiry launched by ABRSM exploring how to better sustain & support progress & progression in learning music.

Naked Scientists

The Naked Scientists

The wonderful Naked Scientists covered Sonic Pi in an interview which was broadcast live on BBC radio and is available to listen and read here.

The Big Bang Fair

The Big Bang Fair 2018

The Big Bang Fair is the UK's largest celebration of STEM for young people. In 2018 the Sonic Pi Band performed a series of shows demonstrating how to live code your own band.

Mehackit

Kokoa Certified Resources

The incredible Mehackit Sonic Pi creative coding resource has been certified by the Finnish Education Standard Kakoa for its educational quality.

Codebus Africa

In 2017, African and Finnish tech and education innovators collaborated to use Sonic Pi to deliver creative coding workshops engaging almost 2000 children in 10 African countries.

Google Logo

Google Open Source Winner

Google have announced Sonic Pi as one of a number of projects they either use or think are important.

CBBC Ten Pieces Masterclass

Radio 1 DJ MistaJam and Live Coder Sam Aaron compose a piece of music using Sonic Pi, inspired by Bizet's 'Carmen'

Get Sonic Pi for

Raspberry Pi OS

Get started on the world's most affordable computer.

Update Sonic Pi

Get the latest version of Sonic Pi for your Raspberry Pi to take advantage of all the new features such as MIDI, OSC networking, new translations, improved interface, headphone audio and much, much more...

Simple Installation

Download and double-click to install
v3.3.1

Requires Raspberry Pi OS
October 30th 2021.

Download

Terminal Installation

As an alternative to the double-click installation, you can run the following commands via the terminal (within the directory you downloaded the deb file):

sudo apt update
sudo apt install ./sonic-pi_3.3.1_2_armhf.deb

Get Sonic Pi for

Windows

Turn any PC into a full Sonic Pi workstation.

Built for Windows 10

Sonic Pi has been developed and designed to work perfectly on laptops and desktops running Windows 10.

Sonic Pi for Windows

Download and double-click to install
v3.3.1

Requires Windows 10.

Windows 10 (64 bit)
MSI Installer
Still using Windows 7 or 8.1?
Download v3.1 here

MSI Installer

Sonic Pi is available as a signed MSI installer for you to securely install on your machine or network.

Get Sonic Pi for

macOS

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

Securely Built for Apple

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

It is cryptographically signed, notarised by Apple and uses the secure macOS hardened runtime.

Sonic Pi for macOS

Download and open DMG to install
v3.3.1

Requires macOS 10.13 High Sierra.

Download

Using macOS 10.12 or below?
Download v3.1 here

Monterey Ready

Compiled for 64 bit, Sonic Pi has been tested to run on macOS 10.13 High Sierra through to macOS 12 Monterey.

It also runs well on M1 Macs.