Head-Fi.org › Forums › Equipment Forums › Computer Audio › Chaintech AV-710 (AV710) ALSA asound.state for Wolfson DAC
New Posts  All Forums:Forum Nav:

Chaintech AV-710 (AV710) ALSA asound.state for Wolfson DAC

post #1 of 10
Thread Starter 
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:
Unknown hardware: "ICE1724" "ICEnsemble VT1616i" "AC97a:49434552" "0x1412" "0x1724"
Hardware is initialized using a guess method
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:
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'
}
}
You'll notice that the following channels are muted and have the volume set to 0:
  • Front
  • Center
  • LFE
  • Surround
  • Headphone
  • PC Speaker
  • Master Mono
  • Phone
  • Mic
  • Line
  • CD
  • Video
  • Aux
  • 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
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
post #3 of 10
Thread Starter 
I figured this would be useful to others. I'm glad I could help!
post #4 of 10

I get this:

 

 

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)
 
:/
 
post #5 of 10
Thread Starter 

I guess I'm going to have to figure this out again.  Sigh.

This card is really not worth all this headache every few months when some update in ALSA breaks it.

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?

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.

post #8 of 10
Thread Starter 
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.
post #9 of 10
Thread Starter 

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
    }
}
 

post #10 of 10
Thread Starter 

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.

 

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
}
}
}

 

New Posts  All Forums:Forum Nav:
  Return Home
  Back to Forum: Computer Audio
Head-Fi.org › Forums › Equipment Forums › Computer Audio › Chaintech AV-710 (AV710) ALSA asound.state for Wolfson DAC