The sonicpi vim plugin requires the following:
-
An installation of Sonic Pi 2.4+.
-
A tool to interface with Sonic Pi. The default is sonic-pi-cli.
The plugin enables itself when Sonic Pi is running and the Ruby filetype is initiated (let g:sonicpi_enabled = 0
to disable), and provides the following features:
-
<leader>r
- send buffer to sonicpi -
<leader>S
- send stop message to sonicpi -
Contextual autocompletion of Sonic Pi terms with omnicomplete (
<C-x><C-o>
by default). That is, if you havesynth :zawa,
in the line, omnicomplete will provide parameter names for:zawa
, et al! -
Extension of Ruby syntax to include Sonic Pi terms
Prerequisites: Sonic Pi 2.4+, and sonic-pi-cli or similar.
If you use pathogen (and you should), simply clone this repo into ~/.vim/bundle/
like so:
git clone https://github.com/dermusikman/sonicpi.vim.git
Whenever Sonic Pi is running, and you haven't disabled the g:sonicpi_enabled
flag in your configs, the plugin will activate. Otherwise, it's a normal Ruby session!
g:sonicpi_keymaps_enabled
can be used to disable the default keybindings.
g:sonicpi_command
can be used to configure what tool is used to send the
code to Sonic Pi. The default is sonic_pi
.
-
sonic-pi-cli. The default.
-
sonic-pi-pipe. Written in Go, and more responsive than sonic-pi-cli.
Fix autocompleteMake contextual autocomplete (e.g., a list of samples followssamples
)Add movement for Sonic Pi style files, ala ruby.vim's modifications(Now we stay in the Ruby filetype)Extend Ruby syntax to incorporate Sonic Pi directivesUpdate for Sonic Pi 2.4- Add named notes (e.g.,
:c4
,:e2
) and chords (e.g.,sus4
,m7+5
) - Add oddball contexts beyond the sounds. For instance, we've added the "spread" context to include
rotate: