Check out my first novel, midnight's simulacra!
Sound Software: Difference between revisions
From dankwiki
(inc) |
|||
Line 1: | Line 1: | ||
Sound on Linux is the absolute biggest bunch of bullshit ever. | Sound on Linux is the absolute biggest bunch of bullshit ever. | ||
==Terminology== | |||
* HDA: Intel High Definition Audio specification | |||
* ELD: [[EDID]]-Like Data. Structured capability data returned by graphics-oriented devices. | |||
** ELD can also mean Enhanced Low Delay (in for instance AAC-ELD) | |||
* PD/ELDV: Presence Detect/ELD-Valid bits aka "Unsolicited Responses". | |||
** PD indicates a change in presence or the ELDV bit | |||
** ELDV indicates new ELD information | |||
== Kernel == | == Kernel == | ||
Line 8: | Line 16: | ||
** Neither: force fail on attempts to use OSS | ** Neither: force fail on attempts to use OSS | ||
*** Might be better if OSS-only code is old and crappy, as suggested by OSS-only nature, as it'll eliminate such code. Might also be better if OSS compatability introduces any kinds of issues. Might be worse if OSS code is better-written than ALSA code alternatives, and OSS compatability introduces no problems. | *** Might be better if OSS-only code is old and crappy, as suggested by OSS-only nature, as it'll eliminate such code. Might also be better if OSS compatability introduces any kinds of issues. Might be worse if OSS code is better-written than ALSA code alternatives, and OSS compatability introduces no problems. | ||
===/proc/asound=== | |||
* /proc/asound/cards: Maps physical devices to ALSA card numbers | |||
<pre>[eschatomatic](0) $ cat /proc/asound/cards | |||
0 [Intel ]: HDA-Intel - HDA Intel | |||
HDA Intel at 0xe8260000 irq 43 | |||
1 [NVidia ]: HDA-Intel - HDA NVidia | |||
HDA NVidia at 0xe3080000 irq 17 | |||
[eschatomatic](0) $ </pre> | |||
* /proc/asound/cardX: Device details indexed by ALSA card number, including codec and ELD dumps | |||
** ''NOTE: [[X.org|X]] being loaded is typically required for ELD detection!'' | |||
* /proc/asound/devices: Maps functional devices to ALSA card:dev number pairs and describes function | |||
* /proc/asound/modules: Maps kernel modules to ALSA card numbers | |||
* /proc/asound/pcm: Maps card:dev numbers to allocated PCM streams | |||
===ALSA configuration=== | |||
* What the fuck ought go in /etc/asoundrc? It's a complete enigma. | * What the fuck ought go in /etc/asoundrc? It's a complete enigma. | ||
Line 32: | Line 55: | ||
* Ubuntu has a [http://ubuntuforums.org/showthread.php?t=789578 HOWTO] on ... fixing pulseaudio. Yikes. | * Ubuntu has a [http://ubuntuforums.org/showthread.php?t=789578 HOWTO] on ... fixing pulseaudio. Yikes. | ||
* [[mpd]], the music player daemon | * [[mpd]], the music player daemon | ||
* The [http://download.intel.com/standards/hdaudio/pdf/hda034-a2.pdf Intel High Definition Audio] specification | |||
* The [http://alsa.opensrc.org ALSA Wiki] | |||
* The computeraudiophile.com [http://www.computeraudiophile.com/faq Computer Audiophile FAQs] |
Revision as of 06:59, 1 September 2011
Sound on Linux is the absolute biggest bunch of bullshit ever.
Terminology
- HDA: Intel High Definition Audio specification
- ELD: EDID-Like Data. Structured capability data returned by graphics-oriented devices.
- ELD can also mean Enhanced Low Delay (in for instance AAC-ELD)
- PD/ELDV: Presence Detect/ELD-Valid bits aka "Unsolicited Responses".
- PD indicates a change in presence or the ELDV bit
- ELDV indicates new ELD information
Kernel
- Determine: are there still ALSA hardware drivers inferior to their OSS equivalents? Assuming no...
- OSS emulation: kernel, library, or neither?
- Kernel: snd_pcm_oss, snd_mixer_oss, snd_seq_oss provide /dev/dsp, /dev/seq, /dev/mixer
- Library: aoss sets LD_PRELOAD to include libaoss.so
- Neither: force fail on attempts to use OSS
- Might be better if OSS-only code is old and crappy, as suggested by OSS-only nature, as it'll eliminate such code. Might also be better if OSS compatability introduces any kinds of issues. Might be worse if OSS code is better-written than ALSA code alternatives, and OSS compatability introduces no problems.
/proc/asound
- /proc/asound/cards: Maps physical devices to ALSA card numbers
[eschatomatic](0) $ cat /proc/asound/cards 0 [Intel ]: HDA-Intel - HDA Intel HDA Intel at 0xe8260000 irq 43 1 [NVidia ]: HDA-Intel - HDA NVidia HDA NVidia at 0xe3080000 irq 17 [eschatomatic](0) $
- /proc/asound/cardX: Device details indexed by ALSA card number, including codec and ELD dumps
- NOTE: X being loaded is typically required for ELD detection!
- /proc/asound/devices: Maps functional devices to ALSA card:dev number pairs and describes function
- /proc/asound/modules: Maps kernel modules to ALSA card numbers
- /proc/asound/pcm: Maps card:dev numbers to allocated PCM streams
ALSA configuration
- What the fuck ought go in /etc/asoundrc? It's a complete enigma.
Sound Servers
- pulseaudio -- crashes mpd every time I try to use it (no longer true as of Fall 2008)
- To drive ALSA through pulseaudio by default:
pcm.!default { type pulse } ctl.!default { type pulse }
- jack -- low-latency, professional software; it frightens me
- esd -- deprecated, replaced by pulseaudio's esd-compat module
Hardware
- PulseAudio can supposedly use a plugin together with HAL to drive dynamic devices
See Also
- A Guide to Linux Sound APIs by Lennart Poettering of PulseAudio
- Linux Audio: It's a Mess from LWN
- PulseAudio -- The Perfect Setup
- Ubuntu has a HOWTO on ... fixing pulseaudio. Yikes.
- mpd, the music player daemon
- The Intel High Definition Audio specification
- The ALSA Wiki
- The computeraudiophile.com Computer Audiophile FAQs