So, what's the current status of everything?


Thanks @Grench for all of your hard work feeding your experience to us. I'm afraid it may be a little frustrating for you when your Pyra isn't quite working right, but it makes for really entertaining and informative reading. Plus all of the rest of us will benefit greatly from all of this hard work.

I do hope that another prototype user might furnish us with some video footage soonish... in the meantime you're doing more than enough to provide updates :)
 
Thanks @Grench for all of your hard work feeding your experience to us. I'm afraid it may be a little frustrating for you when your Pyra isn't quite working right, but it makes for really entertaining and informative reading. Plus all of the rest of us will benefit greatly from all of this hard work.

I do hope that another prototype user might furnish us with some video footage soonish... in the meantime you're doing more than enough to provide updates :)

Indeed... finaly stuff is happening out in the open again
 
  • Like
Reactions: rSl
As per my example above, that you restated here, ALSA cannot dynamically shift and mix audio to multiple independent output channels on the fly where Pulse can.
It can mix them on the fly (respectively, the default plugins shipped with ALSA can do it). What it can't do is swap the input and output targets once the application has build its routing table. You're mixing things up (pun intended).

ALSA works favorably for the simple case where you have multiple Input channels with the intent to combine them into a single (or stereo) output channel with a singular program on one or more output channels.
...if you don't want to actually change its default configuration. If offers a lot more than what you think, you just have to adapt its configuration to use these features.

Pulse is far more complicated because it -does more-.
Oh, Pulse is actually fairly simple, as it was only designed to fix a limited amount of shortcomings for a single usage scenario - and moving your problems into a separate daemon makes them fairly trivial to solve. ALSA itself offers a lot more functionality that is not implemented in Pulse at all, you still have to somehow hack it into ALSA without breaking Pulse if you actually want to use it. This include rather simple things like remapping channels (like merging multiple intependent stereo output channels into a single 5.1 surround output), adding a lowpass filter for your LFE channel, or just changing how the additional channels are generated when upsampling a stereo signal to surround sound.

It allows for each input source and output channel to be handled fully independently, much more like a pro mixer console. This makes it annoying to use if all you want to do is the simple example where ALSA excels.
Steams, not channels. Pulse does not allow to handle audio channels individually if they are part of a multi-channel audio stream, you have to do that in ALSA - or just use JACK instead.

At the point where you have had to add plugins and tweaks and special cases to ALSA to make it do some of what Pulse does, you have made ALSA more complicated than Pulse is.
Pulse and ALSA are both designed around plugins and pretty much useless without any of them. Well, ALSA can still directly output to hardware I suppose, but Pulse uses plugins (or "modules" as they call them) to even do that simple task. You have to differentiate between plugins/modules that are an essential part of the framework itself and therefore part of its codebase, and external ones.

Now that I think about it, the whole module system of PulseAudio seems like one of the many unfinished ideas of Poettering - its documentation is basically non-existant and I have yet to see any 3rd party modules. I'm pretty sure you can do some nifty things with it - even with the default modules shipped with Pulse - but hardly anyone is able to tell you how to do it and it really does not look very intuitive.

Again, restating my point that ALSA is great for -simple- routing of sound sources into a singular program (sound engineer not software engineer version of that term) that is then output over one or more channels. If you want a differential program for each channel, that is where you need Pulse.
Actually, that is something that works quite well with ALSA. Each routing element you define in your ALSA configuration can be used as a target output, as long as your program allows to select the ALSA target entity. And even if it does not, you can adapt your configuration in a way that allows you to redirect the default interface to a different routing element on a per-program basis through an environment variable. The configuration may be static, but the routing information is recreated on each program startup, which allows at least some flexibility. You still have to do it manually, though, as messing with environment variables is not something that is easily turned into an automated background task.

I could show you the config file I'm using for my desktop PC to show you some of the advance abilities of ALSA that you are probably not even aware of, but I'm currently visiting my parents and only got my Laptop with me, so I can't access it right now.

Give me a full screen graphical mixing board interfaces with input channels on the left and output channels listed as columns across the top and an individual select knob that I can turn up/down for adding/removing each source to/from each output channel.
You just had a wet dream about JACK I guess. Pulse can't do that, either.

The reason why Pulse might be better on the Pyra is that the hardware has the ability to truly, and independently, feed separate outputs to headphone jack, speakers, bluetooth audio and maybe even sound over the HDMI - all in stereo - maybe more over the HDMI (7.1?).
Actually, that is only something that works well with Pulse if each of them is a separate audio device, as Pulse expects that all output channels of an audio device are part of a single multi-channel output (4.0, 5.1, 7.1 etc) - other output channels are pretty non-existant for Pulse. Unfortunately, we have several of them hooked up to the same audio controller - this is one of the very simple examples where leaving the ground of the average Joe's motherboard audio codec will make you hit Pulse's limitations.

That is where Pulse shines - which is an admitted niche case.
You misspelled JACK.
 
At least it’s not the old Pandora Carry Case, ditnt try it recently but I don’t think it would fit my Pandora.. but I have also the new one..
But I don’t plan to use the Carry Case whit the Pyra as it’s a Pocket Handheld for me..
 
I have run into a problem trying to boot the pyra. The setup screens appear up until "Default locale for the system environment" whereupon it has hung both times I tried it. The second time it would not accept my username from the first try, so I guess it had recorded that. Is it possible to interrupt the startup script by any means except powering off and on again?
 
