Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
ChucK: Strongly-Timed Music Programming Language (princeton.edu)
93 points by FrankyHollywood on Nov 7, 2015 | hide | past | favorite | 20 comments


For some reason, Coursera doesn't seem to have the page up any more, but there was a great MOOC about programming for musicians[0] that featured ChucK as the main language. They even featured the creator of ChucK in some of the videos. He's also the creator of some of the popular Smule Apps for iPhone, like the autotuning app "I am T-Pain"[1], which all feature ChucK under the hood.

[0] https://www.mooc-list.com/course/introduction-programming-mu... [1] https://www.youtube.com/watch?v=5HaIMA9YkSg


That same course is now being offered on Kadenze: https://www.kadenze.com/courses/introduction-to-programming-...


Would this also work as a "music for programmers" course?


Great course. I really got strong footing with ChucK over that ~2 month period. https://soundcloud.com/kadenzeofficial/sets/student-portfoli...


Since it's also being discussed, I blogged about my experiences learning SuperCollider: http://subnaught.org/supercollider/archive/


I'm currently taking a class taught by the creator of Chuck, Ge Wang. Great guy. He always tells people that Chuck "crashes equally on every platform".

I find ChucK to be a pretty easy language to get into. It lends itself really well for algorithmic composition and live coding. I have quite a bit of fun with it!

A big downside to ChucK is that it has a very limited set of unit-generators for sound, and it's very hard to do any sophisticated synthesis and sound design. That being said, it's pretty easy to build third party chuck plugins (called "chugins"). I really like working with Csound, so I built a Csound chugin: https://github.com/PaulBatchelor/ChuckSound


For people unfamiliar: ChucK is probably one of the easiest ways to get started programming synths, and still one of the best ways to play live, layered audio. It comes with some nice tools (miniaudicle) to mix/arrange live music.

Supercollider (or less programming-focused tools) are more stable and can even more configurable, though there's a bit more of a curve. They're also not as explicitly focused on live performers.


> "ChucK is probably one of the easiest ways to get started programming synths"

i have to disagree. if you compare to SC, maybe. but because time is a first class citizen of ChucK, it actually complicates the process of programming sound. in that sense, i think something like Overtone is actually much simpler.

there are higher level methods for programming synths... the highest level, of course, being an actual (hardware or software) synth with an interface. which is certainly the easiest way to start programming sounds.


Do you have any experience with cSound ? ChucK is kinda hard to make a wrapper for.. So you have to run it parallel with other controller or audio workstations... At least as far as I've learned. But I've only been into ChucK for a few months.


no I don't. I only dabble with these languages for fun. as a musician before a programmer, I find live coding very novel, but never the optimal way to produce live music.

so I know this is not the answer you are looking for at all, and I know people will argue with this, but, my 2 cents: if you find yourself trying to sync multiple live coding environments, start a band, or learn something like FL Studio.

music is solely about output. the means to create it are irrelevant.


I totally agree. Just exploring. I'm also a musician first.


i'm really interested in chuck. ge wang is a brilliant guy

here's some SuperCollider music i wrote if anyone is interested.

source: https://github.com/keypulsations/variations/tree/master/lilj...

audio: https://soundcloud.com/keypulsations/liljedahl_abiogenesis_1


Will you ever annotate/comment the source? It seems really interesting that the little amount of code can produce such a long work. Would love to learn how it all fits together. Will also have to look at the docs and figure out what's happening...


Hey keehun, I'd be happy to add some annotations if you're really interested. shoot me an email keypulsations at gmail


See also: Programing as Performance using SonicPi. https://www.youtube.com/watch?v=TK1mBqKvIyU


I wrote some blog posts about ChucK a couple of years ago. I thought it would be interesting to teach programming from the point of view of music.

http://blog.afandian.com/tag/oxlork/

It was a rewarding experience, and quite fun to start from musical principles, which have many common concepts, ranging from control structures to continuous and integer variables.

This was part of the Oxford University Laptop Orchestra, which was a spin-off from the Princeton project.

The blog posts went the way of all side-projects...


Last time I checked, it was way less powerful than SuperCollider, and development was kinda stalled. Happy to see there is a new version though.


In what sense, I am honestly curious. I have only glanced over Supercollider and dabbled in ChucK. I imagine there are higher-level constructs in SC?


When I tried it a few years ago, there was no way to read a stereo wave file :-) Looking at the changelog, it seems it was introduced around version 1.3.0. It was a showstopper for me then. At that time, I could not find an equivalent of SuperCollider's Patterns library which is fantastic : http://doc.sccode.org/Tutorials/A-Practical-Guide/PG_01_Intr...


The JavaScript version: https://github.com/aknuds1/chuckjs

Demos in the browser: http://chuckdemos.com/




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

Search: