Midi Integrator

A simple way to convert PC inputs; keyboard, mouse, joystick and more into midi input, combine with other midi instrument input, enhance, and then route to instruments, with quick re-configuration.

Highlights: 
  • Allows adding pitch-bend and modulation controls, via one or more touch-pads or a mouse, to any midi system
  • Allows regular Midi instruments to be controlled and routed much more easily
  • Triggers a note, control command, pitch bend, or preset action by any input as desired
  • Can convert your PC-keyboard into an auxiliary midi-input controller and keyboard
  • Works especially well with 2-dimensional instruments like the Axis-49, Starrlabs instruments, Tenori-On, or Harpejj
  • Enables features that are normally considered “high-end” in keyboards, such as keyboard splitting (parts of a keyboard playing other instrumental sounds), and key and octave shifting at the touch of a key.
  • Extensible with a Max/MSP development system. For example, it can be made fully micro-tonal
  • Gives the ability to easily do things that used to be hard or slow to do in midi
  • provided executable runs on Windows or Mac platforms, with source code provided
Design Intent: to create an open, extensible system to integrate a pc/mac and midi devices into a single musical instrument usable by anyone, with a flexible “set-up once and forget" process. This is my gift to the midi music world.
 
Copyright 2010, 2011 Ken Rushton.  Copying permitted under GPL3, see: http://gplv3.fsf.org/
 
Overview:
basically, one instructs ones' computer to take the input from various input devices: midi keyboards, foot-pedals,  PC keyboard, mouse and more, enrich with special info and route it to the virtual instrument of ones choice.

A. How the music flows:

You have the option of determining which key on any input device gets mapped to any virtual musical device; any instrument, any note or command. This is done by linking the input device to a simple, easily edited "mapping table", so the musician can set, for example, these rules:
  •  pressing the Green key  on my right midi keyboard, plays a middle C on virtual instrument 1,
  •  pressing the "H" key on the PC keyboard, plays a lower C on virtual instrument 2,
  •  pressing the "arrow-up" key on the PC keyboard shifts all my instruments up a semitone  

Some Examples :

  • Pitch-Bending and modulation with a mouse or touchpad;
  • Adjusting same;
  • Splitting a keyboard;
  • Bass with PC’s keyboard;
  • Educational children’s toy.
 

B. A bit more detail
 
 

How does it work?

For each input device (PC keyboard, mouse, axis keyboards, etc), one just creates simple tables that specify what each desired input action gets mapped to. These tables are simple to edit – even using Notepad, and simple to understand.
All keys on your computer release (triggers) a number when pressed, we can set a look-up table that translates that number into:  
  • First, the destination instrument: Left, Right, auxiliary Lx or Rx,
  • Second, the type of action you want, for example a:
    • Note:  sound the desired output note, at a desired velocity
    • Command: do some change to the target instrument, or even all the instruments
    • Preset-load: change the configuration of the instrument to a preset set of values, and tables.
  • Third, the new note number or command-name,
  • Fourth, the note velocity or command unit. (or quantity)
  • Fifth, a new expressive value called accent, for future use.
Note that everything is in upper case, (the comments are not to be included). Thus the text looks like this:
    29, L C OCT DN1  leftarrow  =>octaveDown
    32, L C SUS 127  spacebar =>Sustain
    30, O C KEY UP1  uparrow  => Keyshift+Semitone
   104, L N 60 65        key h is number 103 to the computer=C3
 
or to make it a bit easier to read:
 
 29,  L C OCT -1  leftarr=octaveDown
 32,  
 
 L C SUS 0    spacebar=>Sustain
 
Several versions of each table can exist, and changing the one currently loaded will reconfigure your instrument.
 

Summary

It's not complicated, and I visualize that people will trade tables freely. This would allow us to make our instruments do exactly what each one wishes, and for the community to evolve an excellent bag of tricks for all to share.

Step-by-step Example

Setting up the PC keyboard to play bass accompaniment. 

Appendix

Here is a short overview of how Max/MSP works.