[chuck-users] controlling individual chuck patches

Michael Heuer heuermh at gmail.com
Fri Apr 8 12:45:35 EDT 2011


> Tim;
>> could anyone offer advice on controlling individual chuck patches with an
>> external device?  currently my mode of operation is to add several shreds
>> and control their parameters with maudi sliders (buf.rate, reverb, delay,
>> gain), but i'd prefer to use an external controller.
>> i have an 8 channel alesis mixer with usb-- could this help to answer my
>> question?  please let me know if you have any controllers in mind, and also
>> which section of the manual is best to read for making these connections.
> Yes! And it's loads of fun.
> These days are good ones for tinkering musicians; lots of interesting MIDI
> controllers are getting released and music games (which have nice
> controllers) have apparently gotten over their prime popularity-wise leaving
> many controllers to the bargains bin.
> Go to your local second hand store or games shop bargain section. Find a
> interesting looking controller with a USB plug, if you find something
> especially exciting with a Playstation plug (or similar) find it a converter
> to USB. Essentially all game controllers with USB plugs will conform to the
> "HID" (Human Interface Device) standards, these should work everywhere
> without a need for extra drivers. You can get a MIDI one too, but those are
> most often more expensive and also less exciting (at least to me), they may
> come with nice leds that can blink though.
> Plug it into your computer (on Windows you may now need to hit "ok" and
> "continue" a few times).
> Open the folder in the /examples/ dir that deals with hid. These are quite
> clear. Use those to figure out what kind of data you can get out of it. If
> you found a MIDI controller instead use the MIDI folder, of course.
> Write a file containing UGen definitions at the top, then a Shred that deals
> with the controller, then use the main shred to deal with generating sounds
> (for example keeping track of a sequence). Use extra shreds if you found
> multiple controllers. You can mix MIDI and HID ones if you like, one per
> shred. If needed borrow code from the HID example for the one shred, and
> code from examples that generate sound for the other. A good "mapping"
> between the controller and the sound will likely be more important than a
> complex sound, if in doubt; keep it simple. If in doubt; try to not use
> feedback on the computer screen.

The LiCK stuff takes the following approach

Rhodey rhodey => dac;
440.0 => rhodey.freq;

LogitechGamepadF310 gamepad;

class Pitch extends FloatProcedure {
  fun void run(float ignore) {
    if (gamepad.isDPadUp()) {
      rhodey.freq() * 1.1 => rhodey.freq;
    if (gamepad.isDPadDown()) {
      rhodey.freq() * 0.9 => rhodey.freq;

class NoteOn extends Procedure {
  fun void run() {

class NoteOff extends Procedure {
  fun void run() {

Pitch pitch;
NoteOn noteOn;
NoteOff noteOff;

pitch @=> gamepad.dPad;
noteOn @=> gamepad.aDown;
noteOff @=> gamepad.aUp;


> Tweak this until it sounds good and seems expressive.
> Practice.
> Presto; within two days and 20 bucks you have a completely new instrument.
> Optional; look for other musicians and test your new instrument by jamming
> with them.
> Optional; play gigs using this as soon as possible and make notes of what
> works well and what doesn't.
> Optional; get addicted to finding cheap and unusual controllers, fill a
> cupboard with those.

Very good advice, Kas.  I am doing well at Optional item 3 but have
yet to do much of Optional items 1 and 2.  Coming up with mappings
that lead to interesting music is not a trivial task.


More information about the chuck-users mailing list