Table of Contents
Animo (abandoned)
Animo is a set of open-source music oriented software I developed.
π« Chamo
Chamo changed a lot. It started as a complete node based music software where users were able to code their own nodes based on a tracker with patterns and a timeline.
It's βfinalβ version is quite different and way simpler. It is a framework that allows to create sound like you would create an image. In Chamo, you literally draw sound. It is highly inspired by Processing and p5.js.
It can either open your Chamo program and visualise it (it could even be interactive with your mouse cursor) or process it at full speed to generate a .wav file.
Even if it is kind of abandoned, Chamo is important to me cause it was my gateway to sound / music software development and I basically learnt everything with it.
Chamo can also receive OSC events for interactive programs.
-- init() is called once at the beginning function init() -- Define samplerate and format samplerate(44100) format("centered", 100) -- Initialise variable i = 0 end -- update() is called repetitively function update() -- Define a set of notes local notes = {523.25, 659.25, 783.99} -- Save the file once 10s has passed if time() >= 10 then save("audio.wav") end -- Draw a point and rotate its position depending on time and note (in hertz) rotate(time() * notes[1]) point(50, 0, 1) end
𦑠Blairo
Blairo is a web browser node based graphical user interface for Supercollider. It was meant to allow to build Supercollider patches using simple nodes. It is not finished and not a 100% usable but it helped me get a better understanding of how Supercollider works. It basically compiles the node patch you build on your web browser into a scynth and send it to Supercollider. It helped me understand how ugens and scynth really work as I had to compile user patch into .scsynthdef binary format.
π¦ Rino
Rino is a live coding program based on the Lua programming language. It is meant to be used with other music software via the OSC protocol (Supercollider, VCV Rack, etc.). Here, live coding means that you create rhythms and melodies through the use of algorithms. Each time you update the file you are working on, Rino updates the sequence. It is highly inspired by the Supercollider pattern sequencing Functions.
If Rino is not in development anymore, I used it a lot during live coding events and I really rarely had issues with it.
-- Set the BPM by changing the BPM global variable BPM = 60 -- Create a loop called "kick" function loop_kick() -- Send a play command to Supercollider scplay("kick") -- Wait for 1 beat wait(1) end function loop_lead() local freq local dur -- Define a pitch sequence -- Each time loop_lead() is called, it will loop through the notes (hz) list freq = pseq({220, 330, 440}) -- Define a time sequence (in beats) -- Each time loop_lead() is called, it will pick a random note time in the list dur = rand({0.125, 0.25, 0.5}) -- Send a play command to Supercollider with parameters scplay("sine", { "freq", freq, "amp", 0.5 }) -- Wait for a certain period of time wait(dur) end