So, what's the actual state of the software?


when i did some research on the audioquest dragonfly dac
(which i bought some time ago and sounds really awesome
to me with the beyerdynamic dt990 pro headphones) i read
that lowering volume in the digital domain reduces the
bitdepth somehow, so it would degrade audio quality.
 

As far as I understand it, it will reduce the bitdepth.  Whether that has any impact on human perception depends on the bit depth you start with - if you're starting at 24 bit, you could lose 8 of those bits (i.e. play at 1/256th of the max loudness) and not end up with any less than 16 bit, which in blind tests, tends to be enough to replicate anything you'd want to listen to.

Even in the analogue domain, turning down the volume limits the bandwidth obtainable by your ears, I think.  We might even be better off with an all-digital (apart from the volume pot) control of volume.
 
I think you are misunderstanding.  My headphones, on my desktop without hardware volume, have a software volume range of 0 to 3%.  If I set it to 4% that's too loud for me, and 5% will kill me.  I can crank it to 100% and you can hear them from the other side of the office.  I have never seen a volume slider let you choose decimal volumes, so I'm not entirely certain how you expect such a thing to work.  If I set the minimum volume at 0 and the max at 5 it's still going to be discrete steps from 5 to 4 to 3.

This is why I like hardware volume.  On my Pandora using the same headphones I have the software volume set to 5% and then I just adjust the hardware volume wheel depending on the situation, and it's a smooth transition from loud to quiet.

Have you connected the headset to your Linux or Windows PC and try to change the volume with the sliders?

(On Linux, you can even scale the window and make the setting more accurate)

Or which devices did you use for the test?
 
You may find this amusing, but I don't think I've ever plugged my headphones directly into the headphone jack on my Linux workstation.  My setup there is a bit...odd.

HP workstation with a line out going to an old analog Yamaha mixer/pre-amp.  If I use headphones at all, they get plugged into that.

From there the L&R audio go through Y cables to both channels (A/B) of a pair (Left/Right) of 32 band EQs that get the task of acting as cross-overs for the high (A) and low (B) channels that then go through two 300W/channel analog amps to Klipsch Heresy industrial slant monitors (A/high) and Pyle 15" subs (B/low) on each side.

How does that become relevant?  Because I use my Pandora to drive that when I take the system mobile once or twice a year.  See picture from the stylus thread.  Note that it is all running out of the headphone jack.



Having reliable fine control of where that volume wheel is makes a difference in this type of application - particularly when it's sitting on the front end of a 1200W continuous 2400W peak PA.  Being able to reliably attenuate that input so it doesn't run too hot makes a big difference.
 
Last edited by a moderator:
It makes sense that lowering the volume would lower the bitdepth. So maybe something to considering... however it's unclear to me how much real impact this could have.  For the final audio reproduction, even 16bit (96db SNR without dithering) is considered good enough. Even more so if you consider the ambient noise of most listening environment. Also most music/audio will use much less dynamic than this.

Also I think that if you're listening at a lower volume, the dynamic you can reproduce will be limited by your environment. A quite bedroom at night is ~30db, a quit library ~40db. If you're listening with a peak volume of 90db, this should give you a maximum of 50-60db usable dynamic range.

Back to the volume wheel. I like the fact you're still considering an analog potentiometer even for software audio control.

Personally I would not mind having a real analog wheel for the headphone output and the rest be software. That's where I see the real value. The built-in speaking usually don't go loud enough to be a real concern. When using HDMI or audio out, you can usually set the volume on the receiving end.

Regarding the kernel / software devolvement, it's quite a interesting discussing. I am certainly not the most qualified to comment.

I think establishing a list of priority make sense, it might help with people contributing. Also, it should give the community an idea of everything left to do / could be improved.

Seems like a lot of hard work, especially at the kernel/driver/basic OS level. I think having qualified paid developer make sense.

I can understand that before the Pyra actually makes money, this could be a challenge. I would actually not mind a push for donation to the software development.

I think for this to really work, a list of task and doing some reporting of advancement / what has been achieved would definitely help.
 
