• vunderba a day ago

    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 a day ago

      Thanks. So you essentially get an 88 key macro board in your lounge?

      • vunderba 16 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 a day 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 a day 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 a day 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 a day ago

          Some other existing utilities for triggering commands with MIDI signals:

          - https://gitlab.com/enetheru/midi2input

          - https://midimonster.net/

          • sigseg1v a day ago

            This is one of those projects that would be 10x better with a video demonstration!

            • alana314 a day ago

              This would pair well with Midicard, the tiny credit-card-sized MIDI keyboard I make: https://midicard.com

              • ctoth a day ago

                How about chords? Melodies which are paths? Passwords? Lots of great potential here!

                • lysp a day ago

                  Password is 3rd movement of Moonlight Sonata without "typos".

                  • iainctduncan a day ago

                    nice... ;-)

                    Funny how we don't hear that movement much...

                  • vunderba a day ago

                    Goonies scene where they have to play a sequence correct to avoid triggering a trap:

                    https://www.youtube.com/watch?v=pUO7Ip0Xc10

                  • recognity 21 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 20 hours ago

                      You can define the mappings in a plain text (key = command) config file. No need to touch the code.

                    • smokel a day ago

                      Ooh, let's spend next weekend doing this with my acoustic piano!

                      • gchamonlive a day ago

                        This reminds me of the Symphonic which is featured in the show Halt and Catch Fire

                        • yarivk 20 hours ago

                          Very interesting idea.

                          Mapping MIDI keys to shell commands opens some fun automation possibilities. Nice and clean project.

                          Thanks for sharing it.

                          • matthew_hre a day ago

                            My Claude Code sessions are about to sound like the Breath of the Wild soundtrack

                            • runamuck a day ago

                              So I can run shell from a Miracle Piano connected to a NES running Linux?

                              • shrubble a day ago

                                I thought you might have “composable” pipelines!