ChucK!
This is my page of ChucK files.
What is Chuck? It is a programming language that enables you to make sounds from your code.
Index of My ChucKstuff
You can check out my page for Getting Started in ChucK. It was originally a part of this page, but, has expanded to disrupt readability of this one.
My system is quite modest (AMD Duron 800, 512mb of RAM, SBLive!) but, I am very happy with the results I've been getting using the software. It is designed more for Audio Experimentation and Creation of Sound, rather than Composition as such. That said, it accepts MIDI in (which is on today's to do list). The idea of having something that I can really make my own MIDI instruments in is exciting. I tried Synthedit, Reaktor and other similar things, but; Synthedit just didn't do it for me, Reaktor - I cannot afford, and my system is too slow to use really well.
ChucK is free. Free as in Beer, and, Free as in Freedom. So, I'm on a win-win situation here. I intend to draft up some ideas for new modules and such, and post them to the mailing lists when I get more acquainted with the language.
This is a language I deem worthy of spending days and days learning, so that I can emulate Casio keyboards in.
1: Stepped LFO pitch Sweep
This was my first finished patch. Was pretty easy to do, actually. Was a good crash course into learning the syntax.
3: LFO PWM & Filter Sweeps
This is really just #1 with a waffle iron on the side of it. Nothing too much different, just jamming a few more randomly speed-seeded LFOs into the backs of some other functions and droppin in a filter.
5: FM the Loscha way. Yeah boiyeeee
And now for something completely different. A sine carrier is modulated by an ascending modulator. This took quite a while to get working - a few hours, actually. I had to discover through trial and error what the values of I (the modulation index) the program wanted, which only took about 10 minutes to get working happily. This is a little bit fancy, in that I use a different envelope for the 2 parts of the sound. I thought it would be a bit less fatiguing on the ear like that, however, it is quite tiring after a while. So, because of that, I made Loscha-05b.ck, which is the same shit, but, with a random integer frequency modulator. And, just to prove I'm not a completely lazy prick, here is a non integer one, Loscha-05c.ck
I have given my examples Odd numbers, so, if I come up with something to fit in between later, I'll have an easily maintainable system.
Day Two: The Tambura!
A lot of you have seen and used my Radel Saraang Electronic Tambura.
tamb-a.ck tamb-b.ck tamb-c.ck are my first attempt at cloning it using Chuck. To run this example you need to type in chuck.exe tamb-a.ck tamb-b.ck tamb-c.ck and chuck will run them all together. This is one of the more powerful aspects of chuck. Some of the example files are things like drum machines. If you run chuck.exe kick snare cowbell you'll get a pattern with those instruments, run it again chuck.exe snare hi-hat and you get yourself the breakdown. I'm now working on a tambura construction kit. A set of files that you can run from the command line to make different tunings and patterns on the tambura. Then, this could be activated at performace time using batch files or such. Tricky!
What's Next for the Tambura?
Well, something that is crying out for attention in this language is a good hollow bodied resonator cavity filled with strings type thing. I hope to be able to come up with something that sounds reasonably good, and then I'll submit it to the chuck-dev list, and maybe it'll make the cut for a further revision. That said, my electronic tambura doesn't have a resonator on it. There is a sitar primative in the language, too.
A week later(or so)
Tambura Strikes Back! This time, it's personal.
I spent almost all day today working on the new Tambura. This meant re-jigging my head, and the way it thinks about programming. I have to accept that I no longer have to control the exact flow of the program, and that I can rely on the software to do this.
I grew up coding in Turbo C 2.0 and QuickBasic 4.5. Old Style programming. My coding hasn't caught up with the new style of stuff. Chuck has made me want to do it. I had a crack at learning Python a few years ago, but, I didn't have the motivation to do learn it. I think that maybe, after ChucK, I might get the hang of Python a bit better.
So, the fruit of Today's coding extravaganza are the following two files, which are subtle variations on the same thing.
Tabura with Sporking and Tambura_with_PulseWaves.ck. So, if you're into Chuck, give these a run, and let me know what you think. They still need a lot of work,and more cool stuff needs to happen, like a real resonating cavity and so on, but, um, yeah. They're a start. I feel proud of this days work!
Oh yeah: A sneaky peak into the next update for this page. I've been making a Game in ChucK
Future Tasks:
- Walsh tone oscillator and get some VL1 type waveform happening.
- After3Cut, cut one waveform after 3 cycles, and impliment envelope modification.
- 931 oscillator bank
- 930 oscillator bank