A Emacs plugin to enable live coding music in Ruby communicating with SonicPi.
SonicPi (http://sonic-pi.net/) was created by Sam Aaron.
Prerequisites:
- A checkout of sonic-pi https://github.com/samaaron/sonic-pi
- The
dash
package - The
osc
package - Highlight from EmacsWiki https://www.emacswiki.org/emacs/highlight.el
- SuperCollider
- Ruby 1.9.3+
git clone [email protected]:samaaron/sonic-pi.git
cd sonic-pi && app/server/bin/compile-extensions.rb
git clone [email protected]:repl-electric/sonic-pi.el.git ~/.sonic-pi.el
Install the required packages
M-x package-install dash
M-x package-install osc
Add to your emacs init.el
(add-to-list 'load-path "~/.sonic-pi.el/")
(require 'sonic-pi)
(setq sonic-pi-path "SONIC-PI-INSTALL-DIR/") ; Must end with "/"
;; Optionally define a hook
(add-hook 'sonic-pi-mode-hook
(lambda ()
;; This setq can go here instead if you wish
(setq sonic-pi-path "SONIC-PI-INSTALL-DIR/")
(define-key ruby-mode-map "\C-c\C-b" 'sonic-pi-stop-all)))
Start emacs emacs my-first-sonic-pi.rb
M-x sonic-pi-mode
M-x sonic-pi-jack-in
;;OR if you are already running sonic-pi-server
M-x sonic-pi-connect
;;Send buffer to sonic-pi
C-c C-k