Seb Hue / Bisous Biset

Animo (abandoned)

Animo is a set of open-source music oriented software I developed.

  • Chamo - Sound design + music software
  • Blairo - Supercollider node based gui
  • Rino - Live coding

🐫 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
animo.txt Β· Last modified: 2025/08/31 14:06 by admin