What happens when ChucK, the free elegant and fast sound coding environment, comes to Unreal Engine, the free-for-most-users game engine that’s also a motion graphics and live audiovisual tool? Nerdy magic, that’s what — a reason to turn off your phone alerts and hide and make the immersive AV world of your dreams. Or pretend you’re a Stanford student. It’s … Chunreal!
Seriously, you could probably just get a Stanford sweatshirt and coffee mug. Go fighting — uh… wait, what’s Stanford’s mascot, let me look… wait a minute, a tree? I’m confused.
Let’s go back to GitHub and set this up. If you don’t know ChucK, it’s “a strongly-timed music programming language.” It was born at Princeton, back when Ge Wang was doing his PhD, but has since migrated to CCRMA and Stanford along with its creator – and contributions have grown. You can do a ton of stuff with timing and dynamic control rates, it’s easy enough that students who have never done this stuff before are up and running quickly (so also potentially, you know, the rest of us), and it’s expressive and playable. It also works on-the-fly – ChucK was live coding before talking about live coding was such a thing. And it’s free.
If you want to learn ChucK, you also have plenty of options – there’s a Kadenze video course, a book, and if you’re really in a hurry, a quick photo comic you can read in about five minutes.
Here’s where this gets cool in Unreal Engine. ChucK runs as a MetaSound node – meaning you can just drop it into an Unreal level. You can make multiple nodes, and combine those nodes with MetaSounds nodes. Think of ChucK here as a single, programmable module in a larger modular environment. And having it in Unreal opens up other possibilities. You might just use the sound capabilities. Or you can add Unreal’s physics capabilities, and mix visual physics behaviors with physically modeled control of sound. Or you could make interactive sounds and musical scores for a game or other immersive interactive environment. Or you could use ChucK to help assist sound design and composition for scoring motion graphics and animation. The examples alone cover chaining DSP, interactive with Unreal parameters on levels, responding to events, and working with physics.
The key is, you can set and get ChucK variables with this setup, so pretty much any interaction is possible.
Chunreal ships as an Unreal plug-in, so you’ll need to set it up to compile, though that’s a relatively straightforward process. (Well, mostly – we’re talking Xcode and Visual Studio here.)
Check the Git repository, which includes sample files and everything needed to build, provided you have Unreal set up:
https://github.com/ccrma/chunreal
And see the wiki which has a step-by-step guide.
Great work by Eito Murakami and Ge Wang from Stanford’s legendary CCRMA program.
And ChucK is a beauty. If Unity is your jam and not Unreal, ChucK runs in Unity. And it’s in TouchDesigner. (You can mix TouchDesigner and Unreal, by the way.) You can work with machine learning with ChucK – and that’s not the boring generative AI “let me type a text prompt and you create something unlistenable” AI, but more versatile applications where you can play around with interacting with your machine. Of course, you can add ChucK to Pure Data and Max/MSP, for even more “hey dawg” modular thing-in-another-modular thing action than ChucK in Unreal is already giving you. You can use it with FAUST, too – not sure what the status of FAUST in Unreal is, but I imagine that’s coming if it isn’t done already.
Oh, hey, also – as Tom Avatars points out, there’s a RNBO implementation for MetaSounds, too.
So, you could fire up Unreal Engine 5.3, add a node with some ChucK code in it, and connect that to a couple of RNBO-based nodes you built in Max/MSP, and connect those to some MetaSounds nodes, and connect all of that to a ray-traced visual environment you run live and control with a PlayStation controller? (For example?)
Yes. Yes, you can.
https://github.com/Cycling74/RNBOMetasound
In the midst of dark times for many other things, it’s a good time for DSP. Enjoy. Erm, chenjoy. Chuhhh… I’ll just let you download it.