Archive for the ‘Max/MSP’ Category

nanoKONTROL

July 16, 2009

I bought a Korg nanoKONTROL earlier this month. It has nine faders, nine knobs, 18 switches, and VCR controls. Here’s a pic –

nanokontrol

I downloaded and installed the USB driver and editor for OS X, booted up Max/MSP and there was my controller. I decided to use the controller with my ‘munger’ patch. The munger~ object has a number of messages and inputs that are hard to control from the keyboard and touch pad. Using the controller I could have instant access to more than one input at a time. It seemed like a good idea.

nanoKontrol_patch
nanokontrol_patch

It’s pretty straightforward. The object ‘midiin’ picks up the data on channel a. The object ‘midiparse’ routes control changes to output 3. These can be ‘unpack’ed allowing you to see the control id and value. I pass the control changes to three separate ‘route’ objects. The ‘route’ object on the top right handles the nine knobs – their ids are 14 15 16 17 18 19 20 and 21. The ‘route’ object immediately below handles the sliders – their ids are 2 3 4 5 6 8 9 12 and 13. I don’t know what happened to 7 10 or 11! The ‘route’ object to the left of the sliders handles the playback controls. I’m not using those at the moment.

The knobs and slider send values that vary from 0 – 127. These values must be tuned to work with the munger.

munger_patch
munger_patch

The ‘munger~’ is a granular synthesis object. On the upper right is the ‘sfplay~’ object that loads and plays a sound file. Around it are grouped various message boxes that open the sound file including a toggle to start playback, a toggle to looping on/off, speed control, pause and resume. The audio signal goes directly to input 1 of the munger. A number of message boxes are attached to the same input including a power on/off toggle, a toggle to turn recording on/off, number of voices, smooth (no filtering) and scale (a filter sieve set to the Fibonacci series). Inputs 2 3 4 5 6 7 and 8 control grain separation, grain rate variation, grain size, grain size variation, grain pitch, grain pitch variation, and stereo spread.

Look back at the nanokontrol patch. You will notice that the control values pass through a series of math objects, a floating point number box and end up as input to eight ‘send’ objects labeled ch1 through ch8. On the munger patch there are eight corresponding ‘recieve’ objects. The tuned control values are passed from the send objects in the nanokontrol patch to the receive objects in the munger patch. The audio output of the munger is passed through left and right channel volume controls to the ‘dac~’ object. The dac object has two messages, start and stop.

That’s it. Of course the tuning is the important part. I will continue to ‘fine tune’ both the controller and the munger. I will post updates as I go …