Topic: Working .asoundrc for RME 9632
After some experiments and reading a lot of documentation I have a working LINUX ALSA .asoundrc for the RME Hammerfall DSP 9632. It allows to simultaneously playback several sounds, to simultaneously record from several channels and to do a simultaneous capture and playback. Since I didn't find a .asoundrc which provides these functionality anywhere, I thought it could be could helpful to publish it here.
If you have any idea to improve it in these aspects
- number of offered channels for recording in audacity goes up to 128
- it's not possible to adjust the recording gain in audacity
- any feature I have overlooked
please contact me or write a comment to this post.
(Linux kernel 2.6.35.7, ALSA 1.0.23, 9632 Firmware 152, my own distribution)
Kind regards!
#
# RME 9632
#
# aplay -D plughw:DSP -> "Out 1" & "Out 2"
# aplay -D RME-0506 -> "Out 5" & "Out 6"
# aplay -D RME-1112 -> "Out 11" & "Out 12"
# arecord -D RME-0910 <- "In 9" & "In 10" (SPDIF)
# If you only have one sound for playback at a time, it works this simple way
# pcm_slave.rme0-44 {
# pcm {
# type hw
# card "DSP" # <card #> or string from /proc/asound/cards
# }
# format "S32_LE" # default nearest
# rate 44100 # default nearest or "unchanged"
# channels 12 # default nearest or "unchanged"
# }
#
# pcm.RME-pb0102 { # playback to "Out 1" & "Out 2"
# type plug
# slave rme0-44
# ttable.0.0 1
# ttable.1.1 1
# }
#
# pcm.RME-pb0304 { # playback to "Out 3" & "Out 4"
# type plug
# slave rme0-44
# ttable.0.2 1
# ttable.1.3 1
# }
#
# ...
#
# But for simultaneous playback of serveral sounds it gets more complicated.
# You have to use the 'dmix' plugin for playback and the 'dsnoop' plugin
# for capturing.
# playback pcm definition
pcm.RMEpb {
type dmix
slave {
pcm {
type hw
card "DSP" # <card #> or string from /proc/asound/cards
}
format "S32_LE" # default nearest
rate 44100 # default nearest or "unchanged"
channels 12 # default nearest or "unchanged", required for RME9632
buffer_size 2048
period_size 1024
}
ipc_key 16258
ipc_key_add_uid TRUE
ipc_gid {
@func refer
name defaults.pcm.ipc_gid
}
ipc_perm {
@func refer
name defaults.pcm.ipc_perm
}
}
# capture pcm definition
pcm.RMEcap {
type dsnoop
slave {
pcm {
type hw
card "DSP" # <card #> or string from /proc/asound/cards
}
format "S32_LE" # default nearest
rate 44100 # default nearest or "unchanged"
channels 12 # default nearest or "unchanged", required for RME9632
buffer_size 2048
period_size 1024
}
ipc_key 16260
ipc_key_add_uid TRUE
ipc_gid {
@func refer
name defaults.pcm.ipc_gid
}
ipc_perm {
@func refer
name defaults.pcm.ipc_perm
}
}
# And for simultaneous playback and recording, the 'asym' plugin is used
pcm.RMEasym {
type asym
playback.pcm "RMEpb"
capture.pcm "RMEcap"
}
# one definition for each stereo channel
pcm.RME-0102 {
type plug
slave.pcm "RMEasym"
ttable.0.0 1
ttable.1.1 1
}
pcm.RME-0304 {
type plug
slave.pcm "RMEasym"
ttable.0.2 1
ttable.1.3 1
}
pcm.RME-0506 {
type plug
slave.pcm "RMEasym"
ttable.0.4 1
ttable.1.5 1
}
pcm.RME-0708 {
type plug
slave.pcm "RMEasym"
ttable.0.6 1
ttable.1.7 1
}
pcm.RME-0910 {
type plug
slave.pcm "RMEasym"
ttable.0.8 1
ttable.1.9 1
}
pcm.RME-1112 {
type plug
slave.pcm "RMEasym"
ttable.0.10 1
ttable.1.11 1
}