Hi Nikolay, MIDI is a standard between two hardware devices (originally specified for DIN connectors and certain baud rates, etc.). As Computers aren't equipped with MIDI connectors any more, there needs to be a conversion between the hardware and the computer and within the computer there has to be some sort of platform which can be accessed by programs, called an API, which defines how exactly you can access its functions in order to receive/transmit MIDI data between apps or external hardware.
On linux, you will nowadays most likely use ALSA as the underlying API architecture to convert to/from your external MIDI device(s) (probably connected by USB). The conversion part to/from the hardware takes place in a driver. ALSA isn't intended only for MIDI, but also for audio and there exist alsa drivers for a lot of hardware (soundcards and MIDI devices, see: https://alsa-project.org/wiki/Matrix:Main). As MIDI currently is mostly implemented by USB standard compliant hardware, it gets recognized by the system, the appropriate driver is installed automatically and it works out of the box (that's the "raw" part). On top of that there is the "alsa-seq" which adds virtual ports, timing and such for the communication between applications. If using jack (which has better timing than the alsa-seq) and don't want to use alsa-seq, you can bridge between raw alsa and jack-midi using utils like a2jmidid. FYI: Apart from ALSA there is also portmidi (another API) and there might be applications only supporting portmidi. But even portmidi nowadays accesses the alsa drivers as they are the de facto standard on linux. Here is an article maybe shedding some light on some issues: https://freeshell.de/~murks/posts/ALSA_and_JACK_MIDI_explained_(by_a_dummy_for_dummies)/ HTH, Orm Am Sonntag, den 13. Februar 2022 um 12:49:46 Uhr (+0300) schrieb Nikolay Shaplov: > Hi! I am writing a HowTo article about using MIDI keyboard on my distro. (I > am > trying to write down all things, when it took me a while to figure them out) > > And while writing I understand, that I do not understand what MIDI driver > (one > that is specified via -m option) actually do. (And why I chosen alsa_seq in > my > case). > > Isn't MIDI devices are somehow a standard thing? This driver "converts" what > into what? > > Hope it's OK to ask this question here. If I got an answer I will manage to > write better and clearer documentation. > > -- > Nikolay Shaplov aka Nataraj > Fuzzing Engineer at Postgres Professional > Matrix IM: @dhyan:nataraj.su > > > > > _______________________________________________ > fluid-dev mailing list > fluid-dev@nongnu.org > https://lists.nongnu.org/mailman/listinfo/fluid-dev _______________________________________________ fluid-dev mailing list fluid-dev@nongnu.org https://lists.nongnu.org/mailman/listinfo/fluid-dev