You are not logged in.

#1 2015-05-01 23:44:04

Disco Dave
Member
Registered: 2014-12-31
Posts: 92

Trouble getting audio to work with HDMI Radeon HD 8550G and ALSA

I am using the proprietary driver for Radeon HD 8550G.  The HDMI is able to display the visuals just fine on my tv, however the audio isn't working. The audio instead always plays through my laptop speakers. Here our my relevant files,

[disco@discolap ~]$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Generic [HD-Audio Generic], device 0: ALC3227 Analog [ALC3227 Analog]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 1: HDMI [HDA ATI HDMI], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
[disco@discolap ~]$ cat .asoundrc
pcm.hdmi_hw {
  type hw
  card 1     # <--- card number
  device 3   # <--- device number
}

pcm.hdmi_complete {
  type softvol
  slave.pcm hdmi_hw 
  control.name hdmi_volume
  control.card 1
}

pcm.!default hdmi_complete 
# Posted at [url]http://dl.dropbox.com/u/18371907/asoundrc[/url]
# Info:  [url]http://www.sabi.co.uk/Notes/linuxSoundALSA.html[/url]
# Soundcard roundup:  [url]http://forums.gentoo.org/viewtopic-p-4192284.html#4192284[/url]

# Show programs currently opening ALSA:
# fuser -fv /dev/snd/* /dev/dsp*

# Show opened settings:
# cat /proc/asound/card0/pcm0p/sub0/hw_params

# Show codec:
# cat /proc/asound/card0/codec#0 | grep Codec
# Codec: Realtek ALC889

# Ignore alsaconf:  [url]http://wiki.debian.org/alsaconf[/url]

# Maybe OSS can be compatible with dmix (aoss, alsa-oss):
# [url]https://bbs.archlinux.org/viewtopic.php?pid=981179#p981179[/url]
# [url]http://alsa.opensrc.org/Dmix[/url]
# [url]http://forums.gentoo.org/viewtopic-t-856668.html[/url]
# [url]http://www.knoppix.net/forum/threads/25372-HowTo-ALSA-Dmix-OSS[/url]

# dmix - plug:dmix supports 1-8 channels, and does use dmix!
# Whereas surround51 doesn't use dmix
# [url]http://bbs.archlinux.org/viewtopic.php?pid=745946#p745946[/url]


# cat /proc/asound/card0/pcm0p/sub0/hw_params

# From [url]https://bugs.launchpad.net/debian/+source/sdl-mixer1.2/+bug/66483[/url]
# Not needed.
#defaults.pcm.dmix_max_periods -1

# Seems reasonable quality, low CPU usage
defaults.pcm.rate_converter "speexrate_medium"

# See /usr/share/alsa/pcm/dmix.conf
#defaults.dmix.period_time 0
#defaults.dmix.periods 4
#defaults.pcm.surround51.device "0"

# softvol: [url]https://bbs.archlinux.org/viewtopic.php?id=126789[/url]

# Duplicate output to 2 audio devices:
# [url]http://forums.gentoo.org/viewtopic-t-902670.html[/url]

# Equalizer:  [url]http://krustev.net/w/articles/Global_equalizer_for_ALSA/[/url]


# From [url]https://bugtrack.alsa-project.org/alsa-bug/view.php?id=1853[/url]
# Posted at [url]http://bbs.archlinux.org/viewtopic.php?id=95582[/url]
# Is a dmix that actually works!
# To prove it, run these commands simultaneously, starting with the first one:
#     speaker-test -c 2 -D default
#     speaker-test -c 6 -D surround51 -t wav
# Reasons why needed:
# [url]https://bbs.archlinux.org/viewtopic.php?pid=1252966#p1252966[/url]
pcm.dmixed {
	type asym
	playback.pcm {
		# See plugin:dmix at [url]http://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html[/url]
		type dmix

		# Don't block other users, e.g. the Timidity midi-player daemon
		# [url]http://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html[/url]
		ipc_key_add_uid true

		ipc_key 5678293
		ipc_perm 0660
		ipc_gid audio

		# Don't put the rate here! Otherwise it resets the rate & channels set below, as shown by:  cat /proc/asound/card0/pcm0p/sub0/hw_params
		slave {
			# 2 for stereo, 6 for surround51, 8 for surround71
			channels 6
			pcm {
				# mplayer chooses S32_LE, but others usually S16_LE
				#format S32_LE
				format S16_LE

				# 44100 or 48000
				# 44100 for music, 48000 is compatible with most h/w
				#rate 44100
				rate 48000

				# [url]http://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html[/url]
				# Maybe helps
				nonblock true

				type hw
				card 0
				device 0
				subdevice 0
			}

			# mplayer2 chooses 1024
			# period_size 512 with buffer_size 16384 stops crackling in xmame
			# 320 breaks flash - [url]https://bbs.archlinux.org/viewtopic.php?id=129458[/url]
			#period_size 512
			period_size 1024
			#period_size 512

			# 4096 might make sound crackle
			# mplayer2 chooses 8192. Half-Life 2 chooses 16384.
			# If too large, use CONFIG_SND_HDA_PREALLOC_SIZE=2048
			buffer_size 8192
		}
	}
	# apulse (a cut-down replacement for pulseaudio) needs dsnoop
	# [url]https://bbs.archlinux.org/viewtopic.php?id=187258[/url]
	capture.pcm "dsnoop"
}



# Playing
#pcm.!default {
#	type asym
#	playback.pcm "upmix_20to51_resample"
#}


# Simple upmixing, from [url]http://forums.bodhilinux.com/index.php?/topic/2493-how-to-51-surround-sound-with-alsa/[/url]
#pcm.!default {
#	type plug
#	slave.pcm "surround51"
#	slave.channels 6
#	route_policy duplicate
#}


# Check that e.g. ut2004 still works, if default is redefined.
# Flash, etc. use this "default" entry.
pcm.!default {
	type plug
	# Would need to always output to all 6 channels, so the dmixer actually works if e.g. 6-channel is attempted to be started, while 2-channel is playing.
	slave.pcm "dmixed"
}


pcm.!surround20 {
	type plug
	slave.pcm "dmixed"
}

pcm.!surround40 {
	type plug
	slave.pcm "dmixed"
}

pcm.!surround51 {
	type plug
	slave.pcm "dmixed"
}


pcm.wine {
	type plug
	# Output directly, for performance
	#slave.pcm "hw:0"
	slave.pcm "surround20"
}


# If get error "Slave PCM not usable", then need to use plug:
# If get error "Cannot find rate converter", then install libsamplerate and alsa-plugins

# Lunar Linux:  lin ladspa-bs2b
# listplugins
# analyseplugin bs2b
pcm.bs2b {
	type ladspa
	path "/usr/lib/ladspa"
	plugins {
		0 {
			id 4221  # Bauer stereophonic-to-binaural (4221/bs2b)
			input {
				controls [ 700 6 ]
			}
		}
	}
	# [url]http://bbs.archlinux.org/viewtopic.php?id=95582[/url]
	slave.pcm "surround20"
}


# [url]http://quitte.de/dsp/caps.html#Narrower[/url]  from caps-plugins
# Alternative to bs2b, for music via headphones
# analyseplugin caps | grep -A14 Narrow
pcm.narrower {
	type ladspa
	path "/usr/lib/ladspa"
	plugins {
		0 {
			id 2595  # Narrower - Stereo image width reduction
			input {
				controls [ 0 0.25 ]
			}
		}
	}
	slave.pcm "surround20"
}


# speaker-test -D headphones -c 2 -t wav
# audacious uses less CPU when running bs2b as a listed plugin, probably because of samplerate_best
# Posted at [url]http://bbs.archlinux.org/viewtopic.php?pid=626573#p626573[/url]
pcm.headphones {
	type rate
	slave {
		pcm "plug:bs2b"
		#pcm "plug:narrower"
		#rate 44100
		rate 48000
	}
	#converter "speexrate_medium"

    hint {
        show on
        description "Headphones"
    }
}


# speaker-test -D ch51dup -c 2 -t wav
pcm.ch51dup {
	slave.pcm "surround51"
	slave.channels 6
	type plug

	# Front and rear
	ttable.0.0 0.5
	ttable.1.1 0.5
	ttable.2.2 0.5
	ttable.3.3 0.5

	# Center and LFE
	ttable.4.4 1
	ttable.5.5 1

	# Front left/right to center
	ttable.0.4 0.5
	ttable.1.4 0.5

	# Front left/right to rear
	ttable.0.2 0.5
	ttable.1.3 0.5
}



