[PlanetCCRMA] Hammerfall HDSP 9652 Configuration Issues

Sebastian Doeweling lists@inshadows.de
Wed Oct 13 08:27:04 2004


Hello,

as a starting point for my diploma thesis I'm trying to configure a 
Hammerfall HDSP 9652 Soundcard. Yet I don't have to much knowledge about 
  professional audio.
I sticked to what I found on google and here on Planet CCRMA for 
configuration and some things worked out fine. Still I have some issues 
I cannot resolve.
For example alsamixer still shows "no mixer elements". I experimented a 
bit with "jack" and there too I have some things not working as I 
expected. For example jack comes up fine, if I have a sample rate below 
48,100 Hz, but doesn't start if I go higher.

I append a bunch of data which I hope will be useful. Maybe someone has 
got an idea where I'm doing wrong.

Best,
Sebastian


JACK output:



[root@brage root]# jackd -d alsa -d hw:0 -r 192000 -H -D
jackd 0.99.0
Copyright 2001-2003 Paul Davis and others.
jackd comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details

loading driver ..
apparent rate = 192000
creating alsa driver ... hw:0|hw:0|1024|2|192000|0|0|hwmon|swmeter|-|32bit
control device hw:0
configuring for 192000Hz, period = 1024 frames, buffer = 2 periods
ALSA lib pcm_hw.c:324:(snd_pcm_hw_hw_params) SNDRV_PCM_IOCTL_HW_PARAMS 
failed: Device or resource busy
ALSA: cannot set hardware parameters for capture
ALSA: cannot configure capture channel
cannot load driver module alsa
[root@brage root]# jackd -d alsa -d hw:0 -r 44100 -H -D
jackd 0.99.0
Copyright 2001-2003 Paul Davis and others.
jackd comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details

loading driver ..
apparent rate = 44100
creating alsa driver ... hw:0|hw:0|1024|2|44100|0|0|hwmon|swmeter|-|32bit
control device hw:0
configuring for 44100Hz, period = 1024 frames, buffer = 2 periods




My alsa.conf-file:

#
#  ALSA library configuration file
#

# pre-load the configuration files

@hooks [
	{
		func load
		files [
			"/etc/asound.conf"
			"~/.asoundrc"
		]
		errors false
	}
]

# load card-specific configuration files (on request)

cards.@hooks [
	{
		func load
		files [
			{
				@func concat
				strings [
					{ @func datadir }
					"/cards/aliases.conf"
				]
			}
		]
	}
	{
		func load_for_all_cards
		files [
			{
				@func concat
				strings [
					{ @func datadir }
					"/cards/"
					{ @func private_string }
					".conf"
				]
			}
		]
		errors false
	}
]

# defaults

defaults.ctl.card 0
defaults.pcm.card 0
defaults.pcm.device 0
defaults.pcm.subdevice -1
defaults.pcm.front.card defaults.pcm.card
defaults.pcm.front.device defaults.pcm.device
defaults.pcm.rear.card defaults.pcm.card
defaults.pcm.rear.device defaults.pcm.device
defaults.pcm.center_lfe.card defaults.pcm.card
defaults.pcm.center_lfe.device defaults.pcm.device
defaults.pcm.surround40.card defaults.pcm.card
defaults.pcm.surround40.device defaults.pcm.device
defaults.pcm.surround41.card defaults.pcm.card
defaults.pcm.surround41.device defaults.pcm.device
defaults.pcm.surround50.card defaults.pcm.card
defaults.pcm.surround50.device defaults.pcm.device
defaults.pcm.surround51.card defaults.pcm.card
defaults.pcm.surround51.device defaults.pcm.device
defaults.pcm.iec958.card defaults.pcm.card
defaults.pcm.iec958.device defaults.pcm.device
defaults.rawmidi.card 0
defaults.rawmidi.device 0
defaults.rawmidi.subdevice -1
defaults.hwdep.card 0
defaults.hwdep.device 0
defaults.timer.class 2
defaults.timer.sclass 0
defaults.timer.card 0
defaults.timer.device 0
defaults.timer.subdevice 0