Volume wheel aside (I'm fine as long as it works), I'm willing to write up some of the missing UIs using C++ and wxWidgets if no one else wants to. I'm neither a kernel hacker nor much of an linux expert, but as long as I just have to write to config files or run scripts to get the actual work done, I could do that.
That would also require wxWidgets to be pre-installed in the default distribution. While it's not quite the small library, it's also used in some popular applications, so it could be well worth having it anyways (I'm not experienced native GTK or Qt, sorry).

I don't have much time currently (I will in a few weeks though), so I didn't offer my help on the IRC yet, but since this came up right now I might as well ask if the software dev team would be even fine with handling it like that.
 
I Just see a slew of software nightmares involved with the TWL6040, you make it too feature heavy and unexpected things happen. Perhaps limit volume control to the current output device without any modifier complexities. Overall using a potentiometer and an ADC puts in an odd quirk to the mix vs if it had a rotary encoder or push buttons as a potentiometer has a dynamic value that could change if between different volume controls (HDMI vs Headset..etc) and not based on a stored value. The latter requires a bit of trickery to make work properly.

To me as prior posts suggest I suggest the Pandora Method, it's simpler, true analog volume control was a praised feature on the Pandora, however I'm willing to wait and see what the audio quality tests return.

EDIT: clarification... 
 
Last edited by a moderator:
Yes, but using Pandora audio is not that easy, sadly. The OMAP5 has some stuff removed AFAIK which the OMAP3 used for that.
 

Have you connected the headset to your Linux or Windows PC and try to change the volume with the sliders?

(On Linux, you can even scale the window and make the setting more accurate)

Or which devices did you use for the test?
Yes, on Windows at work, on my Arch desktop, on the Pandora.

At work my range is 0, 1, 2, or 3, with 4 being too loud for my taste generally.

My home desktop running Arch is a little better, I can go to 7, but that still only leaves me 8 discrete steps, the difference between 6 and 8 is very noticeable.

I actually keep my Pandora at 25% but since it has the hardware volume wheel I can easily turn it up or down.

Software volume control just isn't precise enough, it's only useful if 100% is a viable loudness, the difference between 80% and 81% is negligible.  If max volume is only 10% then you've got 1/10th as many steps, going from 8 to 9 is a big jump.
 
Have you enabled attenuation for the volume slider? That setting makes everything usually -6dB to -12dB more silent, which increases the slider range for headphones a lot (0 to 4 will then become 0 - 50, so you got more than 10 times more steps inbetween).
 
The bigger unanswerable question right now, though, is, under each option, "How does it sound?"
This is one of the most important questions ever asked about the Pyra. How does it sound is totally different to how does it perform on paper too:)
 
The bigger unanswerable question right now, though, is, under each option, "How does it sound?"
This is one of the most important questions ever asked about the Pyra. How does it sound is totally different to how does it perform on paper too:)
We simply do not know an answer yet. Nobody knows.

Well, we know that a single speaker connected to the twl6040 on a PandaBoard sounds loud and not too bad. But that's it. There are so many influencing factors that you are right that it must be determined experimentatlly.

This is why we urgently want to build the final prototypes and want to modify one of them to have the other hardware option. And after optimizing the software we can do audible comparisons (and signal measurements). But not earlier :)  
 
I would love to try a softvolume one. If all goes to pot you can use the wheel for an external DAC/AMP.

That is a bonus to consider. It services another whole segment of the portable hifi/pro audio crowd.
 
I have to check, but I know I found it somewhere hidden away...

Well regardless, the point is that it's a feature to be able to set two volumes, a software for the maximum and the hardware for full spectrum, and reducing it to just software volume subtracts this feature, a feature which I rely on.
 
Last edited by a moderator:
I have to check, but I know I found it somewhere hidden away...

Well regardless, the point is that it's a feature to be able to set two volumes, a software for the maximum and the hardware for full spectrum, and reducing it to just software volume subtracts this feature, a feature which I rely on.
Would't the software option be better for that though as each output becomes discrete?  I e independent software volume (attenuation) for each output?  With the presence check on headphone connection, it could auto switch to the headphone dynamic range, which could then be user definable.

It's still a more complex scenario and control application dependent vs a dumb dial.
 
You can also easily change the software volume of the main output roughly and then use the slider for the output stream to fine tune it.

That works perfectly (at least on Windows 7 and with Pulseaudio).

It's similar to normal audio mixing, where you have gain for the coarse setting and the fader for the fine setting.

In this case, master volume is the coarse setting and the stream the fine setting.

That should work A LOT more accurate and finer than an analog audio wheel.
 
I'm not saying there aren't solutions, I'm just saying that this is my use case, a thing which works perfectly out of the box.  Turning the hardware wheel into a software control *will* require some kind of adaptation.  If I have to then I have to, and if it brings additional features then all the better, but I'm not going to pretend that it isn't a bother.
 
I tried, but alsa documentation wasnt what my head wanted for me right now.

Setting gain by softvol isn't ideal though. With a wheel you don't really know where you are, sliders were out of the question.

The only discernible difference should be seeing a slider onscreen.

Maybe it can take control of a row of leds for while you are sliding around to signify volume?

That means you can see where you are at, without having audio playing, when you are fullscreen something other than the desktop. Then again it could be that these widget type things have gotten smarter.
 
You also don't see where you are with a hardware wheel, and it will work the same here.
 
Back
Top