HACKER Q&A
📣 belfalas

Unconventional Use of MIDI?


Hello HN, recently I have become interested in how to create more tactile and physical interfaces for software. It occurred to me that there is already a fantastic external-controller-to-software bridge available via MIDI. So in some sense this post is really looking for inspiration and prior art.

Have you ever seen or implemented a custom physical controller for your software via MIDI? (or some other protocol). I'm curious what super cool analog controllers exist for software that I am not aware of. Thanks much in advance!


  👤 snodecoder Accepted Answer ✓
I would recommend using Control Surface Library as your framework. It is robust and flexible and has lots of different hardware options that have already been integrated into this framework by the community. This enables you to go all out on design ;) https://github.com/tttapa/Control-Surface

Together with a friend I've been working on this beasty project in C++ (initially without the CS lib). We did some liveshows back then and decided that we needed some more control gear. But not just a laptop focusing launchpad, we wanted to forget there was even a laptop (or other hardware) attached to this controller, so that all our attention and focus would be on the music and the crowd, and above all: we wanted something that would instantly announce your presence on stage. So after more than a decade of work (on and off), and a lot of iterations, we have build 2 quarter circle 'cockpit style' midi controllers made from bend aluminium, spanning more than 2,5 meters combined. We've made our knob design with the idea that you would literally be able to fold your laptop and store it underneath the controller, and perform a liveset without looking at a screen.

The last bugs are still being solved, so we hope to test this in a live setting soon :) (For some pictures see: https://photos.app.goo.gl/8NHQM1Us71oJyB5B9)


👤 atomize
GIMP has allowed you to connect a MIDI device via plugin for ages now. Unconventional, sure, but anywhere physical knobs, sliders, buttons, and toggles will facilitate productivity over software UI, MIDI is widely supported, works over USB, and is an easy to comprehend protocol.

👤 rapjr9
Not so unconventional any more but some people use MIDI to control DMX-512 based lighting systems in shows:

https://www.lightjams.com/midiDMX.html

This makes for a much cheaper lighting controller (any old keyboard with MIDI) and lets you sync the lights to the music when part of the music is MIDI based.

Relatively new controllers such as the Linnstrument and Seaboard Rise can output MIDI MPE to control many musical parameters at the same time in expressive ways. In your thinking about unconventional uses for MIDI, MPE might give you a lot more data to work with.

I created two video camera based Theremin's to output MIDI data a long time ago, one for a PC and one for an Amiga:

http://zoom.interoscitor.com/InterOscitor/ http://zoom.interoscitor.com/PetersonEnterprises/videotherem...


👤 SyrupThinker
While it is not quite what you asked (at least I think), at some point I've played around with some Akai MIDI controllers [1] of a friend of mine.

I ended up using them as crude I/O devices for a Tetris-like game [2] and for simple animation tests [3]. Even ported it to WebMIDI, but hit some barriers in the amount of IO the drivers and link could handle.

At some point I must have forgotten about this, so thanks for reminding me. I might also experiment with this again. :)

Also sorry for the potato quality videos, it's the best I have at hand.

[1]: https://www.akaipro.com/akai-fire-firexus

[2]: https://www.gryphno.de/syrup/hotlink/flfire.webm (2.2M)

[3]: https://www.gryphno.de/syrup/hotlink/flfire_anim.webm (23M)


👤 pizza
TouchOSC: lets you build a custom ui to use for a phone/tablet midi interface

GlovePIE if I’m not mistaken lets you use a wiimote as a midi controller

TidalCycles/Supercollider lets you emit midi from haskell, there are also other libraries in other languages (rtmidi in c++? and plenty in python, also there’s the web midi api in browsers)

I once tried a project with a flight simulator joystick as an input, it was just ok though lol

pen2bow: use the apple pencil like a violin bow midi control

I also once saw a research project that used muscle-activity sensors applied externally to the throat to do /non/-acoustic pitch detection/midi control; it would tell which pitch you would be able to emit just by the posture of your vocal tract. In general I think myography seems like a cool bridge between the body and signals

I would really like to see something like a vr-based hand gesture based midi app: wave arms like symphony conductor, put some colorful shapes in 3d space to anchor movement/provide visual feedback, etc.


👤 CrypticShift
> there is already a fantastic external-controller-to-software bridge available via MIDI

So you got that part figured out I suppose.

> super cool analog controllers

There is a lot of "cool" midi controllers out there. Examples:

- Modular: https://special-waves.com/ or https://jouemusic.com/

- Tactile: https://roli.com/products/blocks/lightpad-block-studio-editi...

However, I'm not sure that coolness translates to controlling non-musical apps

--

PS : If you are on windows, I find using a large touch screen to be a good tactile desktop experience (sometimes). You can even create a custom UI setup with TouchOSC.


👤 1attice
I began implementing a PAM module for MIDI, but that was years ago and the repo got garbage collected.

The idea was that your password (or second factor) would be a tune, played in just the right way, with the right emphasis and velocity and even mistakes.

Bonus points, train an ML to detect nuances that define an individual's performance, as accurate as any retinal scan


👤 robin_reala
There’s lots of this in the assistive technology community. This is a very representative project: https://www.tpgi.com/midi-kit-as-accessibility-tools-music-t...

👤 oliwary
Recently I came across this project, which allows you to control Lightroom parameters using physical knobs, via midi: https://rsjaffe.github.io/MIDI2LR/