💾 Archived View for thrig.me › blog › 2024 › 03 › 31 › midiplayer.gmi captured on 2024-05-10 at 10:57:27. Gemini links have been rewritten to link to archived content
-=-=-=-=-=-=-
So how difficult is it to write a MIDI player? Here the goal is to read a MIDI file and get the events off to a synthesizer, with suitable delays between the MIDI events. Mostly this is motivated by the dire state of Digital Audio Workstations (DAW) on OpenBSD, which is mostly LMMS that cannot detect any relevant synthesizer via MIDI. There is the old clunker laptop with Alpine Linux (mostly working spacebar, sometimes wi-fi) that can connect to synths, but using that is annoying, and anyways fiddling around with low-level MIDI details is the sort of thing a postmodern hedge wizard might dabble with.
It's pretty primitive (and only around 100 lines of code); only note "on" and "off" events are sent. This will play something by Bach okay, but not anything fancy that relies on control changes or pitch wheels or whatnot. There may also be errors, in particular with the tempo and dtime to usleep conversion. SMPTE (time code time) is not supported.
This is a fantasy or now role-playing term, perhaps adapted from "Hedge Knight" or a landless knight. Think rōnin, less sword, more sorcery. Sometimes derogatory, as those currently in favor with The Court may look down on those up on a cold mountain. ("Those who cannot do, teach", etc.) The term might be adapted to indicate a self-taught and perhaps eccentric bent. "Las ruinas circulares" by Jorge Luis Borges may be of interest. I did however take a Computer Science 101 at some point so am not totally self-taught with these here computer things.