Thanks for your DM. Just sharing knowledge here in case it serves anyone else. It's a while since I had to wrestle with this setup and haven't used it much lately, or have it to hand. I'm using Mint Debian Edition, so a slightly different distro, but hopefully not too different. From memory, some of the key things were:
- You might need to install alsa-firmware and alsa-firmware-loaders packages to ensure the firmware needed is present on your computer
- You might also need to install the alsa-tools package, which provides the us428control program to get full control of the US-428 from linux software
- Once those are installed (and reboot for safety), udev (USB detection) rules should do everything automatically: load firmware to the US-428, load the kernel module (snd-usb-usx2y), and run us428control.
- In practice I found it doesn't, so you might need to plug it in once for a few seconds, then unplug it and plug it in again! Slowly. (Longer term, I've worked around this by forcing Linux to load the kernel module snd-usb-usx2y at startup, so it just has to install firmware when pluging in the Tascam)
- Monitor this by running lsusb: you should find the Tascam is listed at first with one device ID (1604:8001 if I recall), but this is slightly changed after the firmware has loaded (possibly 1604:8002). You might also notice the lights on the Tascam flash: I think this is the point at which the firmware gets loaded.
- Monitor whether ALSA has learnt about the card by running aplay -l. Seems to take a while before it shows up, so have patience, i.e. minutes rather than seconds. I have no idea why this is.
- Check if us428control is running by running ps -A | grep us428control (if not, just run us428control & but it should be automatic).
- That should get you to the point of the Tascam being usable by ALSA. Note it might show up as two ports: nn,0 and nn,2 (where nn is the ALSA device). The first of these is a regular 2-channel audio device, and generally the safest option, even if it's not giving you full 4-channel capability.
I've never got all four inputs working reliably, but the key principles (as I understand it) are:
- You need to use JACK to get support for 4-channel usx2y (on port nn,2). My experience was that JACK1 works, but JACK2 doesn't. It's beyond my expertise, but I think the relevant code was disabled in JACK2. However, I think falkTX has taken over JACK2 development, so there may be changes.
- If you don't need to use all 4 inputs, a fallback is to use port nn,0 and treating it as a 2-channel device
- IIRC to get any 4-channel functionality I needed for force JACK to use 16-bit mode, and you might also need to experiment with other settings to find what works with your computer.
- At best, I think I got it working briefly, but then something crashing with noise output. Never managed to solve that.
My experience was at least a couple of years ago. I've periodically revisited the topic with a US-224 and found things seem to have changed a little, so what worked before then stopped working. I don't have time/knowledge to keep on top of that but suspect it might be down to different kernel versions and how they handle USB. My suspicion is that some instability is due to USB handling, but it's an area I don't understand well enough to fully troubleshoot. Main tool I've used is rtirq, which allows you to prioritise USB traffic. I think there's possibly an issue (might be hardware or software) because these Tascam devices are USB1 and aren't necessarily handled well when connected to USB2 or 3 ports. Again, I've yet to find a solution to that.
Update: I've just plugged in and set up my US-224 for some recording after ages away from it, and it now seems to work nicely and pretty stable. Some of the changes that have happened, or I made, which maybe contributed to it now working are:
- I'm now using kernel 4.19 RT (i.e. with realtime patch)
- I've set up /etc/default/rtirq to give usb top priority
- I removed the "threadirqs" boot parameter in /etc/default/grub (which I only just discovered isn't necessary with the RT kernel, and may have caused some confusion/crashing before
- I've set the CPU speed to 'performance' (so it stays on max speed, rather than trying to adjust
- I bought a powered USB hub because I was using a USB keyboard controller on the same port as the US-224, and both are bus-powered, so I realised the port maybe wan't delivering enough power for both devices. I think the US-428 needs a power adapter anyway, so that shouldn't be a problem in your case.
This might be a useful reference if you've not found it already:https://alsa.opensrc.org/Tascam_US-224
Tascam US-428 and US-224 are similar technologies, so if you're searching for more answers, either term could yield useful results for you.