Skip to content

🎻 Controlling Sonic Pi from the command line.

License

Notifications You must be signed in to change notification settings

yaychris/sonic-pi-tool

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status

Sonic Pi Tool

sonic-pi-tool is a handy command line utility for playing with the Sonic Pi server. It can be used instead of the Sonic Pi GUI for all your music making needs :)

It's ideal for use with sonicpi.vim.

Installation

If you have the Rust programming language installed Sonic Pi Tool can be installed like so:

cargo install --git https://github.com/lpil/sonic-pi-tool/

To upgrade to a newer version use the --force flag.

cargo install --git https://github.com/lpil/sonic-pi-tool/ --force

Other installation methods will (hopefully) come at a later date.

Usage

check

sonic-pi-tool check
# => Sonic Pi server listening on port 4557

Used to check if the Sonic Pi server is running. If the server isn't running many of the tool's commands (such as eval) will not work.

This command returns a non-zero exit code if the server is not running.

eval

sonic-pi-tool eval "play :C4"
# *ding*

Take a string Sonic Pi code and send it to the Sonic Pi server to be played.

eval-file

sonic-pi-tool eval-file path/to/code.rb
# *music*

Read Sonic Pi code from a file and send it to the Sonic Pi server to be played.

eval-stdin

echo "play :C4" | sonic-pi-tool eval-stdin
# *ding*

Read Sonic Pi code from standard in and send it to the Sonic Pi server to be played.

stop

Stop all jobs running on the Sonic Pi server, stopping the music.

sonic-pi-tool stop
# *silence*

logs

Prints out log messages emitted by the Sonic Pi server.

This command won't succeed if the Sonic Pi GUI is running as it will be consuming the logs already.

sonic-pi-tool logs
#
# [Run 2, Time 32.7]
#  â”” synth :beep, {note: 65.0, release: 0.1, amp: 0.9741}
#
# [Run 2, Time 32.8]
#  â”” synth :beep, {note: 39.0, release: 0.1, amp: 0.9727}

start-server

Attempts start the Sonic Pi server, if the executable can be found.

Not supported on Windows.

sonic-pi-tool start-server
# Sonic Pi server booting...
# Using protocol: udp
# Detecting port numbers...
# ...

Other tools

In addition to sonic-pi-tool this project contains sonic-pi-pipe and sonic-pi-logs. These two programs came first and are written in Go rather than Rust.

Everything they can do can be done with the newer sonic-pi-tool, and as a result they are no longer actively maintained. :)

Read more about these tools here.

MPL 2.0 Licence

About

🎻 Controlling Sonic Pi from the command line.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 79.0%
  • Go 17.8%
  • Ruby 3.2%