Chaintech AV-710 (AV710) ALSA asound.state for Wolfson DAC
Jan 10, 2010 at 12:52 AM Thread Starter Post #1 of 10

cemysce

New Head-Fier
Joined
Jan 7, 2010
Posts
8
Likes
0
It took many hours of research over several days in order for me to figure out the latest ALSA configuration necessary for the Chaintech AV-710 in order to use the Wolfson DAC behind the Rear Surround jack, so I am going to summarize my findings, along with an asound.state, right here. Then I will post links to this thread in the other threads which I came upon throughout my research.

First, some basics: I am using Gentoo Linux with a 2.6.31 kernel and ALSA 1.0.20 (cat /proc/asound/version). After moving my AV-710 over to a newly built box, I discovered that the asound.state I had used on my previous box no longer worked. I would get the following error whenever alsactl attempted to restore the mixer settings from asound.state:

Code:

Code:
[left]Unknown hardware: "ICE1724" "ICEnsemble VT1616i" "AC97a:49434552" "0x1412" "0x1724" Hardware is initialized using a guess method[/left]

Any number of mistakes in asound.state can result in a similar error. My asound.state had been based on the one from vandemar.org [1]. I eventually found one link in this forum to an ALSA bug report [2]. It is an interesting read, and the asound.state attached to that bug report worked almost perfectly -- it still gave some errors when I copied it to /var/lib/alsa/asound.state and ran 'alsactl -f /var/lib/alsa/asound.state restore' but sound was finally working from the Rear Surround jack through the Wolfson DAC! In order to elliminate the errors, I brought down alsasound by running '/etc/init.d/alsasound stop', removed /var/lib/alsa/asound.state, then shutdown. I shutdown because I had observed at one point (maybe it was just in my mind, I never confirmed this) that although I restored sound with an asound.state that had previously not worked at all, sound continued to work. I assumed that the card itself has some sort of internal state which would be lost once it lost power for a short while, and so I shutdown and turned off the power supply to be sure, then left it off for a couple of minutes. Back on again, and fully booted up, I ran 'alsactl -f /var/lib/alsa/asound.state store' to save ALSA's default state for the card to a file. Since this default state produces no errors, I opened the now default /var/lib/alsa/asound.state and the asound.state from the bug report (the one which worked almost perfectly) and bit by bit tried to make /var/lib/alsa/asound.state like the one from the bug report, running 'alsactl -f /var/lib/alsa/asound.state restore' periodically. I came up with the following:

Code:

