ALSA can be thought as analogous to physical wires linking up machines.
Except that instead of machines, you have separate programs. One such typical link is:
- from a MIDI source, e.g. vmpk or a MIDI editor with playback like Ardour
- to a synthesizer like FluidSynth or ZynAddSubFX
The advantage of this setup is that separate programs can collaborate to make complex sounds.
The disadvantage of this setup is that it makes it very hard to reproduce results, you basically need a Docker image with the exact same version of everything. And some script to launch and connect all programs correctly.
Some composition systems like LMMS reduce that problem by having synthesizers as plugins, so that you don't have to setup any connections yourself.
Qt front-end for FluidSynth.