#
#  PCM interface
#

pcm.hw {
	@args [ CARD DEV SUBDEV ]
	@args.CARD {
		type string
		default {
			@func getenv
			vars [
				ALSA_PCM_CARD
				ALSA_CARD
			]
			default {
				@func refer
				name defaults.pcm.card
			}
		}
	}
	@args.DEV {
		type integer
		default {
			@func igetenv
			vars [
				ALSA_PCM_DEVICE
			]
			default {
				@func refer
				name defaults.pcm.device
			}
		}
	}
	@args.SUBDEV {
		type integer
		default {
			@func refer
			name defaults.pcm.subdevice
		}
	}		
	type hw
	card $CARD
	device $DEV
	subdevice $SUBDEV
}

pcm.plughw {
	@args [ CARD DEV SUBDEV ]
	@args.CARD {
		type string
		default {
			@func getenv
			vars [
				ALSA_PCM_CARD
				ALSA_CARD
			]
			default {
				@func refer
				name defaults.pcm.card
			}
		}
	}
	@args.DEV {
		type integer
		default {
			@func igetenv
			vars [
				ALSA_PCM_DEVICE
			]
			default {
				@func refer
				name defaults.pcm.device
			}
		}
	}
	@args.SUBDEV {
		type integer
		default {
			@func refer
			name defaults.pcm.subdevice
		}
	}		
	type plug
	slave.pcm {
		type hw
		card $CARD
		device $DEV
		subdevice $SUBDEV
	}
}

pcm.plug {
	@args [ SLAVE ]
	@args.SLAVE {
		type string
	}
	type plug
	slave.pcm $SLAVE
}

pcm.dmix {
	@args [ SLAVE FORMAT RATE ]
	@args.SLAVE {
		type string
		default "hw:0,0"
	}
	@args.FORMAT {
		type string
		default S16_LE
	}
	@args.RATE {
		type integer
		default 48000
	}
	type dmix
	ipc_key 5678293
	ipc_key_add_uid yes
	slave {
		pcm $SLAVE
		format $FORMAT
		rate $RATE
	}
}

pcm.dsnoop {
	@args [ SLAVE FORMAT RATE ]
	@args.SLAVE {
		type string
		default "hw:0,0"
	}
	@args.FORMAT {
		type string
		default S16_LE
	}
	@args.RATE {
		type integer
		default 48000
	}
	type dsnoop
	ipc_key 5778293
	ipc_key_add_uid yes
	slave {
		pcm $SLAVE
		format $FORMAT
		rate $RATE
	}
}

pcm.shm {
	@args [ SOCKET PCM ]
	@args.SOCKET {
		type string
	}
	@args.PCM {
		type string
	}
	type shm
	server $SOCKET
	pcm $PCM
}

pcm.tee {
	@args [ SLAVE FILE FORMAT ]
	@args.SLAVE {
		type string
	}
	@args.FILE {
		type string
	}
	@args.FORMAT {
		type string
		default raw
	}
	type file
	slave.pcm $SLAVE
	file $FILE
	format $FORMAT
}

pcm.file {
	@args [ FILE FORMAT ]
	@args.FILE {
		type string
	}
	@args.FORMAT {
		type string
		default raw
	}
	type file
	slave.pcm null
	file $FILE
	format $FORMAT
}

pcm.null {
	type null
}

pcm.default {
	type plug
	slave.pcm {
		type hw
		card {
			@func getenv
			vars [
				ALSA_PCM_CARD
				ALSA_CARD
			]
			default {
				@func refer
				name defaults.pcm.card
			}
		}
		device {
			@func igetenv
			vars [
				ALSA_PCM_DEVICE
			]
			default {
				@func refer
				name defaults.pcm.device
			}
		}
		subdevice {
			@func refer
			name defaults.pcm.subdevice
		}
	}
}

