On 12/22/2015 06:57 PM, Todd Millecam wrote:

In the case of sound, the general chain goes as follows:

kernel->pci or usb bus->udev rules -> alsa or pulse -> ubuntu config and application

You have this slightly wrong.  ALSA is the the drivers for the actual soundcard.  Pulseaudio is an advanced sound server that sits on top of ALSA to provide extra functionality, like mixing multiple channels of audio together, and per application volume control, that ALSA doesn't have.  Pulse then exports out it's own ALSA connection so that programs that don't know how to talk to pulse can still make sound.

ALSA only programs would do:
Sound source -> libALSA -> PulseAudio -> ALSA driver -> hardware

While pulse programs would do:
Sound source -> PulseAudio -> ALSA driver -> Hardware

Pre-pulse was rather grim times for audio with many programs grabbing the audio card exclusively so that nothing else would be able to make sounds.

Brian Cluff