Creating Traditional Instrument Sounds Using OSC (ChucK vs. SuperCollider)...
All, I hope this is not off topic :-) I have been playing with SuperCollider for a week or two since reading an article on creating live music with Perl code (http://toplap.org/index.php/Hacking_perl_in_nightclubs). Note - I am a programmer (mainly Perl), but quite a newbie with live coding and I know little to nothing about writing ChucK/sclang code. Essentially, there is an editor called feedback.pl (http://cpan.org/authors/id/Y/YA/YAXU/perl-music-article/examples/feedback-0....) that allows you to write Perl code that will create OSC messages that will be sent to SuperCollider. SuperCollider is running the following code (http://cpan.org/authors/id/Y/YA/YAXU/perl-music-article/examples/simple.sc) that, from my understanding, the simple.sc script listens for OSC messages, of which I can send from feedback.pl using built in methods 'play' and 'trigger'. For Example (Perl Code): sub bang { my $self = shift; # play a "middle c" note every fourth bang $self->play({num => 60}) if $self->{bangs} % 4 == 0; } I currently have this working, and I can make some pretty cool "digital" sounding music. What I would like to be able to have these sounds be conventional instrument sounds (Bass, Drums, Guitar, Trumpet, Piano, etc). Is there a way to achieve this through ChucK, or do I need to use a software synth like fluid-synth? I also want to be able to code, execute, and modify this live. Is anyone else doing this? Thoughts? -Dan
Hi Dan,
What I would like to be able to have these sounds be conventional instrument sounds (Bass, Drums, Guitar, Trumpet, Piano, etc). Is there a way to achieve this through ChucK, or do I need to use a software synth like fluid-synth? I also want to be able to code, execute, and modify this live.
There are several ways to achieving this in ChucK (and in SuperCollider too). To get more "conventional" instrument sounds: 1. Build them or control an existing STK model. Most of them are in ChucK: http://chuck.cs.princeton.edu/doc/program/ugen.html (also see samples in examples/stk/ in the distribution) There is a sizable update to enhance ChucK's interface for STK unit generators, coming soon in 1.2.0.5. 2. Especially for Drums and Piano, it might make sense to load existing samples via sndbuf. It may also be beneficial to write a small class for managing voices. 3. We have been planning to add a fluidsynth unit generator into ChucK, with which one can load sound fonts. This isn't implemented, but we hope to do it in the next few weeks. --- As for figuring out which language to use (ChucK / SuperCollider / other), that of course depends on your needs and preferences. Here are some high-level differences, at least between ChucK and SuperCollider. SuperCollider has been in development much longer (~10 years) than ChucK, and is much more mature in terms of class library functions, number of unit generators, and SC Server is super optimized. The learning curve for SuperCollider can be pretty steep. The language is implicitly-typed. ChucK, by comparison, is younger, much less optimized, and has less pre-made objects and unit generators. However, the language is designed such that many functionalities can be directly implemented in the language. ChucK is probably easier to learn, especially if you are coming from a C++/Java, or in your case, Perl background. The language is strongly-typed. ChucK espouses a pretty different way of thinking and controlling sound synthesis from other computer music languages in that it gives you arbitrary and concurrent control over time. For example, it directly allows one to specify time-domain operation/algorithm, at any granularity and in parallel. If you like, you might give both SuperCollider and ChucK a try. They both have many different (and similar) things to offer. I hope this helps. Best, Ge!
participants (2)
-
DANIEL MAGNUSZEWSKI
-
Ge Wang