[LAU] Full-featured mixers

Len Ovens len at ovenwerks.net
Mon Apr 1 08:58:13 CEST 2019


On Mon, 1 Apr 2019, Tim wrote:

> On 3/31/19 5:02 PM, Len Ovens wrote:
>> On Sun, 31 Mar 2019, Tim wrote:
>> 
>>> I found a tip for KMix to show ALSA *not* Pulse controls:
>>>   "export KMIX_PULSEAUDIO_DISABLE=1 && kmix"
>>> But unfortunately it's either Pulse or ALSA, not both at the
>>>  same time in KMix. To me that's a bad thing.
>> 
>> Pulse and alsa are effectively two different audio "devices".
>
> I don't know a lot about Pulse, but I thought I read the other day
>  that Pulse talks to ALSA via an ALSA driver. Is that correct?
> Or Pulse bypasses ALSA somewhat or totally (as I first thought)?

Pulse rides on top of alsa, but also shows itself as the default alsa 
device (pseudo device amybe?).

>> Pulse does weird things with the alsa controls for most alsa mixers, 
>> Thankfully, the ice1712 is one of the ones it does not touch :)
>
> I remember trying Pulse while helping with mudita24 mixer.
> Maybe I was mistaken but I remarked that at one point Pulse seemed
>  to take control of the hardware - even my ice1712 - I was puzzled
>  how the hardware registers were being changed. I thought it was kind
>  of 'smart', low level. But maybe it was just an ALSA driver working.

Yikes. Maybe someone put the time into a pulse profile for the ice1712. I 
have had pulse's alsa module unloaded for years now.

>> However, if you watch the alsa controls for input levels on an HDA card 
>> (I know, the input on these is not worth using for anything beyond phone 
>> work) The boost and level controls bounce all over the place such that a 
>> lower level may have more boost (and more noise) than a higher level. It 
>> also means that after setting the alsa level exactly how you want it, 
>> pulse comes along and messes it up.
>
> Hm yeah weird. Maybe just Pulse talking to ALSA talking
>  to the registers. I'd have thought it would be the other way around,
>  that Pulse might first read what's in ALSA and start from there.

the boost for HDA is 0, 10, 20, 30 and the way the steps are on the level 
control means that more range is available with tighter steps by switching 
boost levels as well as input level. Just looking at mine here, boost is 0 
to 40 in 10 db steps, capture level is 0 to 22.5 in steps of 1.5 for a 
total of 0 to 62.5. Normally this would mean in 1.5 db steps... and, 
normally this would go from 9 to 10.5. However, level 0 with boost 10 
fills in a step in between. Again with 10.5 to 12. boost 10 with level 1.5 
adds 11.5. Once you get to the point where three boost levels are 
available we can 19.5, 20, 20.5, 21. That is .5 db steps with boost going 
0, 10, 20, 0. Sounds cool, but the boost levels (at least on my machine) 
all have distinct noise floors such that the noise level and frequency 
audiably changes with each of those steps. I found that with boost at 30db 
there was actually less noise (or at least a less noticable noise) than 
with boost at 20db. So I would try to set my levels using a boost with 
least noise. Now use something like skype or a recording program and 
change the input level... chances are it chooses the boost level with the 
most noise.

>> I like qasmixer except it does not allow one to edit the layout. On my 
>> ice1712 it does show all the controls including duplicate ADC and DAC 
>> controls. I would like to be able to not show duplicates (or is this 
>> just a Delta 44/66 problem).
>
> Hm, didn't notice any duplicates here. Yeah sure looks like a lot of
>  controls in qasmixer and qashctl but amazingly I don't think I
>  caught anything duplicated. I'll keep an eye out.

Just ADC/DAC controls, each one shows up as both an input and an output 
(enable both input and output). moving either the input or the output 
moves the other control as well (with gui delay of course). I am sure that 
this is the way that the ice1712 driver (or device?) shows it's controls 
to alsa. So I would like to remove ADC "output" controls and DAC "input" 
controls.

>> <rant>
...
>> creation, they are entertainment boxes. "Low latency" is 30ms by design, 
>> if you got less it is because they made a mistake and "should" have used 
>> cheaper parts. If they make an audio computer with super low latency 
>> (10-15ms) it will be at musician prices (think brand new Gibson Les Paul).
>
> I've had my eye on the Fender Custom Shop for while now.
> The Gary Moore red Stratocaster (from his strat days) would be so nice.
>
> Aren't there still places that build Linux audio computers?

Notice that the latency I gave for the "audio computer" was still not as 
good as a tweaked machine with an ice1712 can get, .7ms with 48k here if I 
turn off cron (well 1.7ms including the 1ms going through the ice1712 
itself, jack set to 16/2). My rants tend towards sarcasm. However, I have 
seen the 30ms audio latency refered to as low latency in Intel 
documentation in the past.

> Yes I have to admit I mostly set and forget my delta1010 - but that's
>  'cause I already know about envy24 and mudita24.
> I guess I was concerned about people not getting the full picture
>  from their mixers and being disappointed.

That is a DE choice. Anyone serious about audio is going to have to go 
deeper than that (probably on other OS too). The number of people who feel 
they should be able to monitor on their computer speakers while using a 
USB mic for input leaves me questioning if a more complex mixer is really 
a good thing. HDA already has 3 output controls (4 maybe?) Master, 
speakers, headphones, PCM any of which will change the same output 
signal... jack (not jackd) pins can be automatically change use, etc. For 
desktop use, pulse's single control is probably better.

> Speaking of which...
> I mentioned on Jack ml that QasMixer didn't seem to have any meters.
> I seemed to recall that envy24/mudita24 meters were ALSA components
>  and wondered whether this could be added to Qas.
> But another user remarked something about his Focusrite Scarlett where
>  ALSA don't do the meters in a good way (splitting them into channels?).

QasHctl does show the meters and the level does show but they only show 
one capture. It seems to me they are not labeled in a way that I would 
expect. It would eat more CPU, but I am sure it could be done... just the 
same as my duplicate controls could be removed, with a dedicated profile 
for the device.

> Another user pointed out that ALSA may not be the answer for all
>  cards and may even get some things incorrect whereas a dedicated
>  mixer might not. And said "usually class compliant USB devices don't
>  have alsamixer volume controls".

They can, but in general, if the USB device has physical controls, then it 
has no need for alsa controls (there are no computer controlable controls 
in any OS). Many USB audio chipsets (or maybe I should say cheap chipsets) 
just do the audio with no controls. I think there is a complient way of 
doing controls, but that may not deal with more complex routing. It seems 
the thing these days is to make the audio interface double as a digital 
mixer to help it actually sell for the higher price asked. I don't think 
USB2.0 covers such a use.


--
Len Ovens
www.ovenwerks.net


More information about the Linux-audio-user mailing list