PDA

View Full Version : Any Coders here? -> ChucK



massplanck
02-07-2007, 06:35 PM
Ive been playing with this for a few weeks now. Great fun if a bit geeky but you can do lots of neat stuff in it. I have nearly made my self instant minimal techno song generator which will hopefully end the need for minimal techno producers.

http://chuck.cs.princeton.edu/

MARK ANXIOUS
02-07-2007, 07:34 PM
bloody hell this looks right up my street. d/l'ed and installing!

theledge
02-07-2007, 07:50 PM
yeah chuck is quality, even better (and much more matured ) is Supercollider. SC is a really amazing language, based around the principle that the language and the synths can run on entirely separate computers/locations/whatever.

chuck has a much more forgiving syntax if youre just learning, but you really should check out SC if you get into it dude.

Im just in the middle of a 3 year course with this sort of stuff basically at the centre of it -- i must say that since i got into it ive used traditional production software less and less - it just seems limiting - this is a niche area admitedly but it suits me just fine

theledge
02-07-2007, 07:52 PM
check this out - cylob isnt my favourite artist music wise but is one of the most inspiring ive come across in respect of how he makes music

http://durftal.com/cms/cylobmusicsystem.html

massplanck
02-07-2007, 09:01 PM
bloody hell this looks right up my street. d/l'ed and installing!

Download the MiniAudicle mark makes it easier to add scripts on the fly.. rather than just ****ing in notepad & dos.

Check out some of the stk examples for an example of how intricate you can get some instruments to sound. try stif-karp.ck & mandolin.ck

My next task is to try and get chuck hooked up through the liveapi telnet thingy and into abelton. SC is mac only I think. :(

massplanck
02-07-2007, 09:09 PM
The next version of ChucK is out at the end of this month i think. FFT & Spectral Analysis capabilities are being added.

theledge
02-07-2007, 09:19 PM
SC is mac only I think. :(

sorry dude i forgot that

there is a version for windows called Psycollider, i used it for a few months before the happy day i bought a mac

you can download it here http://sourceforge.net/project/showfiles.php?group_id=54622&package_id=133499

it is harder to do user interfaces than the mac version but basically the rest of the program is there, and it works pretty nicely. let me know how you get on

detfella
02-07-2007, 10:58 PM
went down like a lead ballon when i posted it

http://www.blackoutaudio.co.uk/forum/showthread.php?t=19640

here's a track i made using it, it was my first go with chuck so i glued some bits together in cubase

http://www.zshare.net/audio/2240633b6affd3

i made the track for this free mix, where people made tracks with pd, max/msp and chuck

http://gascomm.org/ninja.trax/ntv7/

massplanck
02-07-2007, 11:20 PM
Lol i remember you posting about that.

Lets face it though, it is coding and its not for everybody.
I went back to college this year and started programming again so having ChucK is a welcome little break for me after a few hours of learning C & C++. ;)

It a great language for getting down into the nitty gritty of audio & sequencing on computers and its almost an experiment in programming syntax.

I have made a few simple riff & percussion generators, so i can just hit start and a random (within my constraints) riff will be generated and looped for 8 bars, then another is generated and looped again, etc etc. If I like this riff i hit a key and it breaks out of the loop and repeats this riff i 'like'. Next i will throw this loop into another function that generates some further constrained randomness (ADSR, wet/dry, sligthly rearrange notes) and generate more sequences which are related, and assign these riff to different keys .. all on the fly.

I'd love to be able to pump these sequences into into a VST or abelton etc. So thats my pet project.

massplanck
02-07-2007, 11:24 PM
sorry dude i forgot that

there is a version for windows called Psycollider, i used it for a few months before the happy day i bought a mac

you can download it here http://sourceforge.net/project/showfiles.php?group_id=54622&package_id=133499

it is harder to do user interfaces than the mac version but basically the rest of the program is there, and it works pretty nicely. let me know how you get on

Thanks, wish i had known that before.

Im gonna stick with chuck until i know it inside out first, and then ill give it a bash. :)

theledge
03-07-2007, 12:15 AM
Lol i remember you posting about that.

Lets face it though, it is coding and its not for everybody.
I went back to college this year and started programming again so having ChucK is a welcome little break for me after a few hours of learning C & C++. ;)

It a great language for getting down into the nitty gritty of audio & sequencing on computers and its almost an experiment in programming syntax.

I have made a few simple riff & percussion generators, so i can just hit start and a random (within my constraints) riff will be generated and looped for 8 bars, then another is generated and looped again, etc etc. If I like this riff i hit a key and it breaks out of the loop and repeats this riff i 'like'. Next i will throw this loop into another function that generates some further constrained randomness (ADSR, wet/dry, sligthly rearrange notes) and generate more sequences which are related, and assign these riff to different keys .. all on the fly.

