TO REITERATE: For the interested:
/usr/share/alsa.conf declares
hw,
plughw,
shm,
tee,
file and
null on the pcm level. so those are the names we will be accessing via our code.
it also defines
hwdep.default and
hwdep.hw which I will try to have a look at at some point.
[root@kindle /dev]# cat /proc/asound/cards
0 [mx35luigi ]: WM8960 - mx35luigi
mx35luigi (WM8960)
Code:
Simple mixer control 'Headphone',0
Capabilities: pvolume
Playback channels: Front Left - Front Right
Limits: Playback 0 - 127
Mono:
Front Left: Playback 0 [0%]
Front Right: Playback 16 [13%]
Simple mixer control 'Headphone Playback ZC',0
Capabilities: pswitch
Playback channels: Front Left - Front Right
Mono:
Front Left: Playback [off]
Front Right: Playback [off]
Simple mixer control 'PCM Playback -6dB',0
Capabilities: pswitch pswitch-joined
Playback channels: Mono
Mono: Playback [off]
Simple mixer control 'Playback',0
Capabilities: volume
Playback channels: Front Left - Front Right
Capture channels: Front Left - Front Right
Limits: 0 - 255
Front Left: 243 [95%]
Front Right: 243 [95%]
Simple mixer control 'Playback De-emphasis',0
Capabilities: enum
Items: 'None' '32Khz' '44.1Khz' '48Khz'
Item0: 'None'
Simple mixer control 'Capture',0
Capabilities: cvolume cswitch
Capture channels: Front Left - Front Right
Limits: Capture 0 - 63
Front Left: Capture 23 [37%] [off]
Front Right: Capture 23 [37%] [off]
Simple mixer control 'Capture Volume ZC',0
Capabilities: pswitch
Playback channels: Front Left - Front Right
Mono:
Front Left: Playback [off]
Front Right: Playback [off]
Simple mixer control '3D',0
Capabilities: volume volume-joined pswitch pswitch-joined
Playback channels: Mono
Capture channels: Mono
Limits: 0 - 15
Mono: 0 [0%] Playback [off]
Simple mixer control '3D Filter Lower Cut-Off',0
Capabilities: enum
Items: 'Low' 'High'
Item0: 'Low'
Simple mixer control '3D Filter Upper Cut-Off',0
Capabilities: enum
Items: 'High' 'Low'
Item0: 'High'
Simple mixer control 'ADC High Pass Filter',0
Capabilities: pswitch pswitch-joined
Playback channels: Mono
Mono: Playback [off]
Simple mixer control 'ADC PCM',0
Capabilities: cvolume
Capture channels: Front Left - Front Right
Limits: Capture 0 - 127
Front Left: Capture 0 [0%]
Front Right: Capture 0 [0%]
Simple mixer control 'ADC Polarity',0
Capabilities: enum
Items: 'No Inversion' 'Left Inverted' 'Right Inverted' 'Stereo Inversion'
Item0: 'No Inversion'
Simple mixer control 'ALC Attack',0
Capabilities: volume volume-joined
Playback channels: Mono
Capture channels: Mono
Limits: 0 - 15
Mono: 2 [13%]
Simple mixer control 'ALC Decay',0
Capabilities: volume volume-joined
Playback channels: Mono
Capture channels: Mono
Limits: 0 - 15
Mono: 3 [20%]
Simple mixer control 'ALC Function',0
Capabilities: enum
Items: 'Off' 'Right' 'Left' 'Stereo'
Item0: 'Off'
Simple mixer control 'ALC Hold Time',0
Capabilities: volume volume-joined
Playback channels: Mono
Capture channels: Mono
Limits: 0 - 15
Mono: 0 [0%]
Simple mixer control 'ALC Max Gain',0
Capabilities: volume volume-joined
Playback channels: Mono
Capture channels: Mono
Limits: 0 - 7
Mono: 7 [100%]
Simple mixer control 'ALC Min Gain',0
Capabilities: volume volume-joined
Playback channels: Mono
Capture channels: Mono
Limits: 0 - 7
Mono: 0 [0%]
Simple mixer control 'ALC Mode',0
Capabilities: enum
Items: 'ALC' 'Limiter'
Item0: 'ALC'
Simple mixer control 'ALC Target',0
Capabilities: volume volume-joined
Playback channels: Mono
Capture channels: Mono
Limits: 0 - 15
Mono: 4 [27%]
Simple mixer control 'DAC Polarity',0
Capabilities: enum
Items: 'No Inversion' 'Left Inverted' 'Right Inverted' 'Stereo Inversion'
Item0: 'No Inversion'
Simple mixer control 'Left Output Mixer Boost Bypass',0
Capabilities: volume volume-joined
Playback channels: Mono
Capture channels: Mono
Limits: 0 - 7
Mono: 2 [29%]
Simple mixer control 'Left Output Mixer LINPUT3',0
Capabilities: volume volume-joined
Playback channels: Mono
Capture channels: Mono
Limits: 0 - 7
Mono: 2 [29%]
Simple mixer control 'Noise Gate',0
Capabilities: pswitch pswitch-joined
Playback channels: Mono
Mono: Playback [off]
Simple mixer control 'Noise Gate Threshold',0
Capabilities: volume volume-joined
Playback channels: Mono
Capture channels: Mono
Limits: 0 - 31
Mono: 0 [0%]
Simple mixer control 'Right Output Mixer Boost Bypass',0
Capabilities: volume volume-joined
Playback channels: Mono
Capture channels: Mono
Limits: 0 - 7
Mono: 2 [29%]
Simple mixer control 'Right Output Mixer RINPUT3',0
Capabilities: volume volume-joined
Playback channels: Mono
Capture channels: Mono
Limits: 0 - 7
Mono: 2 [29%]
Simple mixer control 'Speaker',0
Capabilities: pvolume
Playback channels: Front Left - Front Right
Limits: Playback 0 - 127
Mono:
Front Left: Playback 0 [0%]
Front Right: Playback 16 [13%]
Simple mixer control 'Speaker AC',0
Capabilities: volume volume-joined
Playback channels: Mono
Capture channels: Mono
Limits: 0 - 5
Mono: 0 [0%]
Simple mixer control 'Speaker DC',0
Capabilities: volume volume-joined
Playback channels: Mono
Capture channels: Mono
Limits: 0 - 5
Mono: 0 [0%]
Simple mixer control 'Speaker Playback ZC',0
Capabilities: pswitch
Playback channels: Front Left - Front Right
Mono:
Front Left: Playback [off]
Front Right: Playback [off]
So its an Alsa-sound installation with some interesting bits and bats of settable params.
Specifically: Access to some basic 3D audio emulation and potentially some filtering
(By all accounts this often does nothing)
Automated Volume leveling and some fancy ADSR enums around it
Also uses some sort of target function which looks intriguing
(which could serve as a compressor limiter expander possibly mis-used correctly)
Settings for ADC / DAC inversion with single side inversion
(that may allow for phase effect tricks such as cancellation to be done without code)
Mic Boost is included which may actually come in handy. no doubt horrible.
A mono volume-joined noise gate - which is a nice bonus.
It is unclear if we will be able to access these features
http://tldp.org/HOWTO/Alsa-sound-6.html has a run down of much of info I have re-covered here.
the
alsamixer and
alsactl apps are also present.