{"id":16727066,"url":"https://github.com/lpil/sonic-pi-tool","last_synced_at":"2025-04-07T06:07:01.574Z","repository":{"id":5933455,"uuid":"53059136","full_name":"lpil/sonic-pi-tool","owner":"lpil","description":"🎻 Controlling Sonic Pi from the command line","archived":false,"fork":false,"pushed_at":"2024-06-16T06:09:52.000Z","size":88,"stargazers_count":225,"open_issues_count":10,"forks_count":32,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-03-31T04:06:15.418Z","etag":null,"topics":["cli","creative-coding","music","osc","sonic-pi","vim"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lpil.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["lpil"]}},"created_at":"2016-03-03T15:00:55.000Z","updated_at":"2025-03-20T18:40:21.000Z","dependencies_parsed_at":"2024-10-26T21:11:30.246Z","dependency_job_id":"00075a3e-0d7d-45ea-aaff-ae63892de731","html_url":"https://github.com/lpil/sonic-pi-tool","commit_stats":{"total_commits":85,"total_committers":14,"mean_commits":6.071428571428571,"dds":0.2823529411764706,"last_synced_commit":"7098783e44a91ddf78ae4388148369cec6a5c602"},"previous_names":["lpil/sonic-pi-tools"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lpil%2Fsonic-pi-tool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lpil%2Fsonic-pi-tool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lpil%2Fsonic-pi-tool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lpil%2Fsonic-pi-tool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lpil","download_url":"https://codeload.github.com/lpil/sonic-pi-tool/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247601447,"owners_count":20964864,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","creative-coding","music","osc","sonic-pi","vim"],"created_at":"2024-10-12T22:55:57.725Z","updated_at":"2025-04-07T06:07:01.556Z","avatar_url":"https://github.com/lpil.png","language":"Rust","funding_links":["https://github.com/sponsors/lpil"],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/lpil/sonic-pi-tool.svg?branch=master)](https://travis-ci.org/lpil/sonic-pi-tool)\n\nSonic Pi Tool\n=============\n\n`sonic-pi-tool` is a handy command line utility for playing with the Sonic Pi\nserver. It can be used instead of the Sonic Pi GUI for all your music making\nneeds :)\n\nIt's ideal for use with [sonicpi.vim][sonicpi.vim].\n\n[sonicpi.vim]: https://github.com/dermusikman/sonicpi.vim\n\n\n## Installation\n\n### From source\n\nIf you have the [Rust programming language][rust-install] installed \nsonic-pi-tool can be installed like so:\n\n```sh\ncargo install --git https://github.com/lpil/sonic-pi-tool/ --force\n```\n\nNote that while Rust needs to be installed to compile sonic-pi-tool, it is not \nneeded to run it. You may uninstall Rust or copy the sonic-pi-tool binary from\n`~/.cargo/bin` to another computer with the same processor architecture and operating \nsystem if you wish.\n\n[rust-install]: https://www.rust-lang.org/en-US/install.html\n\n`sonic-pi-tool` may not build on older versions of Rust. Please see [the CI\nconfiguration](.travis.yml) for which versions are explicitly supported.\n\n### Homebrew\n\nSonic Pi Tool can be installed like so using the Homebrew package manager for OSX:\n\n```sh\n$ brew tap Cj-bc/sonic-pi-tool\n$ brew install sonic-pi-tool\n# or\n$ brew install Cj-bc/sonic-pi-tool/sonic-pi-tool --HEAD\n```\n\nHomebrew formula is here: [Cj-bc/homebrew-sonic-pi-tool](https://github.com/Cj-bc/homebrew-sonic-pi-tool)\n\n\n## Usage\n\n- [check](#check)\n- [eval](#eval)\n- [eval-file](#eval-file)\n- [eval-stdin](#eval-stdin)\n- [stop](#stop)\n- [logs](#logs)\n- [start-server](#start-server)\n- [record](#record)\n\n### `check`\n\n```sh\nsonic-pi-tool check\n# =\u003e Sonic Pi server listening on port 4557\n```\n\nUsed to check if the Sonic Pi server is running. If the server isn't running\nmany of the tool's commands (such as `eval`) will not work.\n\nThis command returns a non-zero exit code if the server is not running.\n\n\n### `eval`\n\n```sh\nsonic-pi-tool eval \"play :C4\"\n# *ding*\n```\n\nTake a string Sonic Pi code and send it to the Sonic Pi server to be\nplayed.\n\n\n### `eval-file`\n\n```sh\nsonic-pi-tool eval-file path/to/code.rb\n# *music*\n```\n\nRead Sonic Pi code from a file and send it to the Sonic Pi server to be\nplayed.\n\n\n### `eval-stdin`\n\n```sh\necho \"play :C4\" | sonic-pi-tool eval-stdin\n# *ding*\n```\n\nRead Sonic Pi code from standard in and send it to the Sonic Pi server to be\nplayed.\n\n\n### `stop`\n\nStop all jobs running on the Sonic Pi server, stopping the music.\n\n```sh\nsonic-pi-tool stop\n# *silence*\n```\n\n\n### `logs`\n\nPrints out log messages emitted by the Sonic Pi server.\n\nThis command won't succeed if the Sonic Pi GUI is running as it will be\nconsuming the logs already.\n\n```sh\nsonic-pi-tool logs\n#\n# [Run 2, Time 32.7]\n#  └ synth :beep, {note: 65.0, release: 0.1, amp: 0.9741}\n#\n# [Run 2, Time 32.8]\n#  └ synth :beep, {note: 39.0, release: 0.1, amp: 0.9727}\n```\n\n\n### `start-server`\n\nAttempts start the Sonic Pi server, if the executable can be found.\n\nNot supported on Windows.\n\n```sh\nsonic-pi-tool start-server\n# Sonic Pi server booting...\n# Using protocol: udp\n# Detecting port numbers...\n# ...\n```\n\n### `record`\n\nRecord the audio output of a Sonic Pi session to a local file.\nStop and save the recording when the Enter key is pressed.\n\n```sh\nsonic-pi-tool record /tmp/output.wav\n# Recording started, saving to /tmp/output.wav.\n# Press Enter to stop the recording...\n```\n\n## Other tools\n\nIn addition to `sonic-pi-tool` this project contains `sonic-pi-pipe` and\n`sonic-pi-logs`. These two programs came first and are written in Go rather\nthan Rust.\n\nEverything they can do can be done with the newer `sonic-pi-tool`, and as a\nresult they are no longer actively maintained. :)\n\nRead more about these tools [here][old].\n\n[old]: https://github.com/lpil/sonic-pi-tool/tree/master/old\n\n\n## MPL 2.0 Licence\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flpil%2Fsonic-pi-tool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flpil%2Fsonic-pi-tool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flpil%2Fsonic-pi-tool/lists"}