I'd love to be able to pump these sequences into into a VST or abelton etc. So thats my pet project.

for me i like the way it forces me into close contact with the nitty gritty of digital audio

i have a long way to go before i master it but its getting there. Just reading on that other thread, personally i find it very musically inspiring, and very easy to relate to but hey i can understand that it's not everyones cuppa tea

Hooking it into ableton or logic would be the icing on the cake if it could be done right, im gonna be looking into this at some point also . .

massplanck
03-07-2007, 12:22 AM
Someone on the ChucK forum thinks it could be possible using the LiveAPI as Chuck has networking capabilities too. I dont know yet what the deal will be. Im a slight n00b to this but i think having a goal like this will be good excercising the old brain cells.

I cant even get the liveAPI working atm though. I cant telnet my localhost for some reason. So first things first, but ill post my progress.

detfella
03-07-2007, 07:21 AM
what i like so much is you are forced to approach compositions from a different angle

MARK ANXIOUS
03-07-2007, 09:57 PM
check this out - cylob isnt my favourite artist music wise but is one of the most inspiring ive come across in respect of how he makes music

http://durftal.com/cms/cylobmusicsystem.html

cylob is a good mate of mine from the past actually. i wondered what he was up to now.. yeah he's totally on it. love his music...

god this chuck shit is giving me a headache now hahahah!!..

ok got a few things to do in the next few weeks but gonna get my head round this for sure. keep on chuckin!

massplanck
03-07-2007, 11:52 PM
I *almost* have chuck driving algorithmic sequences in abelton now. i just used Midi Yoke to connect them, i had to find a class that some guy wrote to wrap midi messages in ChucK. I have sound but the timing is all ****ed up. > perseverence ;)

massplanck
03-07-2007, 11:56 PM
god this chuck shit is giving me a headache now hahahah!!..



yeah it can be tough. Im going to stick this one out though, its worth it.

have this from another forum ;) and play around with the 5 & 4 values.

SndBuf s=>dac;
"special:ahh"=>s.read;
for(;;)
Math.tan((5::ms=>now)/4::ms)=>s.rate;

theledge
04-07-2007, 12:06 AM
kewl, the one which turned me right on to chuck was this one. the best thing about chuck is the control it gives you over time and events and this hits the nail



// impulse to filter to dac
Impulse i => BiQuad f => dac;
// set the filter's pole radius
.99 => f.prad;
// set equal gain zero's
1 => f.eqzs;
// initialize float variable
0.0 => float v;

// infinite time-loop
while( true )
{
// set the current sample/impulse
1.0 => i.next;
// sweep the filter resonant frequency
Std.fabs(Math.sin(v)) * 4000.0 => f.pfreq;
// increment v
v + .1 => v;
// advance time
100::ms => now;
}


the complete code and background is about half way down this page, give it a try although you may well have already seen it
http://chuck.cs.princeton.edu/doc/learn/tutorial.html

try making that in logic :laughing:

massplanck
04-07-2007, 03:48 PM
I have chuck doing mad shit in abelton now. I'm only using chuck as a midi generator (im not routing audio from it yet) but if anyone is going to give this ago here a few things i had to do.

install Midi Yoke (virtual midi ports between devices)
http://www.midiox.com/index.htm?http://www.midiox.com/myoke.htm

download this
http://electro-music.com/forum/download.php?id=8447
rename the file to chuck.exe and copy over your existing chuck executable.
This file is version of chuck compiled for ASIO. But some dude wrote it himself, so make a backup of your origional exe incase something goes wrong.

get this -> Its a class someone created which chuck which simplifies/wraps the process of sending midi messages
http://www.rattus.net/~packrat/audio/ChucK/files/midisender.ck

Now for some reason i have to copy the midiesender class into each file i use to generate midi (it can never find it unless it there).

do a chuck --probe and make sure you can see your midiyoke ports and what they are numbered as

now here the code for getting a note to play

MIDIsender midi; // create a midisender object
midi.open(3); // whatever port you have chosen
midi.set_channel(1); // the default.

midi.noteon(60, 40);
1::second => now;
midi.noteoff(60);

make sure your softsynth in abelton is ready to recieve on that channel and huzzah you have chuck driving it.

I havent a ****ing clue how to get MIDI sync/clock working yet though!

massplanck
04-07-2007, 03:49 PM
the complete code and background is about half way down this page, give it a try although you may well have already seen it
http://chuck.cs.princeton.edu/doc/learn/tutorial.html

try making that in logic :laughing:



nice!

278d7e64a374de26f==