Code:
[left]state.AV710 { control.1 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'Front Playback Switch' value false } control.2 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 31' iface MIXER name 'Front Playback Volume' value.0 0 value.1 0 } control.3 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'Center Playback Switch' value false } control.4 { comment.access 'read write' comment.type INTEGER comment.count 1 comment.range '0 - 31' iface MIXER name 'Center Playback Volume' value 0 } control.5 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'LFE Playback Switch' value false } control.6 { comment.access 'read write' comment.type INTEGER comment.count 1 comment.range '0 - 31' iface MIXER name 'LFE Playback Volume' value 0 } control.7 { comment.access 'read write' comment.type BOOLEAN comment.count 2 iface MIXER name 'Surround Playback Switch' value.0 false value.1 false } control.8 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 31' iface MIXER name 'Surround Playback Volume' value.0 0 value.1 0 } control.9 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'Headphone Playback Switch' value false } control.10 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 31' iface MIXER name 'Headphone Playback Volume' value.0 0 value.1 0 } control.11 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'Master Mono Playback Switch' value false } control.12 { comment.access 'read write' comment.type INTEGER comment.count 1 comment.range '0 - 31' iface MIXER name 'Master Mono Playback Volume' value 0 } control.13 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'PC Speaker Playback Switch' value false } control.14 { comment.access 'read write' comment.type INTEGER comment.count 1 comment.range '0 - 15' iface MIXER name 'PC Speaker Playback Volume' value 0 } control.15 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'Phone Playback Switch' value false } control.16 { comment.access 'read write' comment.type INTEGER comment.count 1 comment.range '0 - 31' iface MIXER name 'Phone Playback Volume' value 0 } control.17 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'Mic Playback Switch' value false } control.18 { comment.access 'read write' comment.type INTEGER comment.count 1 comment.range '0 - 31' iface MIXER name 'Mic Playback Volume' value 0 } control.19 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'Mic Boost (+20dB)' value false } control.20 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'Line Playback Switch' value false } control.21 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 31' iface MIXER name 'Line Playback Volume' value.0 0 value.1 0 } control.22 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'CD Playback Switch' value false } control.23 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 31' iface MIXER name 'CD Playback Volume' value.0 0 value.1 0 } control.24 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'Video Playback Switch' value false } control.25 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 31' iface MIXER name 'Video Playback Volume' value.0 0 value.1 0 } control.26 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'Aux Playback Switch' value false } control.27 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 31' iface MIXER name 'Aux Playback Volume' value.0 0 value.1 0 } control.28 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'PCM Playback Switch' value true } control.29 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 31' iface MIXER name 'PCM Playback Volume' value.0 15 value.1 15 } control.30 { comment.access 'read write' comment.type ENUMERATED comment.count 2 comment.item.0 Mic comment.item.1 CD comment.item.2 Video comment.item.3 Aux comment.item.4 Line comment.item.5 Mix comment.item.6 'Mix Mono' comment.item.7 Phone iface MIXER name 'Capture Source' value.0 Mix value.1 Mix } control.31 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'Capture Switch' value true } control.32 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 15' iface MIXER name 'Capture Volume' value.0 0 value.1 0 } control.33 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name '3D Control - Switch' value false } control.34 { comment.access 'read write' comment.type ENUMERATED comment.count 1 comment.item.0 Mix comment.item.1 Mic iface MIXER name 'Mono Output Select' value Mix } control.35 { comment.access 'read write' comment.type ENUMERATED comment.count 1 comment.item.0 Mic1 comment.item.1 Mic2 iface MIXER name 'Mic Select' value Mic1 } control.36 { comment.access 'read write' comment.type INTEGER comment.count 1 comment.range '0 - 15' iface MIXER name '3D Control - Center' value 0 } control.37 { comment.access 'read write' comment.type INTEGER comment.count 1 comment.range '0 - 15' iface MIXER name '3D Control - Depth' value 0 } control.38 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'Alternate Level to Surround Out' value false } control.39 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'Downmix LFE and Center to Front' value false } control.40 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'Downmix Surround to Front' value false } control.41 { comment.access 'read write' comment.type INTEGER comment.count 1 comment.range '0 - 31' iface MIXER name 'Master Playback Volume' value 0 } control.42 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'Master Playback Switch' value false } control.43 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'External Amplifier' value false } control.44 { comment.access read comment.type BYTES comment.count 52 iface CARD name 'ICE1724 EEPROM' value '172414121c01020210c1ff0000ff0000ff0000000101010001000000000000000000000000000000ff000000ff000000ff000000' } control.45 { comment.access 'read write' comment.type ENUMERATED comment.count 1 comment.item.0 '8000' comment.item.1 '9600' comment.item.2 '11025' comment.item.3 '12000' comment.item.4 '16000' comment.item.5 '22050' comment.item.6 '24000' comment.item.7 '32000' comment.item.8 '44100' comment.item.9 '48000' comment.item.10 '64000' comment.item.11 '88200' comment.item.12 '96000' comment.item.13 '176400' comment.item.14 '192000' comment.item.15 'IEC958 Input' iface MIXER name 'Multi Track Internal Clock' value '48000' } control.46 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'Multi Track Rate Locking' value false } control.47 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'Multi Track Rate Reset' value true } control.48 { comment.access 'read write' comment.type ENUMERATED comment.count 1 comment.item.0 'PCM Out' comment.item.1 'H/W In 0' comment.item.2 'H/W In 1' comment.item.3 'IEC958 In L' comment.item.4 'IEC958 In R' iface MIXER name 'H/W Playback Route' value 'PCM Out' } control.49 { comment.access 'read write' comment.type ENUMERATED comment.count 1 comment.item.0 'PCM Out' comment.item.1 'H/W In 0' comment.item.2 'H/W In 1' comment.item.3 'IEC958 In L' comment.item.4 'IEC958 In R' iface MIXER name 'H/W Playback Route' index 1 value 'PCM Out' } control.50 { comment.access read comment.type INTEGER comment.count 22 comment.range '0 - 255' iface MIXER name 'Multi Track Peak' value.0 0 value.1 0 value.2 0 value.3 0 value.4 0 value.5 0 value.6 0 value.7 0 value.8 0 value.9 0 value.10 0 value.11 0 value.12 0 value.13 0 value.14 0 value.15 0 value.16 0 value.17 0 value.18 0 value.19 0 value.20 0 value.21 0 } control.51 { comment.access 'read write' comment.type ENUMERATED comment.count 1 comment.item.0 'PCM Out' comment.item.1 'H/W In 0' comment.item.2 'H/W In 1' comment.item.3 'IEC958 In L' comment.item.4 'IEC958 In R' iface MIXER name 'IEC958 Playback Route' value 'H/W In 0' } control.52 { comment.access 'read write' comment.type ENUMERATED comment.count 1 comment.item.0 'PCM Out' comment.item.1 'H/W In 0' comment.item.2 'H/W In 1' comment.item.3 'IEC958 In L' comment.item.4 'IEC958 In R' iface MIXER name 'IEC958 Playback Route' index 1 value 'H/W In 1' } control.53 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'IEC958 Output Switch' value false } control.54 { comment.access 'read write' comment.type IEC958 comment.count 1 iface PCM device 1 name 'IEC958 Playback Default' value '0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' } control.55 { comment.access read comment.type IEC958 comment.count 1 iface PCM device 1 name 'IEC958 Playback Con Mask' value '3fff000f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' } control.56 { comment.access read comment.type IEC958 comment.count 1 iface PCM device 1 name 'IEC958 Playback Pro Mask' value 'df00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' } }[/left]

