A DIY capacitive multi-touch midi instrument, protoyped as a bachelor final essay by Shawn Pinciara. The project is based on the work of Narjes Pourjafarian, Anusha Withana, Joseph A. Paradiso and Jürgen Steimle.
A detailed tutorial on making a surface with Arduino UNO can be found here.
The other pieces of software to be installed are:
- Processing MIDI library (themidibus)
- MIDI virtual ports (LoopMIDI)
Instead of using the Processing file cited in the tutorial, the file Processing/MTK_MIDI/MTK_MIDI.pde should be used instead.
The BlobMidi class handles the convertion from Blobs object (of the MultiTouchKit library) to MIDI events.
It is instantiated at setup() and his update() function called during the loop(), when the blob object (corresponding to the fingers’ touch) becomes non-null.
The update() function handles the blob in the 3 states:
- At push
- Usually sends a NoteOn
- At hold
- Usually sends a CC
- At release
- Usually sends a NoteOff
All the states are debounced.
To offer more customization for different use cases these capabilities are offered:
- Discrete Map functions: to convert X,Y of the blobs not array indexes of MIDI notes (mapToInt() )
- Modes: the variable mode let the user program different MIDI convertions to handle the different use cases and mapping (standard modes are 0 = drum , 1 = piano , 3 = pentatonic scale)
- Log: all data can be recorded on tables and saved as CSV on mouse click or finger release