hedgehog/ideas/ HomePage


I had originally called this idea MX32. Then I came to nickname it HedgeHog: the (hypothetical) protocol, and also a device which speaks it, and also software that acts as hubs, routing events and data so as to present a users devices and computer as an integrated whole. As such, along with a mouse, I dream of users having 'hedgehogs', which are various devices with knobs and buttons which may be freely assigned by the user's software.

The TL;DR

Some articles

SubWikis

Where I Am At Present

For now I am using OSC as an interconnecting message format as much as possible: if OSC can do it, use OSC. I am largely writing everything in Python, though the intent is to use Lua as the EmbeddedScriptingLanguage of choice as it is small and compact (Python is way too huge to be universal, but a Lua interpreter is a few hundred kilobytes). I have scripts that receive midi, generate HedgehogMessages, using OSC as a networkable InterprocessCommunication medium, and the convert to either keyboard/mouse events or Midi messages for applications that don't speak Hedgehog natively (which as of writing this is everything).

For example, I'm a fan of the NovationNocturn, which is probably as close to an ideal example of a knobs-and-buttons Hedgehog as you're likely to find: 8 smooth rotary encoders, 1 stepped encoder, and 16 buttons with LED lights. Alas under Windows and Macos, the Nocturn only works with Novation's proprietary and discontinued Automap software. So for Windows and Mac users it is basically e-waste. Linux treats it as a generic Midi device and so I can connect them to a Raspberry Pi which can then translate to HedgehogOsc messages that can be sent to my Windows machine, or possibly my mac (minis).