Hacker News new | ask | show | jobs
by ThomPete 4287 days ago
For a long long time I have wanted to do a language for programming music. I like how easy this is to get started with it almost feels like the old tracker days.
1 comments

How is your conception of what is involved in 'do[ing] a language for programming music' different to super-colider or ChucK or puredata? Not being aggressive just interested in how you see the problem.
Getting started to begin with :)

It feels like the PHP of music programming environments.

I am a former musician so approach music more like Sonic Pi

I mean it's this

Sonic Pi

with_fx :reverb, mix: 0.2 do loop do play scale(:Eb2, :major_pentatonic, num_octaves: 3).choose, release: 0.1, amp: rand sleep 0.1 end end

vs. super collider

// Simple synth definition using the Atari2600 UGen: ( SynthDef(\atari2600, {|out= 0, gate= 1, tone0= 5, tone1= 8, freq0= 10, freq1= 20, amp= 1, pan= 0| var e, z; e= EnvGen.kr(Env.asr(0.01, amp, 0.05), gate, doneAction:2); z= Atari2600.ar(tone0, tone1, freq0, freq1, 15, 15); Out.ar(out, Pan2.ar(z*e, pan)); }).store )

// And a pattern to play it: ( Pbind( \instrument, \atari2600, \dur, Pseq([0.25, 0.25, 0.25, 0.45], inf), \amp, 0.8, \tone0, Pseq([Pseq([2, 5], 32), Pseq([3, 5], 32)], inf), \tone1, 14, \freq0, Pseq([Pbrown(28, 31, 1, 32), Pbrown(23, 26, 3, 32)], inf), \freq1, Pseq([Pn(10, 16), Pn(11, 16)], inf) ).play )

When playing music the ability to quickly get up and running is more important than the flexibility of the system. I.e. you wanna quickly get to the point when you have fun and then you optimize later.

But don't get me wrong supercollider is a fantastic tool and was a real innovation.

Fine, so still REPL but with built in stuff to get a performance going. I get the picture.