# From [url]http://marcansoft.com/blog/2009/06/acer-aspire-8930g-linux-audio-support/[/url]
# To bring all the 8930g speakers into play.
# Works in mplayer but not audacious - weird!
# Have increased the volume, because mplayer is so quiet.
# speaker-test -D stereo8930 -c 2 -t wav
pcm.stereo8930 {
	type plug
	slave.pcm "surround51"
	slave.channels 6

    hint {
        show on
        description "Stereo speakers 8930g"
    }
	ttable.0.0 1.5
	ttable.1.1 1.5
	ttable.0.2 1.5
	ttable.1.3 1.5
	ttable.0.4 0.3
	ttable.1.4 0.3
	ttable.0.5 1.0
	ttable.1.5 1.0
}



# [url]http://alsa.opensrc.org/SurroundSound[/url]
# [url]http://alsa.opensrc.org/Low-pass_filter_for_subwoofer_channel_%28HOWTO%29[/url]
# Lunar:  lin ladspa tap-plugins swh-plugins cmt-plugins libsamplerate
# Fedora:  yum install ladspa ladspa-blop-plugins ladspa-caps-plugins ladspa-cmt-plugins ladspa-swh-plugins ladspa-tap-plugins libsamplerate
# Arch Linux:  pacman -S ladspa blop swh-plugins libsamplerate tap-plugins cmt
# For id 1672 - 4 Pole Low-Pass Filter with Resonance (FCRCIA) (1672/lp4pole_fcrcia_oa), install blop-plugins
# listplugins
# analyseplugin cmt
# [url]http://plugin.org.uk/ladspa-swh/docs/ladspa-swh.html[/url]
# [url]http://forums.gentoo.org/viewtopic-p-4528619.html#4528619[/url]
# speaker-test -D upmix_20to51 -c 2 -t wav
# This is one big & nasty PCM, to stop Skype from querying the individual PCM definitions and then crashing with: Assertion `!snd_interval_empty(i)' failed
pcm.upmix_20to51 {
	# From [url]http://alsa.opensrc.org/Low-pass_filter_for_subwoofer_channel_%28HOWTO%29[/url]
	# Set up a third channel for the subwoofer
	type plug
	slave.channels 3
	ttable {
		0.0     1       # left channel
		1.1     1       # right channel
		0.2     0.5     # mix left and right ...
		1.2     0.5     # ... channel for subwoofer
	}

	slave.pcm {
		# Apply subwoofer filter
		type ladspa

		# Set the path to ladspa, to fix this error:
		# Playback open error: -2,No such file or directory
		path "/usr/lib/ladspa"
		channels 3
		plugins {
			0 {
				id 1098  # Identity (Audio) (1098/identity_audio)
				policy duplicate
				input.bindings.0 "Input"
				output.bindings.0 "Output"
			}

			# From [url]http://alsa.opensrc.org/Low-pass_filter_for_subwoofer_channel_%28HOWTO%29[/url]
			1 {
				id 1672 # 4 Pole Low-Pass Filter with Resonance (FCRCIA) (1672/lp4pole_fcrcia_oa)
				policy none
				input.bindings.2 "Input"
				output.bindings.2 "Output"
				input {
					controls [ 300 2 ]
				}
			}
		}

		slave.pcm {
			# Final mixing of 6-channel output
			type plug
			slave.channels 6
			ttable {
				0.0     1       # front left
				1.1     1       # front right
				0.2     1       # rear left
				1.3     1       # rear right

				# Front left/right to center
				0.4     0.5
				1.4     0.5

				# Subwoofer, more powerful to compensate for bass-removal from other speakers
				2.5     2
			}
			# This next line needs to be "dmixed" rather than e.g. "surround51" - bizarre
			slave.pcm "dmixed"
		}
	}
}



# Channels are wrong way around in Doom3! This fixes them.
# [url]http://www.linuxforen.de/forums/archive/index.php/t-206470.html[/url]
# [url]http://forums.seriouszone.com/showthread.php?t=49869&page=10[/url]
# [url]http://forums.gentoo.org/viewtopic-p-4173170.html#4173170[/url]
# For Audigy 4
# Weird, Doom3 has crappy sound if I add an alsa rate converter.
# Posted at [url]http://ubuntuforums.org/showthread.php?t=1304228[/url]
pcm.doom-surround51 {
	slave.pcm "dmixed"
	slave.channels 6
	type route
	ttable.0.0 1
	ttable.1.1 1
	ttable.2.4 1
	ttable.3.5 1
	ttable.4.2 1
	ttable.5.3 1
}