# redirect to load-on-demand extended pcm definitions
pcm.cards cards.pcm
# some links for easy use
pcm.front cards.pcm.front
pcm.rear cards.pcm.rear
pcm.center_lfe cards.pcm.center_lfe
pcm.surround40 cards.pcm.surround40
pcm.surround41 cards.pcm.surround41
pcm.surround50 cards.pcm.surround50
pcm.surround51 cards.pcm.surround51
pcm.iec958 cards.pcm.iec958
pcm.spdif cards.pcm.iec958

#
#  Control interface
#
	
ctl.hw {
	@args[ CARD ]
	@args.CARD {
		type string
		default {
			@func getenv
			vars [
				ALSA_CTL_CARD
				ALSA_CARD
			]
			default {
				@func refer
				name defaults.ctl.card
			}
		}
	}
	type hw
	card $CARD
}

ctl.shm {
	@args [ SOCKET CTL ]
	@args.SOCKET {
		type string
	}
	@args.CTL {
		type string
	}
	type shm
	server $SOCKET
	ctl $CTL
}

ctl.default {
	type hw
	card {
		@func getenv
		vars [
			ALSA_CTL_CARD
			ALSA_CARD
		]
		default {
			@func refer
			name defaults.ctl.card
		}
	}
}

#
#  RawMidi interface
#

rawmidi.hw {
	@args [ CARD DEV SUBDEV ]
	@args.CARD {
		type string
		default {
			@func getenv
			vars [
				ALSA_RAWMIDI_CARD
				ALSA_CARD
			]
			default {
				@func refer
				name defaults.rawmidi.card
			}
		}
	}
	@args.DEV {
		type integer
		default {
			@func igetenv
			vars [
				ALSA_RAWMIDI_DEVICE
			]
			default {
				@func refer
				name defaults.rawmidi.device
			}
		}
	}
	@args.SUBDEV {
		type integer
		default -1
	}
	type hw
	card $CARD
	device $DEV
	subdevice $SUBDEV
}

rawmidi.default {
	type hw
	card {
		@func getenv
		vars [
			ALSA_RAWMIDI_CARD
			ALSA_CARD
		]
		default {
			@func refer
			name defaults.rawmidi.card
		}
	}
	device {
		@func igetenv
		vars [
			ALSA_RAWMIDI_DEVICE
		]
		default {
			@func refer
			name defaults.rawmidi.device
		}
	}
}

rawmidi.virtual {
	@args [ MERGE ]
	@args.MERGE {
		type string
		default 1
	}
	type virtual
	merge $MERGE
}

#
#  Sequencer interface
#

seq.default {
	type hw
}

seq.hw {
	type hw
}

#
#  HwDep interface
#

hwdep.hw {
	@args [ CARD DEV ]
	@args.CARD {
		type string
		default {
			@func getenv
			vars [
				ALSA_HWDEP_CARD
				ALSA_CARD
			]
			default {
				@func refer
				name defaults.hwdep.card
			}
		}
	}
	@args.DEV {
		type integer
		default {
			@func igetenv
			vars [
				ALSA_HWDEP_DEVICE
			]
			default {
				@func refer
				name defaults.hwdep.device
			}
		}
	}
	type hw
	card $CARD
	device $DEV
}

hwdep.default {
	type hw
	card {
		@func getenv
		vars [
			ALSA_HWDEP_CARD
			ALSA_CARD
		]
		default {
			@func refer
			name defaults.hwdep.card
		}
	}
	device {
		@func igetenv
		vars [
			ALSA_HWDEP_DEVICE
		]
		default {
			@func refer
			name defaults.hwdep.device
		}
	}
}

#
#  Timer interface
#

timer_query.hw {
	type hw
}

timer_query.default {
	type hw
}

