From 0ba254cbe36bdac6377c30b59ddfa6fc7c46f0aa Mon Sep 17 00:00:00 2001 From: Bernd Busse Date: Wed, 10 Mar 2021 15:38:28 +0100 Subject: [PATCH] alsa-mixer: add multichannel profile for Tascam Model12 Add new profile for multichannel input and output with the *Tascam Model12* USB interface [1]. The 12 input and 10 output channels aren't detected natively with the default profile. The stereo profile maps channel 1 and 2 to `front-left`/`front-right`. The interface allows to switch the main stereo downmix to channels 1 and 2 via the built-in menu. In the multichannel profile, input channels 1 to 10 are mapped as `aux0` to `aux9`, respectively. The main stereo downmix is then mapped to `front-left`/`front-right` as a more sensible default. Similarly, the output channels 1 to 8 are mapped as `aux0` to `aux7`, respectively. Output channels 9/10 are then mapped to `front-left`/`front-right` as they are a stereo pair and therefore better suited for stereo output than channels 1 and 2. 1: https://www.tascam.eu/en/model12 --- src/modules/alsa/90-pulseaudio.rules | 1 + .../mixer/profile-sets/tascam-model12.conf | 94 +++++++++++++++++++ 2 files changed, 95 insertions(+) create mode 100644 src/modules/alsa/mixer/profile-sets/tascam-model12.conf diff --git a/src/modules/alsa/90-pulseaudio.rules b/src/modules/alsa/90-pulseaudio.rules index 13d3f6754..faa0e674d 100644 --- a/src/modules/alsa/90-pulseaudio.rules +++ b/src/modules/alsa/90-pulseaudio.rules @@ -113,6 +113,7 @@ ATTRS{idVendor}=="0bda", ATTRS{idProduct}=="4014", ENV{PULSE_PROFILE_SET}="dell- ATTRS{idVendor}=="08bb", ATTRS{idProduct}=="2902", ENV{PULSE_PROFILE_SET}="behringer-umc22.conf" ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="0269", ENV{PULSE_PROFILE_SET}="hp-tbt-dock-120w-g2.conf" ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="0567", ENV{PULSE_PROFILE_SET}="hp-tbt-dock-audio-module.conf" +ATTRS{idVendor}=="0644", ATTRS{idProduct}=="805f", ENV{PULSE_PROFILE_SET}="tascam-model12.conf" # ID 1038:12ad is for the 2018 refresh of the Arctis 7. # ID 1038:1294 is for Arctis Pro Wireless (which works with the Arctis 7 configuration). diff --git a/src/modules/alsa/mixer/profile-sets/tascam-model12.conf b/src/modules/alsa/mixer/profile-sets/tascam-model12.conf new file mode 100644 index 000000000..e4aea4318 --- /dev/null +++ b/src/modules/alsa/mixer/profile-sets/tascam-model12.conf @@ -0,0 +1,94 @@ +# This file is part of PulseAudio. +# +# PulseAudio is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation; either version 2.1 of the +# License, or (at your option) any later version. +# +# PulseAudio is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with PulseAudio; if not, see . + +; Tascam Model 12 +; +; This card has 12 input channels (six mono, two stereo pairs, and a main +; stereo downmix) and 10 output channels (six mono and two stereo pairs). +; +; For compatibility with other systems, the card has an internal "stereo mix" +; setting to send the main stereo downmix to channels 1 and 2. +; +; In multichannel mode, we map the main stereo downmix to the front-left and +; front-right input channels (instead of channel 1,2). Since the stereo pairs +; make more sense for actual stereo output, we map the front-left and +; front-right output channels to the stereo pair 9/10. +; +; Other single-channel mappings can be achived by the 'module-remap-sink' and +; 'module-remap-source' modules. +; +; We knowingly only define a subset of the theoretically possible +; mapping combinations as profiles here. +; +; See default.conf for an explanation on the directives used here. + +[General] +auto-profiles = no + +[Mapping analog-stereo-input] +device-strings = hw:%f,0 +channel-map = left,right +exact-channels = yes +direction = input + +[Mapping multichannel-input] +device-strings = hw:%f,0 +channel-map = aux0,aux1,aux2,aux3,aux4,aux5,aux6,aux7,aux8,aux9,front-left,front-right +exact-channels = yes +direction = input + +[Mapping analog-stereo-output] +device-strings = hw:%f,0 +channel-map = left,right +exact-channels = yes +direction = output + +[Mapping multichannel-output] +device-strings = hw:%f,0 +channel-map = aux0,aux1,aux2,aux3,aux4,aux5,aux6,aux7,front-left,front-right +exact-channels = yes +direction = output + +[Profile output:multichannel-output+input:multichannel-input] +output-mappings = multichannel-output +input-mappings = multichannel-input +priority = 100 +skip-probe = yes + +[Profile output:analog-stereo-output+input:analog-stereo-input] +output-mappings = analog-stereo-output +input-mappings = analog-stereo-input +priority = 50 +skip-probe = yes + +[Profile output:multichannel-output] +output-mappings = multichannel-output +priority = 40 +skip-probe = yes + +[Profile output:analog-stereo-output] +output-mappings = analog-stereo-output +priority = 30 +skip-probe = yes + +[Profile input:multichannel-input] +input-mappings = multichannel-input +priority = 20 +skip-probe = yes + +[Profile input:analog-stereo-input] +input-mappings = analog-stereo-input +priority = 10 +skip-probe = yes