# Pulseaudio workaround: [url]http://ubuntuforums.org/showthread.php?t=1705760[/url]
pcm.doom3-8930g {
	type plug
	slave.pcm {
		type dmix
		ipc_key 1093  # Must be unique
		ipc_key_add_uid false
		ipc_perm 0660
		slave {
			pcm "hw:0,0"
			rate 44100
			channels 2
			#period_time 0
			# period_size was 1024 - maybe 512 is better to stop clicks - not sure
			period_size 1092
			#buffer_time 0
			# Doom 3 wants buffer_size 8192
			# In ~/.doom3/base/autoexec.cfg
			# And ~/.quake4/q4base/autoexec.cfg
			# seta s_alsa_pcm "doom3-8930g"
			buffer_size 8192
		}
	}
}

# From [url]https://bbs.archlinux.org/viewtopic.php?id=99185[/url]
# And in ~/.mplayer/config:  ao=alsa:device=movie
# Alternative, in ~/.mplayer/config:  af-add=volnorm=2:0.75
# speaker-test -D movie -c 2 -t wav
pcm.movie {
	type plug
	slave.pcm "ladcomp_compressor"
	slave.channels 6
    hint {
        show on
        description "Movie Volume"
    }
}

pcm.ladcomp_compressor {
	type ladspa
	slave.pcm "ladcomp_limiter"
	path "/usr/lib/ladspa"
	plugins [
		{
			label dysonCompress
			input {
				# peak limit, release time, fast ratio, ratio
				controls [0 1 0.5 0.99]
			}
		}
	]
}

pcm.ladcomp_limiter {
	type ladspa
	slave.pcm "plug:movie8930"
	path "/usr/lib/ladspa"
	plugins [
		{
			label fastLookaheadLimiter
			input {
				# InputGain(Db) -20 -> +20 ; Limit (db) -20 -> 0 ; Release time (s) 0.01 -> 2
				# also possible... 20 0 0.8
				# If movie is too quiet, increase the first number.
				controls [ 5 0 0.8  ]
			}
		}
	]
}

pcm.movie8930 {
	type route
	slave.pcm "dmixed"

	ttable.0.0 1.0
	ttable.1.1 1.0
	ttable.2.2 1.0
	ttable.3.3 1.0
	ttable.4.4 1.0
	ttable.0.5 0.6
	ttable.1.5 0.6
	ttable.4.5 0.6
	ttable.5.5 0.8
}


pcm.downmix_51to20 {
	# From [url]http://www.halfgaar.net/surround-sound-in-linux[/url]
	# [url]http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=503839[/url]
	type route
	slave.pcm "surround20"

	# Front and rear, at 33% of original signal strength
	ttable.0.0 0.33
	ttable.1.1 0.33
	ttable.2.0 0.33
	ttable.3.1 0.33

	# Center channel routing (routed to front-left and front-right),
	# 6dB gaindrop (gain half of main channels) per channel
	ttable.4.0 0.16
	ttable.4.1 0.16

	# LFE channel routing (routed to front-left and front-right),
	# 6dB gaindrop (gain half of main channels) per channel
	ttable.5.0 0.16
	ttable.5.1 0.16
}


# [url]http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/PerfectSetup/[/url]
pcm.pulse {
	type pulse
}

ctl.pulse {
	type pulse
}
[disco@discolap ~]$ cat /usr/share/alsa/alsa.conf
#
#  ALSA library configuration file
#

# pre-load the configuration files

