Nice job. Feels like there's a bit of misunderstanding of what this project is. It has nothing to do with audio - it's purely a means of mapping MIDI to shell commands.
There was (still is) a very popular program called BOME Midi Translator that did something similar - think of it like AutoHotKey but specifically for midi.
Back when I made heavy use of Kontakt libraries I got frustrated at the lack of an easy way to audition the patches (of which there could be hundreds on a single sampler). To get around it, I created a Bome script so when I pressed an unused button on my midi controller it would trigger a mouse click to advance to the next patch in my DAW and then send a note-on / note-off for C4 for half a second.
Made previewing the sounds much easier.
snthpy 15 hours ago [-]
Thanks. So you essentially get an 88 key macro board in your lounge?
vunderba 8 hours ago [-]
Exactly. Instead of buying something like an Elgato Deck, you can repurpose (or buy really cheap) midi keyboards/controllers and map them through a Midi->Script translators and achieve the same result.
Arkanosis 1 days ago [-]
That's nice!
That may not seem like an obvious use-case when only thinking about a piano, but since it's mapping MIDI keys to commands, I guess it should be able — or at least no very far from being able — to map ergonomic MIDI controllers to actions that are not as ergonomic with the usual keyboard / mouse / trackball / touchpad most people use.
I wrote what I believe is a similar tool but with completely different goals initially: https://github.com/Arkanosis/smhkd ; I use it with a cheap MIDI controller (namely the KORG nanoKONTROL2) and was considering using another one with motorized faders (namely the Icon Platform M).
MIDI controllers are great for all kinds of non-musical things like:
- setting the volume / balance / solo / mute for speakers / multiple headsets and mixing multiple applications (eg. using pactl);
- setting the zoom level / brightness for camera / webcam (eg. using v4l2-ctl) ;
- setting the source / brightness for monitors (eg. using ddcutil)…
vustagc 24 hours ago [-]
I see I'm not the first to have this idea haha. I suppose you could use additional midi controllers as extra "function" keys, for things like volume control, brightness, etc.. Could be useful especially if using smaller keyboards without a numpad or a function row.
vunderba 23 hours ago [-]
Same. In the past I've mapped cheap midi controllers with endless encoders over to act as a "scrubbers" when doing video editing.
pimlottc 24 hours ago [-]
Some other existing utilities for triggering commands with MIDI signals:
This is one of those projects that would be 10x better with a video demonstration!
alana314 19 hours ago [-]
This would pair well with Midicard, the tiny credit-card-sized MIDI keyboard I make: https://midicard.com
recognity 13 hours ago [-]
Love this. Using a piano as a macro board is the kind of creative dev tooling I wish I saw more of.
Have you considered letting users define their own key mappings in a YAML config? That way people could customize it for their specific DAW workflow without touching the code.
vustagc 12 hours ago [-]
You can define the mappings in a plain text (key = command) config file. No need to touch the code.
ctoth 1 days ago [-]
How about chords? Melodies which are paths? Passwords? Lots of great potential here!
lysp 1 days ago [-]
Password is 3rd movement of Moonlight Sonata without "typos".
iainctduncan 24 hours ago [-]
nice... ;-)
Funny how we don't hear that movement much...
vunderba 1 days ago [-]
Goonies scene where they have to play a sequence correct to avoid triggering a trap:
There was (still is) a very popular program called BOME Midi Translator that did something similar - think of it like AutoHotKey but specifically for midi.
Back when I made heavy use of Kontakt libraries I got frustrated at the lack of an easy way to audition the patches (of which there could be hundreds on a single sampler). To get around it, I created a Bome script so when I pressed an unused button on my midi controller it would trigger a mouse click to advance to the next patch in my DAW and then send a note-on / note-off for C4 for half a second.
Made previewing the sounds much easier.
That may not seem like an obvious use-case when only thinking about a piano, but since it's mapping MIDI keys to commands, I guess it should be able — or at least no very far from being able — to map ergonomic MIDI controllers to actions that are not as ergonomic with the usual keyboard / mouse / trackball / touchpad most people use.
I wrote what I believe is a similar tool but with completely different goals initially: https://github.com/Arkanosis/smhkd ; I use it with a cheap MIDI controller (namely the KORG nanoKONTROL2) and was considering using another one with motorized faders (namely the Icon Platform M).
MIDI controllers are great for all kinds of non-musical things like: - setting the volume / balance / solo / mute for speakers / multiple headsets and mixing multiple applications (eg. using pactl); - setting the zoom level / brightness for camera / webcam (eg. using v4l2-ctl) ; - setting the source / brightness for monitors (eg. using ddcutil)…
- https://gitlab.com/enetheru/midi2input
- https://midimonster.net/
Have you considered letting users define their own key mappings in a YAML config? That way people could customize it for their specific DAW workflow without touching the code.
Funny how we don't hear that movement much...
https://www.youtube.com/watch?v=pUO7Ip0Xc10
Mapping MIDI keys to shell commands opens some fun automation possibilities. Nice and clean project.
Thanks for sharing it.