Overview of Sonic Pi
Released in 2012, Sonic Pi is a live coding environment based on the programming language Ruby. It is initially designed by Sam Aaron in the University of Cambridge Computer Laboratory for the purpose of teaching computing lessons in schools. It allows users to use up to 10 buffers to create audio and can create visual effects via other platforms like p5js and Hydra.
As Sam Aaron wrote in the tutorial of Sonic Pi, this software encourages users to learn about both computing and music through play and experimentation. It provides instant feedback for students at school, and as it produces music instead of typical text outputs, it’s more attractive to students compared with traditional coding environments like Java or Python. It also allows users to connect computers with instruments and make remixes in the software.
Interface of Sonic Pi

The interface of Sonic Pi can basically be divided into 9 parts:
- Play Controls
- Play control buttons are responsible for starting and stopping sounds. Clicking Run initiates the current track, and clicking Stop will stop all running code.
- Record button enables users to save audio played in Sonic Pi with high fidelity.
- Save and Load buttons enables users to load .rb files from their computers and save the current code as .rb files.
- Code Editor
- Users can write code and compose or perform music here.
- Scope Viewer
- The scope viewer allows users to see the sound waves played on both channels.
- Log Viewer
- Displays the updates within the program.
- Cue Viewer
- All internal and external events (called cues in Sonic Pi) are automatically logged in the Cue Viewer.
- Buffer Switch
- Lets the user switch between 10 buffers provided by the software.
- Link Metronome, BPM scrubber and timewrap setter
- Link Metronome allows users to link the software to local metronomes and synchronizes BPM with the metronome.
- The Tap button allows users to tap manually in a specific speed, then measures the BPM and automatically adjusts the BPM in Sonic Pi.
- The BPM displayer shows the current BPM, and users can modify it.
- Timewrap setter allows the user to manually set whether to trigger every sound earlier or later.
- and 9. Help system
- Displays the tutorial for Sonic Pi. The user can check out all documentations and preview the samples via the help system.
Performance Demo
Reflection: Pros and Cons of Sonic Pi
Sonic Pi, as an educational software, has done a great job by embedding detailed tutorials and documentation in the software. Its large collection of samples and synthesizers allows the users to make all kinds of music. However, the quality of samples is not very stable and requires lots of learning and adjustments to produce high-quality music.