@hooks [
	{
		func load
		files [
			{
				@func concat
				strings [
					{ @func datadir }
					"/alsa.conf.d/"
				]
			}
			"/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
#

# show all name hints also for definitions without hint {} section
defaults.namehint.showall off
# show just basic name hints
defaults.namehint.basic on
# show extended name hints
defaults.namehint.extended off
#
defaults.ctl.card 0
defaults.pcm.card 0
defaults.pcm.device 0
defaults.pcm.subdevice -1
defaults.pcm.nonblock 1
defaults.pcm.compat 0
defaults.pcm.minperiodtime 5000		# in us
defaults.pcm.ipc_key 5678293
defaults.pcm.ipc_gid audio
defaults.pcm.ipc_perm 0660
defaults.pcm.dmix.max_periods 0
defaults.pcm.dmix.rate 48000
defaults.pcm.dmix.format "unchanged"
defaults.pcm.dmix.card defaults.pcm.card
defaults.pcm.dmix.device defaults.pcm.device
defaults.pcm.dsnoop.card defaults.pcm.card
defaults.pcm.dsnoop.device defaults.pcm.device
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.side.card defaults.pcm.card
defaults.pcm.side.device defaults.pcm.device
defaults.pcm.surround21.card defaults.pcm.card
defaults.pcm.surround21.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.surround71.card defaults.pcm.card
defaults.pcm.surround71.device defaults.pcm.device
defaults.pcm.iec958.card defaults.pcm.card
defaults.pcm.iec958.device defaults.pcm.device
defaults.pcm.modem.card defaults.pcm.card
defaults.pcm.modem.device defaults.pcm.device
# truncate files via file or tee PCM
defaults.pcm.file_format	"raw"
defaults.pcm.file_truncate	true
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
#

# redirect to load-on-demand extended pcm definitions
pcm.cards cards.pcm

pcm.default cards.pcm.default
pcm.sysdefault cards.pcm.default
pcm.front cards.pcm.front
pcm.rear cards.pcm.rear
pcm.center_lfe cards.pcm.center_lfe
pcm.side cards.pcm.side
pcm.surround21 cards.pcm.surround21
pcm.surround40 cards.pcm.surround40
pcm.surround41 cards.pcm.surround41
pcm.surround50 cards.pcm.surround50
pcm.surround51 cards.pcm.surround51
pcm.surround71 cards.pcm.surround71
pcm.iec958 cards.pcm.iec958
pcm.spdif iec958
pcm.hdmi cards.pcm.hdmi
pcm.dmix cards.pcm.dmix
pcm.dsnoop cards.pcm.dsnoop
pcm.modem cards.pcm.modem
pcm.phoneline cards.pcm.phoneline

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
	hint {
		show {
			@func refer
			name defaults.namehint.extended
		}
		description "Direct hardware device without any conversions"
	}
}

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
	}
	hint {
		show {
			@func refer
			name defaults.namehint.extended
		}
		description "Hardware device with all software conversions"
	}
}

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

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 {
			@func refer
			name defaults.pcm.file_format
		}
	}
	type file
	slave.pcm $SLAVE
	file $FILE
	format $FORMAT
	truncate {
		@func refer
		name defaults.pcm.file_truncate
	}
}

pcm.file {
	@args [ FILE FORMAT ]
	@args.FILE {
		type string
	}
	@args.FORMAT {
		type string
		default {
			@func refer
			name defaults.pcm.file_format
		}
	}
	type file
	slave.pcm null
	file $FILE
	format $FORMAT
	truncate {
		@func refer
		name defaults.pcm.file_truncate
	}
}

pcm.null {
	type null
	hint {
		show {
			@func refer
			name defaults.namehint.basic
		}
		description "Discard all samples (playback) or generate zero samples (capture)"
	}
}

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

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
}

#
#  RawMidi interface
#

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.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
	hint {
		description "Direct rawmidi driver device"
		device $DEV
	}
}

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

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
}

#
#  Timer interface
#

timer_query.default {
	type hw
}

timer_query.hw {
	type hw
}

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
	}
	hint.description "Default direct hardware timer device"
}

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
}
[disco@discolap ~]$ cat /etc/modprobe.d/alsa-base.conf 
options snd_hda_intel enable=1 index=0
options snd_hda_intel index=1
options bt87x index=-2
options cx88_alsa index=-2
options saa7134-alsa index=-2
options snd-atiixp-modem index=-2
options snd-intel8x0m index=-2
options snd-via82xx-modem index=-2
options snd-usb-audio index=-2
options snd-usb-caiaq index=-2
options snd-usb-ua101 index=-2
options snd-usb-us122l index=-2
options snd-usb-usx2y index=-2
options snd-pcsp index=-2
options snd-usb-audio index=-2

I'm sure I've missed files, just let me know and I can post them. Thanks to anyone that can help me.

Offline

Board footer

Powered by FluxBB