timer.hw {
	@args [ CLASS SCLASS CARD DEV SUBDEV ]
	@args.CLASS {
		type integer
		default {
			@func refer
			name defaults.timer.class
		}
	}
	@args.SCLASS {
		type integer
		default {
			@func refer
			name defaults.timer.sclass
		}
	}
	@args.CARD {
		type string
		default {
			@func refer
			name defaults.timer.card
		}
	}
	@args.DEV {
		type integer
		default {
			@func refer
			name defaults.timer.device
		}
	}
	@args.SUBDEV {
		type integer
		default {
			@func refer
			name defaults.timer.subdevice
		}
	}
	type hw
	class $CLASS
	sclass $SCLASS
	card $CARD
	device $DEV
	subdevice $SUBDEV
}

timer.default {
	type hw
	class {
		@func refer
		name defaults.timer.class
	}
	sclass {
		@func refer
		name defaults.timer.sclass
	}
	card {
		@func refer
		name defaults.timer.card
	}
	device {
		@func refer
		name defaults.timer.device
	}
	subdevice {
		@func refer
		name defaults.timer.subdevice
	}
}





My .asoundrc:


#
#  ALSA library configuration file
#

# pre-load the configuration files

@hooks [
	{
		func load
		files [
			"/etc/asound.conf"
			"~/.asoundrc"
		]
		errors false
	}
]

# load card-specific configuration files (on request)

cards.@hooks [
	{
		func load
		files [
			{
				@func concat
				strings [
					{ @func datadir }
					"/cards/aliases.conf"
				]
			}
		]
	}
	{
		func load_for_all_cards
		files [
			{
				@func concat
				strings [
					{ @func datadir }
					"/cards/"
					{ @func private_string }
					".conf"
				]
			}
		]
		errors false
	}
]

# defaults

defaults.ctl.card 0
defaults.pcm.card 0
defaults.pcm.device 0
defaults.pcm.subdevice -1
defaults.pcm.front.card defaults.pcm.card
defaults.pcm.front.device defaults.pcm.device
defaults.pcm.rear.card defaults.pcm.card
defaults.pcm.rear.device defaults.pcm.device
defaults.pcm.center_lfe.card defaults.pcm.card
defaults.pcm.center_lfe.device defaults.pcm.device
defaults.pcm.surround40.card defaults.pcm.card
defaults.pcm.surround40.device defaults.pcm.device
defaults.pcm.surround41.card defaults.pcm.card
defaults.pcm.surround41.device defaults.pcm.device
defaults.pcm.surround50.card defaults.pcm.card
defaults.pcm.surround50.device defaults.pcm.device
defaults.pcm.surround51.card defaults.pcm.card
defaults.pcm.surround51.device defaults.pcm.device
defaults.pcm.iec958.card defaults.pcm.card
defaults.pcm.iec958.device defaults.pcm.device
defaults.rawmidi.card 0
defaults.rawmidi.device 0
defaults.rawmidi.subdevice -1
defaults.hwdep.card 0
defaults.hwdep.device 0
defaults.timer.class 2
defaults.timer.sclass 0
defaults.timer.card 0
defaults.timer.device 0
defaults.timer.subdevice 0

#
#  PCM interface
#

pcm.hw {
	@args [ CARD DEV SUBDEV ]
	@args.CARD {
		type string
		default {
			@func getenv
			vars [
				ALSA_PCM_CARD
				ALSA_CARD
			]
			default {
				@func refer
				name defaults.pcm.card
			}
		}
	}
	@args.DEV {
		type integer
		default {
			@func igetenv
			vars [
				ALSA_PCM_DEVICE
			]
			default {
				@func refer
				name defaults.pcm.device
			}
		}
	}
	@args.SUBDEV {
		type integer
		default {
			@func refer
			name defaults.pcm.subdevice
		}
	}		
	type hw
	card $CARD
	device $DEV
	subdevice $SUBDEV
}

pcm.plughw {
	@args [ CARD DEV SUBDEV ]
	@args.CARD {
		type string
		default {
			@func getenv
			vars [
				ALSA_PCM_CARD
				ALSA_CARD
			]
			default {
				@func refer
				name defaults.pcm.card
			}
		}
	}
	@args.DEV {
		type integer
		default {
			@func igetenv
			vars [
				ALSA_PCM_DEVICE
			]
			default {
				@func refer
				name defaults.pcm.device
			}
		}
	}
	@args.SUBDEV {
		type integer
		default {
			@func refer
			name defaults.pcm.subdevice
		}
	}		
	type plug
	slave.pcm {
		type hw
		card $CARD
		device $DEV
		subdevice $SUBDEV
	}
}

pcm.plug {
	@args [ SLAVE ]
	@args.SLAVE {
		type string
	}
	type plug
	slave.pcm $SLAVE
}

pcm.dmix {
	@args [ SLAVE FORMAT RATE ]
	@args.SLAVE {
		type string
		default "hw:0,0"
	}
	@args.FORMAT {
		type string
		default S16_LE
	}
	@args.RATE {
		type integer
		default 48000
	}
	type dmix
	ipc_key 5678293
	ipc_key_add_uid yes
	slave {
		pcm $SLAVE
		format $FORMAT
		rate $RATE
	}
}

pcm.dsnoop {
	@args [ SLAVE FORMAT RATE ]
	@args.SLAVE {
		type string
		default "hw:0,0"
	}
	@args.FORMAT {
		type string
		default S16_LE
	}
	@args.RATE {
		type integer
		default 48000
	}
	type dsnoop
	ipc_key 5778293
	ipc_key_add_uid yes
	slave {
		pcm $SLAVE
		format $FORMAT
		rate $RATE
	}
}

pcm.shm {
	@args [ SOCKET PCM ]
	@args.SOCKET {
		type string
	}
	@args.PCM {
		type string
	}
	type shm
	server $SOCKET
	pcm $PCM
}

pcm.tee {
	@args [ SLAVE FILE FORMAT ]
	@args.SLAVE {
		type string
	}
	@args.FILE {
		type string
	}
	@args.FORMAT {
		type string
		default raw
	}
	type file
	slave.pcm $SLAVE
	file $FILE
	format $FORMAT
}

pcm.file {
	@args [ FILE FORMAT ]
	@args.FILE {
		type string
	}
	@args.FORMAT {
		type string
		default raw
	}
	type file
	slave.pcm null
	file $FILE
	format $FORMAT
}

pcm.null {
	type null
}

pcm.default {
	type plug
	slave.pcm {
		type hw
		card {
			@func getenv
			vars [
				ALSA_PCM_CARD
				ALSA_CARD
			]
			default {
				@func refer
				name defaults.pcm.card
			}
		}
		device {
			@func igetenv
			vars [
				ALSA_PCM_DEVICE
			]
			default {
				@func refer
				name defaults.pcm.device
			}
		}
		subdevice {
			@func refer
			name defaults.pcm.subdevice
		}
	}
}

# redirect to load-on-demand extended pcm definitions
pcm.cards cards.pcm
# some links for easy use
pcm.front cards.pcm.front
pcm.rear cards.pcm.rear
pcm.center_lfe cards.pcm.center_lfe
pcm.surround40 cards.pcm.surround40
pcm.surround41 cards.pcm.surround41
pcm.surround50 cards.pcm.surround50
pcm.surround51 cards.pcm.surround51
pcm.iec958 cards.pcm.iec958
pcm.spdif cards.pcm.iec958

#
#  Control interface
#
	
ctl.hw {
	@args[ CARD ]
	@args.CARD {
		type string
		default {
			@func getenv
			vars [
				ALSA_CTL_CARD
				ALSA_CARD
			]
			default {
				@func refer
				name defaults.ctl.card
			}
		}
	}
	type hw
	card $CARD
}

ctl.shm {
	@args [ SOCKET CTL ]
	@args.SOCKET {
		type string
	}
	@args.CTL {
		type string
	}
	type shm
	server $SOCKET
	ctl $CTL
}

ctl.default {
	type hw
	card {
		@func getenv
		vars [
			ALSA_CTL_CARD
			ALSA_CARD
		]
		default {
			@func refer
			name defaults.ctl.card
		}
	}
}

#
#  RawMidi interface
#

rawmidi.hw {
	@args [ CARD DEV SUBDEV ]
	@args.CARD {
		type string
		default {
			@func getenv
			vars [
				ALSA_RAWMIDI_CARD
				ALSA_CARD
			]
			default {
				@func refer
				name defaults.rawmidi.card
			}
		}
	}
	@args.DEV {
		type integer
		default {
			@func igetenv
			vars [
				ALSA_RAWMIDI_DEVICE
			]
			default {
				@func refer
				name defaults.rawmidi.device
			}
		}
	}
	@args.SUBDEV {
		type integer
		default -1
	}
	type hw
	card $CARD
	device $DEV
	subdevice $SUBDEV
}

rawmidi.default {
	type hw
	card {
		@func getenv
		vars [
			ALSA_RAWMIDI_CARD
			ALSA_CARD
		]
		default {
			@func refer
			name defaults.rawmidi.card
		}
	}
	device {
		@func igetenv
		vars [
			ALSA_RAWMIDI_DEVICE
		]
		default {
			@func refer
			name defaults.rawmidi.device
		}
	}
}

rawmidi.virtual {
	@args [ MERGE ]
	@args.MERGE {
		type string
		default 1
	}
	type virtual
	merge $MERGE
}

#
#  Sequencer interface
#

seq.default {
	type hw
}

seq.hw {
	type hw
}

#
#  HwDep interface
#

hwdep.hw {
	@args [ CARD DEV ]
	@args.CARD {
		type string
		default {
			@func getenv
			vars [
				ALSA_HWDEP_CARD
				ALSA_CARD
			]
			default {
				@func refer
				name defaults.hwdep.card
			}
		}
	}
	@args.DEV {
		type integer
		default {
			@func igetenv
			vars [
				ALSA_HWDEP_DEVICE
			]
			default {
				@func refer
				name defaults.hwdep.device
			}
		}
	}
	type hw
	card $CARD
	device $DEV
}

hwdep.default {
	type hw
	card {
		@func getenv
		vars [
			ALSA_HWDEP_CARD
			ALSA_CARD
		]
		default {
			@func refer
			name defaults.hwdep.card
		}
	}
	device {
		@func igetenv
		vars [
			ALSA_HWDEP_DEVICE
		]
		default {
			@func refer
			name defaults.hwdep.device
		}
	}
}

#
#  Timer interface
#

timer_query.hw {
	type hw
}

timer_query.default {
	type hw
}

timer.hw {
	@args [ CLASS SCLASS CARD DEV SUBDEV ]
	@args.CLASS {
		type integer
		default {
			@func refer
			name defaults.timer.class
		}
	}
	@args.SCLASS {
		type integer
		default {
			@func refer
			name defaults.timer.sclass
		}
	}
	@args.CARD {
		type string
		default {
			@func refer
			name defaults.timer.card
		}
	}
	@args.DEV {
		type integer
		default {
			@func refer
			name defaults.timer.device
		}
	}
	@args.SUBDEV {
		type integer
		default {
			@func refer
			name defaults.timer.subdevice
		}
	}
	type hw
	class $CLASS
	sclass $SCLASS
	card $CARD
	device $DEV
	subdevice $SUBDEV
}

timer.default {
	type hw
	class {
		@func refer
		name defaults.timer.class
	}
	sclass {
		@func refer
		name defaults.timer.sclass
	}
	card {
		@func refer
		name defaults.timer.card
	}
	device {
		@func refer
		name defaults.timer.device
	}
	subdevice {
		@func refer
		name defaults.timer.subdevice
	}
}



Output of amixer controls:


numid=23,iface=HWDEP,name='ADAT Lock Status',index=1
numid=24,iface=HWDEP,name='ADAT Lock Status',index=2
numid=25,iface=HWDEP,name='ADAT Lock Status',index=3
numid=20,iface=HWDEP,name='ADAT Sync Lock Status'
numid=26,iface=HWDEP,name='Analog Extension Board'
numid=14,iface=HWDEP,name='AutoSync Reference'
numid=9,iface=HWDEP,name='IEC958 Emphasis Bit'
numid=10,iface=HWDEP,name='IEC958 Non-audio Bit'
numid=7,iface=HWDEP,name='IEC958 Output also on ADAT1'
numid=8,iface=HWDEP,name='IEC958 Professional Bit'
numid=22,iface=HWDEP,name='Line Out'
numid=5,iface=HWDEP,name='Mixer'
numid=21,iface=HWDEP,name='Passthru'
numid=13,iface=HWDEP,name='Preferred Sync Reference'
numid=19,iface=HWDEP,name='SPDIF Lock Status'
numid=15,iface=HWDEP,name='SPDIF Sample Rate'
numid=12,iface=HWDEP,name='System Clock Mode'
numid=16,iface=HWDEP,name='System Sample Rate'
numid=18,iface=HWDEP,name='Word Clock Lock Status'
numid=3,iface=MIXER,name='IEC958 Playback Con Mask'
numid=4,iface=MIXER,name='IEC958 Playback Pro Mask'
numid=17,iface=PCM,name='External Rate'
numid=6,iface=PCM,name='IEC958 Input Connector'
numid=1,iface=PCM,name='IEC958 Playback Default'
numid=2,iface=PCM,name='IEC958 Playback PCM Stream'
numid=11,iface=PCM,name='Sample Clock Source'



Output of amixer contents:


numid=23,iface=HWDEP,name='ADAT Lock Status',index=1
   ; type=ENUMERATED,access=r----,values=1,items=3
   ; Item #0 'No Lock'
   ; Item #1 'Lock'
   ; Item #2 'Sync'
   : values=0
numid=24,iface=HWDEP,name='ADAT Lock Status',index=2
   ; type=ENUMERATED,access=r----,values=1,items=3
   ; Item #0 'No Lock'
   ; Item #1 'Lock'
   ; Item #2 'Sync'
   : values=0
numid=25,iface=HWDEP,name='ADAT Lock Status',index=3
   ; type=ENUMERATED,access=r----,values=1,items=3
   ; Item #0 'No Lock'
   ; Item #1 'Lock'
   ; Item #2 'Sync'
   : values=0
numid=20,iface=HWDEP,name='ADAT Sync Lock Status'
   ; type=ENUMERATED,access=r----,values=1,items=3
   ; Item #0 'No Lock'
   ; Item #1 'Lock'
   ; Item #2 'Sync'
   : values=0
numid=26,iface=HWDEP,name='Analog Extension Board'
   ; type=BOOLEAN,access=rw---,values=1
   : values=off
numid=14,iface=HWDEP,name='AutoSync Reference'
   ; type=ENUMERATED,access=r----,values=1,items=7
   ; Item #0 'Word'
   ; Item #1 'ADAT Sync'
   ; Item #2 'IEC958'
   ; Item #3 'None'
   ; Item #4 'ADAT1'
   ; Item #5 'ADAT2'
   ; Item #6 'ADAT3'
   : values=2
numid=9,iface=HWDEP,name='IEC958 Emphasis Bit'
   ; type=BOOLEAN,access=rw---,values=1
   : values=off
numid=10,iface=HWDEP,name='IEC958 Non-audio Bit'
   ; type=BOOLEAN,access=rw---,values=1
   : values=off
numid=7,iface=HWDEP,name='IEC958 Output also on ADAT1'
   ; type=BOOLEAN,access=rw---,values=1
   : values=off