You'll notice that the following channels are muted and have the volume set to 0:
  1. Front
  2. Center
  3. LFE
  4. Surround
  5. Headphone
  6. PC Speaker
  7. Master Mono
  8. Phone
  9. Mic
  10. Line
  11. CD
  12. Video
  13. Aux
  14. Master

Also, Mic Boost and 3D Control are disabled, and 3D Control - Center and 3D Control - Depth have their volumes set to 0. I don't believe any of these channels/features have any impact on sound through the Wolfson DAC, so I disabled them to avoid confusion.

Capture Source must be set to Mix because it is the only source which includes the PCM channel. Capture Switch must also be true. Capture Volume can be 0 -- it still works. You will be using the PCM channel's volume control, and not this, but for an extra boost I suppose you could set this to its maximum value of 7, though I believe it was set to 0 in the bug report's asound.state because anything else might result in some sort of distortion (NOTE: I did not confirm this).

PCM must be true and it's volume must be >0. This is the volume control that you will be using.

I did not observe Mono Output Select to have any impact, but maybe it is important in some scenarios so I set it to Mix.

I don't believe Mic Select matters either -- I just left it at Mic1.

I did not observe Alternate Level to Surround Out, Downmix LFE and Center to Front, Downmix Surround to Front, or External Amplifier to have any impact, so I just set them all to false to avoid confusion.

Based on the bug report's asound.state, I added 64000, 88200, 96000, 176400, and 192000 to Multi Track Internal Clock in between 48000 and IEC958 Input. Despite this, I noticed that alsamixer still did not show these options, and that an 'alsactl -f /var/lib/alsa/asound.state store' would just remove them again. Maybe they are not needed and in fact do not work, or maybe they need to be set manually in order to work. I just left them. The option itself I set to 48000.

Multi Track Rate Locking is true in the bug report's asound.state, but I set it to false because I believe setting it to true will prevent an application from playing sound at a rate other than the internal clock setting. Multi Track Rate Reset is true in order to reset the rate back to the internal clock setting after the application closes the audio device.

H/W Playback Route and H/W Playback Route 1 must both be set to PCM Out, and IEC958 Playback Route and IEC958 Playback Route 1 must be set to H/W In 0 and H/W In 1 respectively, otherwise no Wolfson DAC! IEC958 Playback Switch appears to control the optical S/PDIF output. Plug a cable in there and observe the disconnected end -- with this set to true, the light will turn on. Since the configuration I've been describing won't work with this port anyway, might as well set this to false to save some power.

Apparently Multi Track Peak is a read-only option, which I take to mean that it isn't really an option and setting it to anything is meaningless. This may or may not be true. All I know is that I set all the values to 0 and didn't notice any change.

References:

[1] Original working asound.state: http://www.vandemar.org/asound.state
[2] ALSA bug report with an almost working asound.state attached (use Guest login link): 0002348: Chaintech AV-710 - High quality output doesn't work since alsa-driver 1.0.11
[3] Descriptions of some of the channels and options: Ice1724 - ALSA wiki which references Re: [Alsa-devel] ice1724 controls meaning
 
Jan 10, 2010 at 9:55 PM Post #2 of 10
Wow. Great timing. I've been struggling with this for the last couple days. Works perfectly for me on Kubuntu 9.10. Thank you so much for taking the time to write up your process and results!

Jim
 
