Hacker News new | past | comments | ask | show | jobs | submit login
ChucK: Strongly-Timed, Concurrent, and On-the-Fly Music Programming Language (princeton.edu)
87 points by codetrotter 38 days ago | hide | past | favorite | 27 comments

Ha, great to see ChucK on here again! I'm one of the early developers of ChucK along with its creators, Ge Wang and Perry Cook. Happy to answer any questions anyone has.

I use ChucK all the time since forever. And in completely different contexts. Generating blips for UI handlers or random audio data to test an FFT implementation. It really is the easiest music programming language to grok, and the built in concurrency primitives are awesome ;)

I wonder if its possible today to port the RTAudio lib ChucK is based on to the Web Audio API. Can we possibly see a ChucK.js for use in browser?

> I wonder if its possible today to port the RTAudio lib ChucK is based on to the Web Audio API. Can we possibly see a ChucK.js for use in browser?

This is in fact underway! Jack Atherton has been working on this though I am not certain of its current progress. Its certainly a lot more practical now with AudioWorklet now being available in all major browsers.

I have been waiting for the audio equivalent to svg for pictures for an eternity now, why has nobody made a synth sound addition to midi?

Module file formats [0] have been around since the 80s, and they can kind of be thought of as MIDI files with sound samples embedded in them. You can get some very impressive sounding full-length tracks in only a few kilobytes.

0: https://en.wikipedia.org/wiki/Module_file

Do you know if they have a .js implementation? Or some lightweight C one?

Are you asking for library recommendations for a simple standard used extensively for the last 35 years when there are already 6 libraries linked in the wikipedia page you were given?

As mentioned, there are so many languages for music/synthesis. pd, csound, SuperCollider, max/msp.

I don't know how you can want this so bad an not run into these. I mean I had the csound book like 15-20 years ago.

Do you know if any of these have open-source projects?

That sounds like a neat idea. Reminds me on SoundFont.

But isn't Midi the equivalent to SVG, Wave the equivalent to BMP, Flac to PNG and MP3 the one to JPEG?

> But isn't Midi the equivalent to SVG

MIDI (1.0) is more equivalent to NES/GameBoy-style sprites. It was designed almost exclusively with piano-like keyboard controllers in mind, suffers from a lot of 80's-era hardware limitations, heavily biased towards western music, relies completely on the sound bank for actual rendering (you can't even set your own pixels on a sprite - you can only say "paint a Mario here"), relies in some places on vendor-specific extensions, overall really it hasn't aged as nicely as say TCP.

A true "SVG, but for music" kind of equivalent would be an insanely interesting and challenging project. I'm not even sure if it should strive for more of a middle ground (so it can gain widespread adoption), or for flexibility (so it doesn't constrain creativity and allows expressiveness).

Also check out: MIDI 2.0, OSC.

Last I checked that's what people told me I was looking for, but when I tried to find some implementation that worked with .js I was stumped...

MIDI is more analogous to a coloring book than SVG

csound? pd?

Do they supply standard audio demos (mp3, et al)? I see demos, but they all require installing the software first. It would make sense to give demos people can hear before deciding to install the software, but I don't see any.

This is a great idea and actually wouldn't be that hard to automatically generate from the example code that is provided.

Ideally the language (or atleast the sound format produced) should be runnable in javascript in the browser. Or maybe it has no intermediary sound format?

The output is just a raw stream of digital audio- the engine itself is implemented in C/C++, but there is an effort underway to port this to Web using emscripten.

If you are interested in ChucK and related kinds of tools, the Kadenze courses are great, they are taught by real profs in the respective fields.

How does ChucK compare to Sonic Pi? https://sonic-pi.net/

This comes up a lot. Sonic Pi is not a audio programming language. It's a composition language that is a front end to an audio language. Sonic Pi sends requests for audio to SuperCollider under the hood. Chuck is comparable to SuperCollider, Csound, RCMix, Faust, that sort of thing. Sonic Pi is comparable to Overtone, Common Music, my own Scheme for Max/Pd, that sort of thing.

  > my own Scheme for Max/Pd, that sort of thing.
I think I ran across your video on the "Music with Lisp" YouTube channel some time ago. Neat stuff!

thanks, yes that's my channel for Scheme for Max/Pd stuff!

according to the tutorial,

SinOsc s => dac;

is a valid program, but i get

[chuck]: no active JACK server detected (or connection error)... [chuck]: no audio output device with requested channel count (2)...

Hey there, sounds like the audio IO engine itself is not successfully able to start or connect to Jack- is the Jack server running? That said Im a little rusty with Linux audio so might not be the best help here!

Sounds like it was named after Chuck Norris

but it looks like it wasn't as the ending K is capitalized.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact