Updated 28-Jun-2024
Audio can be a pain on Linux. One thing is the rather low quality of PulseAudio, which is common. The next is the layered configuration of ALSA as a driver and JACK as a connector. However, JACK can override PAVU, so things don't stay in their neat little boxes.
That said, I've come to some sort of peace with PulseAudio on intel NUCs, largely by ignoring the built-in and HDMI audio and relying on a USB audio connector, a Unitek Y-247-A. Cheaper and better. Things are also complicated as I've got a Logitech C920 webcam which itself has a microphone.
Ok, that said, my real challenge came when trying to hook up a Nektar SE61 keyboard. It turns out that one approach (the easiest to figure out) was to find all the software elements needed to use keyboard input into a midi synth, as well as produce multitrack recordings. That way everything needed can be hooked up and work together. Here are the parts, all of which are cross-platform and open source
- QJackCTL / Jack - qjackctl
- Zyn-Fusion / ZynAddSubFX - zynaddsubfx -I alsa -O jack
- Ardour - ardour
The qjackctl initiates JACK and allows for routing audio channels. The zynaddsubfx is the synthesis engine. And ardour is the digital audio workstation (DAW).
Another lovely piece of open source software is MuseScore, for creating, playing, and printing sheet music.
QjackCtl Settings
- Settings
- Driver: alsa
- Realtime: checked
- Interface: hw:Device (or whatever the soundcard is, perform
cat /proc/asound/cards
) - Sample Rate: 48000
- Frames/Period: 64
- Periods/Buffer: 3
- Midi driver: none
- Misc
- Enable ALSA Sequencer support