Jun 18, 2010 at 11:32 PM Post #4 of 10
I get this:
 
 
naren@chaembian:~/tmp/av710$ alsactl -f ~/tmp/av710/asound.state.20100619.01 restore
Unknown hardware: "ICE1724" "VIA Technologies id 83" "AC97a:56494183" "0x1412" "0x1724"
Hardware is initialized using a guess method
/usr/share/alsa/init/default:51: control element not found
/usr/share/alsa/init/default:52: missing closing brace for format
/usr/share/alsa/init/default:52: error parsing CTL attribute
/usr/share/alsa/init/default:52: invalid rule
alsactl: set_control:1256: failed to obtain info for control #1 (No such file or directory)
alsactl: set_control:1256: failed to obtain info for control #2 (No such file or directory)
alsactl: set_control:1256: failed to obtain info for control #9 (No such file or directory)
alsactl: set_control:1256: failed to obtain info for control #10 (No such file or directory)
alsactl: set_control:1256: failed to obtain info for control #11 (No such file or directory)
alsactl: set_control:1256: failed to obtain info for control #12 (No such file or directory)
alsactl: set_control:1256: failed to obtain info for control #24 (No such file or directory)
alsactl: set_control:1256: failed to obtain info for control #25 (No such file or directory)
alsactl: set_control:1256: failed to obtain info for control #33 (No such file or directory)
alsactl: set_control:1256: failed to obtain info for control #34 (No such file or directory)
alsactl: set_control:1256: failed to obtain info for control #36 (No such file or directory)
alsactl: set_control:1256: failed to obtain info for control #37 (No such file or directory)
alsactl: set_control:1256: failed to obtain info for control #38 (No such file or directory)
alsactl: set_control:1256: failed to obtain info for control #39 (No such file or directory)
alsactl: set_control:1256: failed to obtain info for control #40 (No such file or directory)
chaembian@chaembian:~/tmp/av710$ alsactl -f ~/tmp/av710/asound.state.20100619.01 restore
Unknown hardware: "ICE1724" "VIA Technologies id 83" "AC97a:56494183" "0x1412" "0x1724"
Hardware is initialized using a guess method
/usr/share/alsa/init/default:51: control element not found
/usr/share/alsa/init/default:52: missing closing brace for format
/usr/share/alsa/init/default:52: error parsing CTL attribute
/usr/share/alsa/init/default:52: invalid rule
alsactl: set_control:1256: failed to obtain info for control #1 (No such file or directory)
alsactl: set_control:1256: failed to obtain info for control #2 (No such file or directory)
alsactl: set_control:1256: failed to obtain info for control #9 (No such file or directory)
alsactl: set_control:1256: failed to obtain info for control #10 (No such file or directory)
alsactl: set_control:1256: failed to obtain info for control #11 (No such file or directory)
alsactl: set_control:1256: failed to obtain info for control #12 (No such file or directory)
alsactl: set_control:1256: failed to obtain info for control #24 (No such file or directory)
alsactl: set_control:1256: failed to obtain info for control #25 (No such file or directory)
alsactl: set_control:1256: failed to obtain info for control #33 (No such file or directory)
alsactl: set_control:1256: failed to obtain info for control #34 (No such file or directory)
alsactl: set_control:1256: failed to obtain info for control #36 (No such file or directory)
alsactl: set_control:1256: failed to obtain info for control #37 (No such file or directory)
alsactl: set_control:1256: failed to obtain info for control #38 (No such file or directory)
alsactl: set_control:1256: failed to obtain info for control #39 (No such file or directory)
alsactl: set_control:1256: failed to obtain info for control #40 (No such file or directory)
 
:/
 

 
Aug 11, 2010 at 2:26 AM Post #6 of 10
Configuring this card has always been a pain in Linux.
 
Is the config you posted above modified from the vandemar.org's version?
 
BTW, just curious what distro are you doing this on?
 
Aug 18, 2010 at 8:07 PM Post #7 of 10
I don't know if you want to use PulseAudio, but I got it working after fiddling with it for a while.
 
I didn't really have to do anything to get it running either. Just got the pulseaudio gnome integrated panel which allows you to choose the outputs etc. I think it's part of the gnome-media-pulse package (for Arch Linux, anyways).
 
Using Gnome 2.30, go to System > Preferences > Sound. This loads a window/app/panel called "Sound Preferences".
 
Under the Hardware tab, it should list your device "VT1720/24 [Envy24PT/HT]" and any others should you have more than one Sound card. Click on this entry and right under it is a Profile dropdown box. Select "Digital Stereo Duplex (IEC958)"
 
That's it. I didn't need any asound.states or anything. At boot and through my logs, it even complains that that file is empty!
 
Hope this helps.
 
Aug 19, 2010 at 7:17 PM Post #8 of 10
I use Gentoo Linux and the kernel upgrade from 2.6.31 to 2.6.34 (and whatever ALSA changed to) is what broke this for me. I'll try to figure this thing out again soon. Also, yes, vandemar.org was one of the sites I had consulted originally, but their asound.state no longer works.
 
Aug 23, 2010 at 12:07 AM Post #9 of 10
Below is my updated asound.state for Linux 2.6.34, ALSA 1.0.22.1.  I followed the same procedure detailed in my original post: stop ALSA, delete asound.state, shutdown, wait a minute, power up, store asound.state, then make the necessary changes.  See my original post for a more thorough explanation of those changes.

Here is the file:
 
state.AV710 {
    control.1 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Front Playback Switch'
        value false
    }
    control.2 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 2
        comment.range '0 - 31'
        iface MIXER
        name 'Front Playback Volume'
        value.0 0
        value.1 0
    }
    control.3 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Center Playback Switch'
        value false
    }
    control.4 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 1
        comment.range '0 - 31'
        iface MIXER
        name 'Center Playback Volume'
        value 0
    }
    control.5 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'LFE Playback Switch'
        value false
    }
    control.6 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 1
        comment.range '0 - 31'
        iface MIXER
        name 'LFE Playback Volume'
        value 0
    }
    control.7 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 2
        iface MIXER
        name 'Surround Playback Switch'
        value.0 false
        value.1 false
    }
    control.8 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 2
        comment.range '0 - 31'
        iface MIXER
        name 'Surround Playback Volume'
        value.0 0
        value.1 0
    }
    control.9 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Headphone Playback Switch'
        value false
    }
    control.10 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 2
        comment.range '0 - 31'
        iface MIXER
        name 'Headphone Playback Volume'
        value.0 0
        value.1 0
    }
    control.11 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Master Mono Playback Switch'
        value false
    }
    control.12 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 1
        comment.range '0 - 31'
        iface MIXER
        name 'Master Mono Playback Volume'
        value 0
    }
    control.13 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Beep Playback Switch'
        value false
    }
    control.14 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 1
        comment.range '0 - 15'
        iface MIXER
        name 'Beep Playback Volume'
        value 0
    }
    control.15 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Phone Playback Switch'
        value false
    }
    control.16 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 1
        comment.range '0 - 31'
        iface MIXER
        name 'Phone Playback Volume'
        value 0
    }
    control.17 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Mic Playback Switch'
        value false
    }
    control.18 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 1
        comment.range '0 - 31'
        iface MIXER
        name 'Mic Playback Volume'
        value 0
    }
    control.19 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Mic Boost (+20dB)'
        value false
    }
    control.20 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Line Playback Switch'
        value false
    }
    control.21 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 2
        comment.range '0 - 31'
        iface MIXER
        name 'Line Playback Volume'
        value.0 0
        value.1 0
    }
    control.22 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'CD Playback Switch'
        value false
    }
    control.23 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 2
        comment.range '0 - 31'
        iface MIXER
        name 'CD Playback Volume'
        value.0 0
        value.1 0
    }
    control.24 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Video Playback Switch'
        value false
    }
    control.25 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 2
        comment.range '0 - 31'
        iface MIXER
        name 'Video Playback Volume'
        value.0 0
        value.1 0
    }
    control.26 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Aux Playback Switch'
        value false
    }
    control.27 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 2
        comment.range '0 - 31'
        iface MIXER
        name 'Aux Playback Volume'
        value.0 0
        value.1 0
    }
    control.28 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'PCM Playback Switch'
        value true
    }
    control.29 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 2
        comment.range '0 - 31'
        iface MIXER
        name 'PCM Playback Volume'
        value.0 15
        value.1 15
    }
    control.30 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 2
        comment.item.0 Mic
        comment.item.1 CD
        comment.item.2 Video
        comment.item.3 Aux
        comment.item.4 Line
        comment.item.5 Mix
        comment.item.6 'Mix Mono'
        comment.item.7 Phone
        iface MIXER
        name 'Capture Source'
        value.0 Mix
        value.1 Mix
    }
    control.31 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Capture Switch'
        value true
    }
    control.32 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 2
        comment.range '0 - 15'
        iface MIXER
        name 'Capture Volume'
        value.0 0
        value.1 0
    }
    control.33 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name '3D Control - Switch'
        value false
    }
    control.34 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 Mix
        comment.item.1 Mic
        iface MIXER
        name 'Mono Output Select'
        value Mix
    }
    control.35 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 Mic1
        comment.item.1 Mic2
        iface MIXER
        name 'Mic Select'
        value Mic1
    }
    control.36 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 1
        comment.range '0 - 15'
        iface MIXER
        name '3D Control - Center'
        value 0
    }
    control.37 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 1
        comment.range '0 - 15'
        iface MIXER
        name '3D Control - Depth'
        value 0
    }
    control.38 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Alternate Level to Surround Out'
        value false
    }
    control.39 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Downmix LFE and Center to Front'
        value false
    }
    control.40 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Downmix Surround to Front'
        value false
    }
    control.41 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 1
        comment.range '0 - 31'
        iface MIXER
        name 'Master Playback Volume'
        value 0
    }
    control.42 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Master Playback Switch'
        value false
    }
    control.43 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'External Amplifier'
        value false
    }
    control.44 {
        comment.access read
        comment.type BYTES
        comment.count 52
        iface CARD
        name 'ICE1724 EEPROM'
        value '172414121c01020210c1ff0000ff0000ff0000000101010001000000000000000000000000000000ff000000ff000000ff000000'
    }
    control.45 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 '8000'
        comment.item.1 '9600'
        comment.item.2 '11025'
        comment.item.3 '12000'
        comment.item.4 '16000'
        comment.item.5 '22050'
        comment.item.6 '24000'
        comment.item.7 '32000'
        comment.item.8 '44100'
        comment.item.9 '48000'
        comment.item.10 'IEC958 In'
        iface MIXER
        name 'Multi Track Internal Clock'
        value '48000'
    }
    control.46 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Multi Track Rate Locking'
        value false
    }
    control.47 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Multi Track Rate Reset'
        value true
    }
    control.48 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 'PCM Out'
        comment.item.1 'H/W In 0'
        comment.item.2 'H/W In 1'
        comment.item.3 'IEC958 In L'
        comment.item.4 'IEC958 In R'
        iface MIXER
        name 'H/W Playback Route'
        value 'PCM Out'
    }
    control.49 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 'PCM Out'
        comment.item.1 'H/W In 0'
        comment.item.2 'H/W In 1'
        comment.item.3 'IEC958 In L'
        comment.item.4 'IEC958 In R'
        iface MIXER
        name 'H/W Playback Route'
        index 1
        value 'PCM Out'
    }
    control.50 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 'PCM Out'
        comment.item.1 'H/W In 0'
        comment.item.2 'H/W In 1'
        comment.item.3 'IEC958 In L'
        comment.item.4 'IEC958 In R'
        iface MIXER
        name 'H/W Playback Route'
        index 2
        value 'PCM Out'
    }
    control.51 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 'PCM Out'
        comment.item.1 'H/W In 0'
        comment.item.2 'H/W In 1'
        comment.item.3 'IEC958 In L'
        comment.item.4 'IEC958 In R'
        iface MIXER
        name 'H/W Playback Route'
        index 3
        value 'PCM Out'
    }
    control.52 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 'PCM Out'
        comment.item.1 'H/W In 0'
        comment.item.2 'H/W In 1'
        comment.item.3 'IEC958 In L'
        comment.item.4 'IEC958 In R'
        iface MIXER
        name 'H/W Playback Route'
        index 4
        value 'PCM Out'
    }
    control.53 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 'PCM Out'
        comment.item.1 'H/W In 0'
        comment.item.2 'H/W In 1'
        comment.item.3 'IEC958 In L'
        comment.item.4 'IEC958 In R'
        iface MIXER
        name 'H/W Playback Route'
        index 5
        value 'PCM Out'
    }
    control.54 {
        comment.access read
        comment.type INTEGER
        comment.count 22
        comment.range '0 - 255'
        iface PCM
        name 'Multi Track Peak'
        value.0 0
        value.1 0
        value.2 0
        value.3 0
        value.4 0
        value.5 0
        value.6 0
        value.7 0
        value.8 0
        value.9 0
        value.10 0
        value.11 0
        value.12 0
        value.13 0
        value.14 0
        value.15 0
        value.16 0
        value.17 0
        value.18 0
        value.19 0
        value.20 0
        value.21 0
    }
    control.55 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 'PCM Out'
        comment.item.1 'H/W In 0'
        comment.item.2 'H/W In 1'
        comment.item.3 'IEC958 In L'
        comment.item.4 'IEC958 In R'
        iface MIXER
        name 'IEC958 Playback Route'
        value 'H/W In 0'
    }
    control.56 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 'PCM Out'
        comment.item.1 'H/W In 0'
        comment.item.2 'H/W In 1'
        comment.item.3 'IEC958 In L'
        comment.item.4 'IEC958 In R'
        iface MIXER
        name 'IEC958 Playback Route'
        index 1
        value 'H/W In 1'
    }
    control.57 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'IEC958 Output Switch'
        value false
    }
    control.58 {
        comment.access 'read write'
        comment.type IEC958
        comment.count 1
        iface PCM
        device 1
        name 'IEC958 Playback Default'
        value '0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
    }
    control.59 {
        comment.access read
        comment.type IEC958
        comment.count 1
        iface PCM
        device 1
        name 'IEC958 Playback Con Mask'
        value '3fff000f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
    }
    control.60 {
        comment.access read
        comment.type IEC958
        comment.count 1
        iface PCM
        device 1
        name 'IEC958 Playback Pro Mask'
        value df00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    }
}
 
 
Sep 4, 2011 at 9:51 PM Post #10 of 10
I recently changed my asound.state as ALSA is now nesting "comment.*" properties inside a "comment { }" block.  The old asound.state still worked, but I figured I might as well include an updated version.  I don't believe anything else has changed, and this asound.state continues to work with ALSA 1.0.24.1, Linux kernel 2.6.38.
 