i find the hate targeted towards the main author behind Pulseaudio (and/or systemd) a bit stupid. it's linux; you can make your own version of things if you want. if it doesn't catch on as well as you'd like it to, maybe it doesn't solve everyone's problems as well as you thought it did, but you shouldn't be ticked off with the other person's work.
Good news for you then; debian have decided to make it mandatory for packagers to support systemd, although they won't stop people working on other init systems in their spare time.
 
i find the hate targeted towards the main author behind Pulseaudio (and/or systemd) a bit stupid. it's linux; you can make your own version of things if you want.
Sadly, the critique towards Poettering himself is not quite unfounded. If certain projects become the de facto standard because of hardcore lobbying through Red Hat instead of technological supremacy, some people tend to get salty - especially if it breaks historically founded compatibilites and whole concepts without sound reasons - like essential things as the POSIX compatibility. Once you actually run yourself into an issue that makes you end up at a closed bugreport that was shot down by Poettering himself for one of several ridiculous or even plain wrong reasons commonly provided by him you kind of start to understand why so many get salty when hearing his name.

Nobody would complain if he would just do his thing and release his projects into the wild like any other free software project, survival of the fittest and all. But that is not what happens, politics get involved instead. The fact that he hardly stays with his projects for long to actually fix flaws in his basic designs and leaves the dirty work to others that follow him is not very sympathetic, either. In fact, it almost seems like his sole remaining role in some of those projects is actively rejecting these kind of changes from others, but that may just be my individual view on the situation.
 
Alsa config and its routing is so easy that i you can write a gui tool for it in just a few minutes that lets you assign every program to a random output. The ONLY thing pulse is needed for on the pyra is when you plug in headphones and want to use them without restarting the game.

I simply dont understand why pulse even exist, yes alsa sucks at some point, but fixing alsa is less than half the effort of maintaining pulse. So wtf?
 
Sadly, the critique towards Poettering himself is not quite unfounded. If certain projects become the de facto standard because of hardcore lobbying through Red Hat instead of technological supremacy, some people tend to get salty - especially if it breaks historically founded compatibilites and whole concepts without sound reasons - like essential things as the POSIX compatibility. Once you actually run yourself into an issue that makes you end up at a closed bugreport that was shot down by Poettering himself for one of several ridiculous or even plain wrong reasons commonly provided by him you kind of start to understand why so many get salty when hearing his name.

Nobody would complain if he would just do his thing and release his projects into the wild like any other free software project, survival of the fittest and all. But that is not what happens, politics get involved instead. The fact that he hardly stays with his projects for long to actually fix flaws in his basic designs and leaves the dirty work to others that follow him is not very sympathetic, either. In fact, it almost seems like his sole remaining role in some of those projects is actively rejecting these kind of changes from others, but that may just be my individual view on the situation.
+100
exactly this, thanks!
 
Alsa config and its routing is so easy that i you can write a gui tool for it in just a few minutes that lets you assign every program to a random output. The ONLY thing pulse is needed for on the pyra is when you plug in headphones and want to use them without restarting the game.

Headphones isn't really an issue, you can simply stream the output to both headphones and speakers at the same time. The speakers can be disabled via ALSAMixer, so using FunkeyMonkey to disable the speakers when you plug in the heaphones should work.
So simply configure it to output the same thing on all existing outputs would be enough
.
I simply dont understand why pulse even exist, yes alsa sucks at some point, but fixing alsa is less than half the effort of maintaining pulse. So wtf?

Well, I'm running KDE on my systems with Pulse installed and unlike ALSA, it can do so many things out of the box.
I've got multiple audio outputs and can simply redirect each stream where I want it to via volume mixer in the tray.
I also can change the volume for each single program from there.
I've not yet seen an ALSA volume control that can do that, but I've not done much with ALSA lately, so it could be such things exist.

And when I connect a bluetooth headset or an external USB sound device, I can easily switch around all streams on-the-fly.

I also use it with remote PCs to stream the audio directly to my local laptop...

I am not sure if ALSA can do all that. I'm fine using whatever works best for us :)
Post automatically merged:

I have run into a problem trying to boot the pyra. The setup screens appear up until "Default locale for the system environment" whereupon it has hung both times I tried it. The second time it would not accept my username from the first try, so I guess it had recorded that. Is it possible to interrupt the startup script by any means except powering off and on again?

Generating the locales (depending on which and how many you've chosen) can take quite a while. How long did you wait?
 
That solution sounds kinda wastefull... *shrug*

Kde was always able to assign programms to outputs and set an individual volume.
It was part of the control centre thing used back in kde3.
No idea how that worked behind the scene tho, it was 2004 and i was a teen who felt like a hacker for booting knopix.
I am not sure if knoppix was even using alsa at that time, might have been OSS.

Bluetooth was a PITA with everything ive seen so far. If pulse works with it there is little to argue against having it when there is no alternative.

But hey my comment wasnt so much against pulse, its more that alsa sucks and instead of fixing it they hacked together another layer to hide it.
 
Generating the locales (depending on which and how many you've chosen) can take quite a while. How long did you wait?
I have done this many times recently. If you just take / accept the default 3 locales, it takes about 30 seconds or so. Where the other two prototypes may have run into an issue is if they select -all- locales. For that case - it could take 20-30 minutes?
 
What about sndio? Is it useable for us?
Usable yes, but what do we gain by this? Its not that a soundserver is a dependency. We merely argue about what is more straight forward to use.
Pulse provides easy usable features on the drawback of beeing shit software.
sndio may be better software, but i dont see much usefull features let alone a user friendly way to access them.
 
Back
Top