# sonic-pi-net/sonic-pi

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/sonic-pi-net-sonic-pi).**

11,866 stars · 983 forks · C++ · NOASSERTION

## Links

- GitHub: https://github.com/sonic-pi-net/sonic-pi
- Homepage: https://sonic-pi.net
- awesome-repositories: https://awesome-repositories.com/repository/sonic-pi-net-sonic-pi.md

## Topics

`art` `audio` `education` `instrument` `live-coding` `livecoding` `music` `schools` `synthesis` `synthesizer`

## Description

Sonic Pi is a live coding music environment and algorithmic composition tool. It functions as a Ruby-based audio engine that allows users to compose and perform music in real time by writing and executing code during playback.

The platform serves as an educational coding platform, using sound creation as a play-based environment to teach software logic and programming principles. It also acts as a MIDI and OSC controller for synchronizing external hardware and software.

The system covers a broad range of audio capabilities, including software-based sound synthesis, audio sample manipulation, and the use of audio effects chains. It provides tools for algorithmic rhythm generation and interactive sound synthesis, alongside integration for MIDI, Open Sound Control, and networked audio synchronization.

The environment includes utilities for session video recording and interface streaming, as well as controls for managing audio hardware settings.

## Tags

### Graphics & Multimedia

- [Algorithmic Composition Tools](https://awesome-repositories.com/f/graphics-multimedia/algorithmic-composition-tools.md) — Provides a comprehensive environment for generating complex rhythms and melodic patterns using mathematical logic and programming.
- [Live Coding Music Performance](https://awesome-repositories.com/f/graphics-multimedia/live-coding-music-performance.md) — Provides a complete environment for composing and performing music in real-time by writing code during live sessions. ([source](https://github.com/sonic-pi-net/sonic-pi/blob/dev/CHANGELOG.md))
- [Interactive Synthesis](https://awesome-repositories.com/f/graphics-multimedia/audio-music/audio-processing/interactive-synthesis.md) — Implements real-time sound processing and playback logic for creating responsive digital instruments.
- [Software Synthesizers](https://awesome-repositories.com/f/graphics-multimedia/software-synthesizers.md) — The project generates audio using built-in synthesizers to create electric pianos, drums, and lead sounds through software oscillators. ([source](https://github.com/sonic-pi-net/sonic-pi/blob/dev/CHANGELOG.md))
- [Effects Processing](https://awesome-repositories.com/f/graphics-multimedia/audio-music/audio-processing/effects-processing.md) — Processes audio through a chain of effects including reverb, distortion, and parametric EQ to shape the output sound. ([source](https://github.com/sonic-pi-net/sonic-pi/blob/dev/CHANGELOG.md))
- [Time-Stretching and Pitch-Shifting](https://awesome-repositories.com/f/graphics-multimedia/audio-music/audio-processing/time-stretching-and-pitch-shifting.md) — Provides audio sample manipulation including pitch shifting, beat stretching, slicing, and onset detection. ([source](https://github.com/sonic-pi-net/sonic-pi/blob/dev/CHANGELOG.md))
- [Audio Streaming Engines](https://awesome-repositories.com/f/graphics-multimedia/audio-music/audio-streaming-engines.md) — Implements an engine for pulling live audio channels from network peers for real-time processing and effects. ([source](https://github.com/sonic-pi-net/sonic-pi/blob/dev/CHANGELOG.md))
- [Envelope Controls](https://awesome-repositories.com/f/graphics-multimedia/envelope-controls.md) — Allows triggering sounds that sustain indefinitely and manually terminating them to define precise note durations. ([source](https://github.com/sonic-pi-net/sonic-pi/blob/dev/SYNTH_DESIGN.md))
- [Instrument Library Extensions](https://awesome-repositories.com/f/graphics-multimedia/external-data-integrators/external-resource-importers/instrument-library-extensions.md) — Imports custom synth files or system defaults to expand the instrument library with automated completion support. ([source](https://github.com/sonic-pi-net/sonic-pi/blob/dev/SYNTH_DESIGN.md))
- [Playback Timing Control](https://awesome-repositories.com/f/graphics-multimedia/playback-timing-control.md) — Enables shifting scheduled musical events via time warping and global tempo multipliers. ([source](https://github.com/sonic-pi-net/sonic-pi/blob/dev/CHANGELOG.md))
- [Synthesizer Design](https://awesome-repositories.com/f/graphics-multimedia/synthesizer-design.md) — Compiles source code from external languages into binary definitions to create new instrument sounds. ([source](https://github.com/sonic-pi-net/sonic-pi/blob/dev/SYNTH_DESIGN.md))
- [Synthesizer Instrument Definitions](https://awesome-repositories.com/f/graphics-multimedia/synthesizer-instrument-definitions.md) — Provides the ability to load pre-compiled binary definitions to expand available sound generators.

### Artificial Intelligence & ML

- [Algorithmic Music Composition](https://awesome-repositories.com/f/artificial-intelligence-ml/algorithmic-music-composition.md) — Uses programming logic and rule-based algorithms to generate complex rhythmic patterns, melodies, and sonic structures. ([source](https://github.com/sonic-pi-net/sonic-pi/blob/dev/CHANGELOG.md))

### Education & Learning Resources

- [Creative Coding Education](https://awesome-repositories.com/f/education-learning-resources/creative-coding-education.md) — Teaches fundamental coding principles and software logic using sound creation as a play-based learning tool.
- [Educational Programming Environments](https://awesome-repositories.com/f/education-learning-resources/learning-platforms-infrastructure/educational-infrastructure/educational-tools/educational-programming-environments.md) — Functions as a play-based environment that teaches software logic and programming principles through music creation.

### Hardware & IoT

- [MIDI and OSC Interfaces](https://awesome-repositories.com/f/hardware-iot/integration-performance/hardware-interfacing-integration/hardware-interfacing/midi-and-osc-interfaces.md) — Allows dispatching Open Sound Control messages to specific hostnames and ports in synchronization with musical events. ([source](https://github.com/sonic-pi-net/sonic-pi/blob/dev/CHANGELOG.md))

### Programming Languages & Runtimes

- [Audio Synthesis Runtimes](https://awesome-repositories.com/f/programming-languages-runtimes/audio-synthesis-runtimes.md) — Implements a Ruby-based engine specifically designed to control synthesizers and audio effects.
- [Domain Specific Languages](https://awesome-repositories.com/f/programming-languages-runtimes/domain-specific-languages.md) — Provides a Ruby-based domain-specific language for real-time musical event scheduling and execution.
- [Programming Concepts](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/language-features/core-conceptual-frameworks/programming-concepts.md) — Demonstrates fundamental programming concepts and software logic through an interactive, sound-based environment. ([source](https://github.com/sonic-pi-net/sonic-pi#readme))
- [Live Code Evaluation](https://awesome-repositories.com/f/programming-languages-runtimes/live-code-evaluation.md) — Allows users to modify and execute source code while the audio engine continues to play in real time.

### Networking & Communication

- [Clock Synchronization](https://awesome-repositories.com/f/networking-communication/clock-synchronization.md) — Coordinates tempo and beat phase across multiple computers and production tools on a local network.
- [Clock Synchronizations](https://awesome-repositories.com/f/networking-communication/clock-synchronizations.md) — Coordinates tempo and beat phase across multiple computers and music production tools via Ableton Link. ([source](https://github.com/sonic-pi-net/sonic-pi/blob/dev/CHANGELOG.md))
- [Message Passing](https://awesome-repositories.com/f/networking-communication/message-passing.md) — Utilizes Open Sound Control (OSC) for low-latency message passing of synthesis parameters and trigger events.
- [Audio Synthesis Protocols](https://awesome-repositories.com/f/networking-communication/messaging-protocols/audio-synthesis-protocols.md) — Uses specialized messaging protocols to delegate sound synthesis and signal processing to an external SuperCollider server.

### Software Engineering & Architecture

- [Asynchronous Schedulers](https://awesome-repositories.com/f/software-engineering-architecture/task-scheduling/asynchronous-schedulers.md) — Implements asynchronous schedulers to manage multiple concurrent musical patterns using Ruby threads.