Code:
 state.AV710 { control.1 { iface MIXER name 'Front Playback Switch' value false comment { access 'read write' type BOOLEAN count 1 } } control.2 { iface MIXER name 'Front Playback Volume' value.0 0 value.1 0 comment { access 'read write' type INTEGER count 2 range '0 - 31' } } control.3 { iface MIXER name 'Center Playback Switch' value false comment { access 'read write' type BOOLEAN count 1 } } control.4 { iface MIXER name 'Center Playback Volume' value 0 comment { access 'read write' type INTEGER count 1 range '0 - 31' } } control.5 { iface MIXER name 'LFE Playback Switch' value false comment { access 'read write' type BOOLEAN count 1 } } control.6 { iface MIXER name 'LFE Playback Volume' value 0 comment { access 'read write' type INTEGER count 1 range '0 - 31' } } control.7 { iface MIXER name 'Surround Playback Switch' value.0 false value.1 false comment { access 'read write' type BOOLEAN count 2 } } control.8 { iface MIXER name 'Surround Playback Volume' value.0 0 value.1 0 comment { access 'read write' type INTEGER count 2 range '0 - 31' } } control.9 { iface MIXER name 'Headphone Playback Switch' value false comment { access 'read write' type BOOLEAN count 1 } } control.10 { iface MIXER name 'Headphone Playback Volume' value.0 0 value.1 0 comment { access 'read write' type INTEGER count 2 range '0 - 31' } } control.11 { iface MIXER name 'Master Mono Playback Switch' value false comment { access 'read write' type BOOLEAN count 1 } } control.12 { iface MIXER name 'Master Mono Playback Volume' value 0 comment { access 'read write' type INTEGER count 1 range '0 - 31' } } control.13 { iface MIXER name 'Beep Playback Switch' value false comment { access 'read write' type BOOLEAN count 1 } } control.14 { iface MIXER name 'Beep Playback Volume' value 0 comment { access 'read write' type INTEGER count 1 range '0 - 15' } } control.15 { iface MIXER name 'Phone Playback Switch' value false comment { access 'read write' type BOOLEAN count 1 } } control.16 { iface MIXER name 'Phone Playback Volume' value 0 comment { access 'read write' type INTEGER count 1 range '0 - 31' } } control.17 { iface MIXER name 'Mic Playback Switch' value false comment { access 'read write' type BOOLEAN count 1 } } control.18 { iface MIXER name 'Mic Playback Volume' value 0 comment { access 'read write' type INTEGER count 1 range '0 - 31' } } control.19 { iface MIXER name 'Mic Boost (+20dB)' value false comment { access 'read write' type BOOLEAN count 1 } } control.20 { iface MIXER name 'Line Playback Switch' value false comment { access 'read write' type BOOLEAN count 1 } } control.21 { iface MIXER name 'Line Playback Volume' value.0 0 value.1 0 comment { access 'read write' type INTEGER count 2 range '0 - 31' } } control.22 { iface MIXER name 'CD Playback Switch' value false comment { access 'read write' type BOOLEAN count 1 } } control.23 { iface MIXER name 'CD Playback Volume' value.0 0 value.1 0 comment { access 'read write' type INTEGER count 2 range '0 - 31' } } control.24 { iface MIXER name 'Video Playback Switch' value false comment { access 'read write' type BOOLEAN count 1 } } control.25 { iface MIXER name 'Video Playback Volume' value.0 0 value.1 0 comment { access 'read write' type INTEGER count 2 range '0 - 31' } } control.26 { iface MIXER name 'Aux Playback Switch' value false comment { access 'read write' type BOOLEAN count 1 } } control.27 { iface MIXER name 'Aux Playback Volume' value.0 0 value.1 0 comment { access 'read write' type INTEGER count 2 range '0 - 31' } } control.28 { iface MIXER name 'PCM Playback Switch' value true comment { access 'read write' type BOOLEAN count 1 } } control.29 { iface MIXER name 'PCM Playback Volume' value.0 15 value.1 15 comment { access 'read write' type INTEGER count 2 range '0 - 31' } } control.30 { iface MIXER name 'Capture Source' value.0 Mix value.1 Mix comment { access 'read write' type ENUMERATED count 2 item.0 Mic item.1 CD item.2 Video item.3 Aux item.4 Line item.5 Mix item.6 'Mix Mono' item.7 Phone } } control.31 { iface MIXER name 'Capture Switch' value true comment { access 'read write' type BOOLEAN count 1 } } control.32 { iface MIXER name 'Capture Volume' value.0 0 value.1 0 comment { access 'read write' type INTEGER count 2 range '0 - 15' } } control.33 { iface MIXER name '3D Control - Switch' value false comment { access 'read write' type BOOLEAN count 1 } } control.34 { iface MIXER name 'Mono Output Select' value Mix comment { access 'read write' type ENUMERATED count 1 item.0 Mix item.1 Mic } } control.35 { iface MIXER name 'Mic Select' value Mic1 comment { access 'read write' type ENUMERATED count 1 item.0 Mic1 item.1 Mic2 } } control.36 { iface MIXER name '3D Control - Center' value 0 comment { access 'read write' type INTEGER count 1 range '0 - 15' } } control.37 { iface MIXER name '3D Control - Depth' value 0 comment { access 'read write' type INTEGER count 1 range '0 - 15' } } control.38 { iface MIXER name 'Alternate Level to Surround Out' value false comment { access 'read write' type BOOLEAN count 1 } } control.39 { iface MIXER name 'Downmix LFE and Center to Front' value false comment { access 'read write' type BOOLEAN count 1 } } control.40 { iface MIXER name 'Downmix Surround to Front' value false comment { access 'read write' type BOOLEAN count 1 } } control.41 { iface MIXER name 'Master Playback Volume' value 0 comment { access 'read write' type INTEGER count 1 range '0 - 31' } } control.42 { iface MIXER name 'Master Playback Switch' value false comment { access 'read write' type BOOLEAN count 1 } } control.43 { iface MIXER name 'External Amplifier' value false comment { access 'read write' type BOOLEAN count 1 } } control.44 { iface CARD name 'ICE1724 EEPROM' value '172414121c01020210c1ff0000ff0000ff0000000101010001000000000000000000000000000000ff000000ff000000ff000000' comment { access read type BYTES count 52 } } control.45 { iface MIXER name 'Multi Track Internal Clock' value '48000' comment { access 'read write' type ENUMERATED count 1 item.0 '8000' item.1 '9600' item.2 '11025' item.3 '12000' item.4 '16000' item.5 '22050' item.6 '24000' item.7 '32000' item.8 '44100' item.9 '48000' item.10 'IEC958 In' } } control.46 { iface MIXER name 'Multi Track Rate Locking' value false comment { access 'read write' type BOOLEAN count 1 } } control.47 { iface MIXER name 'Multi Track Rate Reset' value true comment { access 'read write' type BOOLEAN count 1 } } control.48 { iface MIXER name 'H/W Playback Route' value 'PCM Out' comment { access 'read write' type ENUMERATED count 1 item.0 'PCM Out' item.1 'H/W In 0' item.2 'H/W In 1' item.3 'IEC958 In L' item.4 'IEC958 In R' } } control.49 { iface MIXER name 'H/W Playback Route' index 1 value 'PCM Out' comment { access 'read write' type ENUMERATED count 1 item.0 'PCM Out' item.1 'H/W In 0' item.2 'H/W In 1' item.3 'IEC958 In L' item.4 'IEC958 In R' } } control.50 { iface MIXER name 'H/W Playback Route' index 2 value 'PCM Out' comment { access 'read write' type ENUMERATED count 1 item.0 'PCM Out' item.1 'H/W In 0' item.2 'H/W In 1' item.3 'IEC958 In L' item.4 'IEC958 In R' } } control.51 { iface MIXER name 'H/W Playback Route' index 3 value 'PCM Out' comment { access 'read write' type ENUMERATED count 1 item.0 'PCM Out' item.1 'H/W In 0' item.2 'H/W In 1' item.3 'IEC958 In L' item.4 'IEC958 In R' } } control.52 { iface MIXER name 'H/W Playback Route' index 4 value 'PCM Out' comment { access 'read write' type ENUMERATED count 1 item.0 'PCM Out' item.1 'H/W In 0' item.2 'H/W In 1' item.3 'IEC958 In L' item.4 'IEC958 In R' } } control.53 { iface MIXER name 'H/W Playback Route' index 5 value 'PCM Out' comment { access 'read write' type ENUMERATED count 1 item.0 'PCM Out' item.1 'H/W In 0' item.2 'H/W In 1' item.3 'IEC958 In L' item.4 'IEC958 In R' } } control.54 { iface PCM name 'Multi Track Peak' value.0 0 value.1 0 value.2 0 value.3 0 value.4 0 value.5 0 value.6 0 value.7 0 value.8 0 value.9 0 value.10 0 value.11 0 value.12 0 value.13 0 value.14 0 value.15 0 value.16 0 value.17 0 value.18 0 value.19 0 value.20 0 value.21 0 comment { access read type INTEGER count 22 range '0 - 255' } } control.55 { iface MIXER name 'IEC958 Playback Route' value 'H/W In 0' comment { access 'read write' type ENUMERATED count 1 item.0 'PCM Out' item.1 'H/W In 0' item.2 'H/W In 1' item.3 'IEC958 In L' item.4 'IEC958 In R' } } control.56 { iface MIXER name 'IEC958 Playback Route' index 1 value 'H/W In 1' comment { access 'read write' type ENUMERATED count 1 item.0 'PCM Out' item.1 'H/W In 0' item.2 'H/W In 1' item.3 'IEC958 In L' item.4 'IEC958 In R' } } control.57 { iface MIXER name 'IEC958 Output Switch' value false comment { access 'read write' type BOOLEAN count 1 } } control.58 { iface PCM device 1 name 'IEC958 Playback Default' value '0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' comment { access 'read write' type IEC958 count 1 } } control.59 { iface PCM device 1 name 'IEC958 Playback Con Mask' value '3fff000f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' comment { access read type IEC958 count 1 } } control.60 { iface PCM device 1 name 'IEC958 Playback Pro Mask' value df00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 comment { access read type IEC958 count 1 } } }
 
 

Users who are viewing this thread

Back
Top