Baking the Sonic Pie
There is already an article which sings praises to Ruby.
And so does the author of Sonic Pi.
Amazingly, the concept of programming is probably emerged along with the first musical machines. These days, I see how code becomes the universal language which gets ideas across when nothing else can. And the music is the code of feelings.
Except when you have “amusia."
Today I got curious to explore Sonic Pi and its integration with DAW via MIDI in particular. This research was inspired by Propellerhead Sequencer, and the goal was to implement a free analog on Ruby.
The result was satisfying!
To render all these MIDI notes into the sound, I used Propellerhead Reason. It did help to create per-channel controllers and assign them to the instruments via “Surface locking.”
With comfort
Sonic Pi looks nice, but its code editor is not yet as powerful as a professional IDE. So I started my RubyMine, and after a few edit-save-reload cycles, it became apparent that a bit more integration is needed. With a few helpful hints from the Sonic Pi community, I implemented a reload function which is triggered automatically when the file is saved. Also, I checked out Sonic Pi source code and extracted documentation from it. The yard.rb
file, when placed into the project dir, does enable the smarts, like the code autocompletion, analysis, and instant help.
P.S. Sometimes writing code for fun is a nice break from writing code for a living!