O Sonic Pi é um ambiente de codificação ao vivo e baseado em Ruby, foi desenvolvido por Sam Aaron no Laboratório de computação da Universidade de Cambridge em colaboração com a Raspberry Pi Foundation, originalmente Sonic Pi foi projetado para oferecer suporte as aulas de computação e música em escolas. Sonic Pi foi lançado em 2012 e possui a licença MIT, sua versão mais estável é a 3.2.2 lançada em 5 de abril de 2020, ele funciona nos SO (sistemas operacionais) Linux, macOs, Windows e Raspbian, foi desenvolvido em 5 linguagens de programação são elas Ruby, Erlang, Clojure, C++ e QT.
Graças a utilização do mecanismo de síntese SuperCollider e modelo de temporização preciso, também é usado para a codificação ao vivo e outras formas de desempenho e produção de música algorítmica, incluindo algoritmos. A sua investigação e desenvolvimento tem o apoio da Nesta, através do projecto Sonic PI: Live & Coding
Sonic Pi possui uma interface muito simples para a codificação de música, veja abaixo algumas ferramentas:
- Controles de jogo- Os botões na cor rosa são controles para iniciar e interromper sons, o botão de EXECUTAR é para executar o código no editor, PARAR interrompe todo o código em execução, SALVAR para salvar o código em um arquivo externo e GRAVAR para cria uma gravação do som reproduzido.
- Controles do Editor- Os botões laranjas permitem que o usuário manipule o editor de código, os botões TAMANHO + e TAMANHO – eles permitem que usuário torne o texto maior ou menor.
- Informações e ajuda- Botões da cor azul fornecem acesso a informações, ajuda e preferências, botão de INFORMAÇÕES abre a janela que contém informações sobre o próprio Sonic Pi sobrea a equipe principal, história, colaboradores e comunidade, já o botão AJUDA alterna o sistema de ajuda e o botão PREFS alterna a janela de preferências que permitem controlar alguns parâmetros básicos do sistema.
- Editor de Código- Essa é a área onde o usuário escreve seu código e compara / executar música. É um editor de texto simples aonde o usuário pode escrever o seu código, excluí-lo, recortar, colar e etc, pense e um editor como uma versão muito simples do Word ou Google Docs, ele irá colorir as palavras automaticamente com base em seus significados no código, e isso pode parecer muito estranho no início, mas com tempo logo o achará muito útil como, por exemplo, o usuário saberá que algo é um úmero porque é azul.
- Painel Prefs- Sonic Pi fornece um suporte a uma série de refecias ajustáveis que podem ser acessadas alternando o botão PERFS no conjunto de boteos INFo e Help. Isso alterna a visibilidade do Painel de preferências, que inclui uma série de opções a serem alteradas. Os exemplos são forçar o modo mono, inverter o estéreo, alternar o detalhamento da saída de log e também um controle deslizante de volume e seletor de áudio no Raspberry Pi.
- Visualizador de Log- Quando o usuário executa seu código, as informações sobre o que o programa está fazendo são exibidas no visualizador de log, mas por padrão, verá uma mensagem para cada som criado com o horário em que o som foi acionado. Isso é muito útil para depurar o seu código e entender o que ele está fazendo.
- Sistema de Ajuda- Uma das partes mais importantes da interface do Sonic Pi é o sistema de ajuda que aparece na parte inferior da janela. Isso pode ser ativado e desativado clicando no botão azul AJUDA. O sistema de ajuda contém ajuda e informações sobre todos os aspectos do Sonic Pi, incluindo este tutorial, uma lista de sintetizadores disponíveis, amostras, exemplos, FX e uma lista completa de todas as funções que o Sonic Pi fornece para a codificação de música.
- Visualizador de escopo- O visualizador de osciloscópio permite que o usuário veja o som que está ouvindo. Pode também ver facilmente que a onda da serra se parece com uma serra e que o bipe básico é uma onda sinusoidal curva, o usuário pode ver a diferença entre sons altos e baixos pelo tamanho das linhas. Existem 3 escopos para jogar – o padrão é um escopo combinado para os canais esquerdo e direito, há um escopo estéreo que desenha um escopo separado para cada canal. Finalmente, há um escopo de curva de Lissajous que mostrará a relação de fase entre os canais esquerdo e direito e permite com que o usuário desenhe imagens bonitas com som.