*** note, I think I should say from the beginning I haven't done any multi-tracking in years and don't anticipate doing much in the future. Latency is not a concern for me. *** I use my Presonus AudioboxUSB to drive AudioEngine 2+ speakers and like having the analog knob within reach to adjust for the varying volume of internet content. Occasionally I use headphones and I have a cheapie dynamic mic hooked up all the time and use OBS Studio to make desktop recordings explaining or asking questions about computer geek stuff. I have Audacity, but it's just a fancy pants voice recorder for me at this point. I did get Ardour and some other apps, and have also taken a look at DaVinci Resolve. I like to keep my options open and enjoy learning how to use different apps, but my main one is definitely OBS Studio and I don't see multi-track recording being important to me anytime soon.
I've done some A/V stuff in the past, been on Linux for a little over a year. Always been confused about ALSA, JACK, pulseaudio, pipewire, pcm formats, snd-modules and so on. I'm starting to figure it out, but I could fill your screen with a million questions. I want guidance, suggestions, criticisms, correction... anything you can offer me to help me move from being confused towards being a Linux audio guru.
I currently have a Presonus AudioboxUSB (not the USB96, the old one) it is 24-bit / 48kHz and works with snd-usb-audio module. It sometimes breaks out into nasty digital noise when I open an app or click a video or something while having it used as in input on something else. I think I may have fixed that by increasing the block size (something I just learned about). Time will tell, but I haven't had that issue since doing that.
This https://linux-hardware.org/?probe=5fb795a75b probably has all the specs of interest for my hardware. You can get a probe of your system and a page like that to reference to if you want. If you don't want to click the link and find the relevant info, here's a few things.
card0 - USB USB-Audio Audiobox USB
card1 - C920 USB-Audio HD Pro Webcam C920
pcm
00-00: USB Audio : USB Audio : playback 1 : capture 1
01-00: USB Audio : USB Audio : capture 1
deb@BRUTUS:~$ cat /proc/asound/devices
1: : sequencer
2: [ 0- 0]: digital audio playback
3: [ 0- 0]: digital audio capture
4: [ 0- 0]: raw midi
5: [ 0] : control
6: [ 1- 0]: digital audio capture
7: [ 1] : control
33: : timer
I did recently go through all the pipewire .conf files and get them moved to /etc and it's working but I have a lot to learn. In general, what I think I want is everything to be 24-bit (preferably S24_3LE, but S24LE if not). I think this because I know I've seen Little Endian on my motherboard stuff so I think I shouldn't use the BE big endian formats. Am I right about that? I have noticed that OBS doesn't support 24-bt and I guess changes it to 32-bit float. If possible I would like to add support for S24_3LE or S24LE to OBS. Unless someone explains to me why that's stupid and pointless and I should stop caring about it.
As much as possible I want everything to be 48 kHz, this may be nitpicky and pointless but I just don't like things being converted back and forth, I want it to be one or the other as much as possible. I think the libopus codec is not doing 44100, only 48000, and that libopus is replacing AAC as the prevailing internet audio codec so that helps me choose 48000. (please correct me and take every statement I make with a large grain of salt) The reason I am posting my current thoughts is TO BE corrected and learn.
Part of the reason I got so interested in making sure things were 24-bit 48kHz is due to that issue with getting nasty digital noise in certain circumstances and thinking it was a unique issue with my card. I thought maybe it was a conflict between 44.1kHz and 48kHz or 96KHz even (which my card won't do). Or a conflict between 24-bit and 32-bit float. While most cards don't have issues with that, I thought there was something unique about mine, particularly when it is inputting and outputting at the same time.
I've just learned about block size, my card maxxes at 2048, and so far it seems as if that block size being too small may be what was causing my issues. So, for example, with the pipewire .conf files and anything I can find for ALSA or any other settings I try to tell it to default to 1024, max 2048, and 512 min. If I understand correctly, many people like to reduce block size to improve latency but I am the opposite. I don't care about latency and think pushing block size towards my cards max is needed to correct my issue.
Okay, so other than that, what should I be learning about? In the past I got rid of JACK because I thought it was less confusing to get rid of one thing. But now it seems like JACK doesn't do anything unless I intentionally start it, and it might be useful as a front end for another app to insure I'm sending what I want? Is that how JACK works?
It seems to me that pulseaudio is sort of a piece of ALSA, or an add-on. That's just my guess, am I close?
pipewire seems like a big f'n deal to me right now. Going through the configs I started to get an idea how it routes audio in a more complex way than ALSA, more options, more complex. Now that it's working I have an additional pcm choice for my microphone. I also have improved sound coming through my speakers.
Any other tips, tricks, hacks I should know about? What resources, other than this forum, are good? I had a very hard time finding the files I could change settings on. I kept finding the ones that just show you current reading that you cannot edit. I am working on a .asoundrc What should I include in that? Do I understand correctly that the .asoundrc is one way I can make ALSA behave how I want it too?
Sorry this was long. I'm glad to find this forum and hope I can start finding the info I need to understand Linux Audio that has been a mystery to me for so long.