One problem with using the Kaossilator Pro as a MIDI controller is
that it only has very few controls: the X/Y pad, one slider, one
potentiometer, and a few buttons - that's all. Of course, any
self-respecting control freak would have something more like this
in mind:

http://www.flickr.com/photos/apenny/2963893735/


Adding a USB-MIDI controller
----------------------------

One way to get more control(s) is by adding one of those fairly
cheap USB MIDI controllers "for laptop DJs". Here's my current
setup:

http://downloads.qi-hardware.com/people/werner/m1/midi/vjlab.jpg

Audio is played by the PC on its speakers and picked up by the M1
with the internal microphone. Mouse and keyboard connect to the
M1's USB ports. (I need a separate mouse because the M1 firmware
currently doesn't handle the pad built into my RF keyboard.) Labsw
acts as a fancy power switch for the M1. Neither line in/out nor
camera in are used.

The Kaossilator Pro (KP) and the nanoKONTROL2 nK2) both connect to
the PC with USB. The MIDI messages from both are mixed on the PC
with Jack, and then sent with an USB-to-MIDI adapter to the M1.

The connection routing in Jack's qjackctl ("Connect" panel) looks
like this:

http://downloads.qi-hardware.com/people/werner/m1/midi/qjackctl.png

I first tried to keep things a little simpler and use the KP as
USB-to-MIDI bridge, but found that the KP was very reluctant to
have anything to do with MIDI input. I can get it to accept
control input, but it refuses to play notes, let alone pass on
MIDI messages from input to output. This needs more investigation.


MIDI addressing
---------------

Since M1 presently only listens on one MIDI channel, both KP and
nK2 have to send on that channel as well. Note that MIDI channels
are usually counted starting with 0 (e.g., M1, vkeyb), which is
also what the MIDI specification says, but some count starting
with 1 (e.g., Korg (KP, nK2), vmpk).

With everyone sending on the same channel, controller numbers can
clash. KP and nK2 indeed have some overlapping numbers (on KP, the
"program memory" buttons with codes 49-56 vs. on nK2, the "M"
buttons of groups 2 through 8).

KP and nK2 both support reassigning of control numbers, but nK2
uses some proprietary Windows/Mac program and the KP2 has a rather
awkward procedure and just happens to exclude these eight buttons
from reassignment. I decided to save this battle for another day.


Video
-----

I made a little demo video:

http://downloads.qi-hardware.com/people/werner/m1/demo/MVI_1747.MOV

It's rotated again. To play un-rotated, you can use
mplayer -vf rotate=2

The audio track is "Art Now" by Alex Beroza, featuring Snowflake,
and licensed under CC-BY:

http://ccmixter.org/files/AlexBeroza/30344
http://ccmixter.org/content/AlexBeroza/AlexBeroza_-_Art_Now.mp3

The M1 patch is still a hacked "Tornado", this time with the
following controls:

  Variable Control  
  midi1     12      KP Pad X            rot = midi1*2
  midi2     13      KP Pad Y            zoom = 0.9+midi2/5
  midi3     91      KP Slider           wave_x = 0.5+midi3/5
  midi4     94      KP Potentiometer    wave_scale = midi4*20
  midi5      4      nK2 Slider 5        wave_r = midi5* ...
  midi6      5      nK2 Slider 6        wave_g = midi6* ...
  midi7      6      nK2 Slider 7        wave_b = midi7* ...
  midi8      7      nK2 Slider 8        t = time*midi8*5


Color controls
--------------

At the beginning of the video, I went through the new color
controls, with roughly this timeline:

00:00 green = max, red and blue = 0
00:08 added blue
00:13 removed green, added red
00:23 replaced green with blue
00:31 brought up all channels and increased color change rate

My color controls so far are more a proof of concept than anything
useful. The very simple changes I made to the color algorithm in
the patch don't provide good control over the color composition.
Furthermore, changing the color change rate also changes the phase,
i.e., the currently active color mix.

I also don't know why green still keeps on dominating.

- Werner
_______________________________________________
http://lists.milkymist.org/listinfo.cgi/devel-milkymist.org
IRC: #milkymist@Freenode

Reply via email to