numid=8,iface=HWDEP,name='IEC958 Professional Bit'
   ; type=BOOLEAN,access=rw---,values=1
   : values=off
numid=22,iface=HWDEP,name='Line Out'
   ; type=BOOLEAN,access=rw---,values=1
   : values=on
numid=5,iface=HWDEP,name='Mixer'
   ; type=INTEGER,access=rw---,values=3,min=0,max=65536,step=1
   : values=0,0,0
numid=21,iface=HWDEP,name='Passthru'
   ; type=BOOLEAN,access=rw---,values=1
   : values=off
numid=13,iface=HWDEP,name='Preferred Sync Reference'
   ; type=ENUMERATED,access=rw---,values=1,items=6
   ; Item #0 'Word'
   ; Item #1 'IEC958'
   ; Item #2 'ADAT1'
   ; Item #3 'ADAT Sync'
   ; Item #4 'ADAT2'
   ; Item #5 'ADAT3'
   : values=2
numid=19,iface=HWDEP,name='SPDIF Lock Status'
   ; type=ENUMERATED,access=r----,values=1,items=3
   ; Item #0 'No Lock'
   ; Item #1 'Lock'
   ; Item #2 'Sync'
   : values=0
numid=15,iface=HWDEP,name='SPDIF Sample Rate'
   ; type=ENUMERATED,access=r----,values=1,items=7
   ; Item #0 '32000'
   ; Item #1 '44100'
   ; Item #2 '48000'
   ; Item #3 '64000'
   ; Item #4 '88200'
   ; Item #5 '96000'
   ; Item #6 'None'
   : values=6
numid=12,iface=HWDEP,name='System Clock Mode'
   ; type=ENUMERATED,access=r----,values=1,items=2
   ; Item #0 'Master'
   ; Item #1 'Slave'
   : values=0
numid=16,iface=HWDEP,name='System Sample Rate'
   ; type=INTEGER,access=r----,values=1,min=0,max=0,step=0
   : values=44100
numid=18,iface=HWDEP,name='Word Clock Lock Status'
   ; type=ENUMERATED,access=r----,values=1,items=3
   ; Item #0 'No Lock'
   ; Item #1 'Lock'
   ; Item #2 'Sync'
   : values=0
numid=3,iface=MIXER,name='IEC958 Playback Con Mask'
   ; type=IEC958,access=r----,values=1
   : values=?
numid=4,iface=MIXER,name='IEC958 Playback Pro Mask'
   ; type=IEC958,access=r----,values=1
   : values=?
numid=17,iface=PCM,name='External Rate'
   ; type=ENUMERATED,access=r----,values=1,items=7
   ; Item #0 '32000'
   ; Item #1 '44100'
   ; Item #2 '48000'
   ; Item #3 '64000'
   ; Item #4 '88200'
   ; Item #5 '96000'
   ; Item #6 'None'
   : values=6
numid=6,iface=PCM,name='IEC958 Input Connector'
   ; type=ENUMERATED,access=rw---,values=1,items=3
   ; Item #0 'Optical'
   ; Item #1 'Coaxial'
   ; Item #2 'Internal'
   : values=1
numid=1,iface=PCM,name='IEC958 Playback Default'
   ; type=IEC958,access=rw---,values=1
   : values=?
numid=2,iface=PCM,name='IEC958 Playback PCM Stream'
   ; type=IEC958,access=rw---,values=1
   : values=?
numid=11,iface=PCM,name='Sample Clock Source'
   ; type=ENUMERATED,access=rw---,values=1,items=7
   ; Item #0 'AutoSync'
   ; Item #1 'Internal 32.0 kHz'
   ; Item #2 'Internal 44.1 kHz'
   ; Item #3 'Internal 48.0 kHz'
   ; Item #4 'Internal 64.0 kHz'
   ; Item #5 'Internal 88.2 kHz'
   ; Item #6 'Internal 96.0 kHz'
   : values=2