I have two USB MIDI controllers: 15e4:003c Numark DJ2GO2 Touch and
09e8:0045 AKAI MPK Mini Mk II - that I use for making beats with free
software such as Mixxx, LMMS and OpenMPT.
When using Windows or Debian, in order to play, I just plug both
controllers in and select them in the UI of the software. On Alpine
without additional configuration, the software doesn't list them.
Earlier I thought Alpine didn't build support for USB MIDI controllers,
but after installing Alpine again yesterday and reading more about Linux
MIDI, in particular the article
https://mclarenlabs.com/blog/2018/07/03/linux-midi-cheatsheet/ and the
error messages from the commands it mentions, I tried `doas modprobe
snd-seq`, and my controller started working in Mixxx.
How do I automate loading of snd-seq (it's ALSA Sequencer, right?) when
I connect any MIDI controller or when the netbook boots with a
controller already connected? Can Alpine load snd-seq by default, or
make it work the way other distributions do it if they do it differently?
If it matters, this Alpine installation currently has sway, seatd, eudev
and pipewire-pulse.
Konstantin, thanks for the suggestion. Always loading a module at boot
is a usable workaround for me personally, and I hope it will help other
newcomers running into the same issue. I wonder though, what prevents
the module from loading automatically when the device is connected. I
see a line about snd/seq in /usr/lib/udev/rules.d/50-udev-default.rules.
Is there a lazy-loading mechanism for the ALSA sequencer in
distributions with upstream udev, but not in Alpine with eudev? I'll add
a note to the ALSA page on the wiki for now.
I just looked at void linux and it loads every module that brings static
devnode (/dev/snd/seq is a static devnode) like this:
# cat /etc/runit/core-services/01-static-devnodes.sh
for f in $(kmod static-nodes -f devname 2>/dev/null|cut -d' ' -f1); do
modprobe -bq $f 2>/dev/null
done
I think the rule you saw in udev only touches permissions, not actual
module loading.