[pulseaudio-discuss] remap-sink reproduces sound on more than the target channels

Matthew Patterson matt at v8zman.com
Thu Jun 12 08:36:16 PDT 2008


I have an update on this front. I downloaded a 8 channel wave file, and 
when I play it via the 8 channel sink I get perfect channel seperation. 
If I play the same file via one of the 2 channel sinks then I get the 
sound reproduced on outputs other than what that sink is tied to BUT the 
volumes are different making me think this is some kind of virtual 
surround. Does ALSA or pulse have the ability to cause this, or is this 
basically the sound card being annoying?

Matt



Matthew Patterson wrote:
> Hello all,
>
> Today I got a new sound card (Diamon XtremeSound 7.1, CMI8768 chip) so 
> that I could have more zones in my whole home audio system. I started by 
> installing the card and running "speaker-test" on it to validate that 
> all the outputs work, which they do. I then updated my pulseaudio config:
>
> load-module module-alsa-sink device_id=1 channels=8 sink_name=xtreme
>
> for the new card, and added a bunch of remapped sinks which serve as the 
> various playback zones:
>
> load-module module-remap-sink sink_name=zone1 master=xtreme channels=2 
> channel_map=front-left,front-right master_channel_map=front-left,front-right
> load-module module-remap-sink sink_name=zone2 master=xtreme channels=2 
> channel_map=front-left,front-right master_channel_map=rear-left,rear-right
> load-module module-remap-sink sink_name=zone3 master=xtreme channels=2 
> channel_map=front-left,front-right master_channel_map=front-center,lfe
> load-module module-remap-sink sink_name=zone4 master=xtreme channels=2 
> channel_map=front-left,front-right master_channel_map=side-left,side-right
>
> So now I would think that I could play sound out of zone1 and I would 
> only hear sound out of the front speakers, but alas this is not the 
> case. This is what I get:
>
> Play through zone1:
> All speakers play sound
>
> Play through zone2:
> All speakers play sound
>
> Play through zone3:
> front-center,lfe,side-left,side-right play sound
>
> Play through zone4:
> front-center,lfe,side-left,side-right play sound
>
>
> Does this make sense to anyone? Here is what pulse spews when I start it 
> with verbose output and my config file:
>
> pulseaudio -n -C -F config.pa -vv
> I: main.c: We're in the group 'pulse-rt', allowing real-time and 
> high-priority scheduling.
> I: core-util.c: Successfully gained nice level -11.
> W: main.c: setrlimit(RLIMIT_NICE, (31, 31)) failed: Operation not permitted
> W: main.c: setrlimit(RLIMIT_RTPRIO, (9, 9)) failed: Operation not permitted
> I: main.c: This is PulseAudio 0.9.10
> I: main.c: Page size is 4096 bytes
> I: main.c: Fresh high-resolution timers available! Bon appetit!
> I: client.c: Created 0 "STDIN/STDOUT client"
> I: module.c: Loaded "module-cli" (index: #0; argument: "exit_on_eof=1").
> D: alsa-util.c: Trying surround71:1...
> I: module-alsa-sink.c: Successfully opened device surround71:1.
> I: module-alsa-sink.c: Successfully enabled mmap() mode.
> ALSA lib control.c:909:(snd_ctl_open_noupdate) Invalid CTL surround71:1
> I: alsa-util.c: Unable to attach to mixer surround71:1: No such file or 
> directory
> I: alsa-util.c: Successfully attached to mixer 'hw:1'
> I: alsa-util.c: Using mixer control "Master".
> I: sink.c: Created sink 0 "xtreme" with sample spec "s16le 8ch 44100Hz"
> I: source.c: Created source 0 "xtreme.monitor" with sample spec "s16le 
> 8ch 44100Hz"
> I: module-alsa-sink.c: Using 3 fragments of size 17632 bytes.
> I: alsa-util.c: ALSA device lacks separate volumes control for channel 
> 'rear-left', falling back to software volume control.
> D: module-alsa-sink.c: Thread starting up
> D: rtpoll.c: Acquired POSIX realtime signal SIGRTMIN+29
> I: module-alsa-sink.c: Starting playback.
> I: module.c: Loaded "module-alsa-sink" (index: #1; argument: 
> "device_id=1 channels=8 sink_name=xtreme").
> I: sink.c: Created sink 1 "zone1" with sample spec "s16le 2ch 44100Hz"
> I: source.c: Created source 1 "zone1.monitor" with sample spec "s16le 
> 2ch 44100Hz"
> I: resampler.c: Forcing resampler 'copy', because of fixed, identical 
> sample rates.
> D: resampler.c: Channel matrix:
> D: resampler.c:        I00   I01
> D: resampler.c:     +------------
> D: resampler.c: O00 | 1.000 0.000
> D: resampler.c: O01 | 0.000 1.000
> D: resampler.c: O02 | 1.000 0.000
> D: resampler.c: O03 | 0.000 1.000
> D: resampler.c: O04 | 0.500 0.500
> D: resampler.c: O05 | 0.500 0.500
> D: resampler.c: O06 | 1.000 0.000
> D: resampler.c: O07 | 0.000 1.000
> I: resampler.c: Using resampler 'copy'
> I: resampler.c: Using s16le as working format.
> I: sink-input.c: Created input 0 "Remapped Stream" on xtreme with sample 
> spec s16le 2ch 44100Hz and channel map front-left,front-right
> I: module.c: Loaded "module-remap-sink" (index: #2; argument: 
> "sink_name=zone1 master=xtreme channels=2 
> channel_map=front-left,front-right 
> master_channel_map=front-left,front-right").
> I: sink.c: Created sink 2 "zone2" with sample spec "s16le 2ch 44100Hz"
> I: source.c: Created source 2 "zone2.monitor" with sample spec "s16le 
> 2ch 44100Hz"
> I: resampler.c: Forcing resampler 'copy', because of fixed, identical 
> sample rates.
> D: resampler.c: Channel matrix:
> D: resampler.c:        I00   I01
> D: resampler.c:     +------------
> D: resampler.c: O00 | 1.000 0.000
> D: resampler.c: O01 | 0.000 1.000
> D: resampler.c: O02 | 1.000 0.000
> D: resampler.c: O03 | 0.000 1.000
> D: resampler.c: O04 | 0.500 0.500
> D: resampler.c: O05 | 0.500 0.500
> D: resampler.c: O06 | 1.000 0.000
> D: resampler.c: O07 | 0.000 1.000
> I: resampler.c: Using resampler 'copy'
> I: resampler.c: Using s16le as working format.
> I: sink-input.c: Created input 1 "Remapped Stream" on xtreme with sample 
> spec s16le 2ch 44100Hz and channel map rear-left,rear-right
> I: module.c: Loaded "module-remap-sink" (index: #3; argument: 
> "sink_name=zone2 master=xtreme channels=2 
> channel_map=front-left,front-right 
> master_channel_map=rear-left,rear-right").
> I: sink.c: Created sink 3 "zone3" with sample spec "s16le 2ch 44100Hz"
> I: source.c: Created source 3 "zone3.monitor" with sample spec "s16le 
> 2ch 44100Hz"
> I: resampler.c: Forcing resampler 'copy', because of fixed, identical 
> sample rates.
> D: resampler.c: Channel matrix:
> D: resampler.c:        I00   I01
> D: resampler.c:     +------------
> D: resampler.c: O00 | 0.000 0.000
> D: resampler.c: O01 | 0.000 0.000
> D: resampler.c: O02 | 0.000 0.000
> D: resampler.c: O03 | 0.000 0.000
> D: resampler.c: O04 | 1.000 0.000
> D: resampler.c: O05 | 0.000 1.000
> D: resampler.c: O06 | 0.000 0.000
> D: resampler.c: O07 | 0.000 0.000
> I: resampler.c: Using resampler 'copy'
> I: resampler.c: Using s16le as working format.
> I: sink-input.c: Created input 2 "Remapped Stream" on xtreme with sample 
> spec s16le 2ch 44100Hz and channel map front-center,lfe
> I: module.c: Loaded "module-remap-sink" (index: #4; argument: 
> "sink_name=zone3 master=xtreme channels=2 
> channel_map=front-left,front-right master_channel_map=front-center,lfe").
> I: sink.c: Created sink 4 "zone4" with sample spec "s16le 2ch 44100Hz"
> I: source.c: Created source 4 "zone4.monitor" with sample spec "s16le 
> 2ch 44100Hz"
> I: resampler.c: Forcing resampler 'copy', because of fixed, identical 
> sample rates.
> D: resampler.c: Channel matrix:
> D: resampler.c:        I00   I01
> D: resampler.c:     +------------
> D: resampler.c: O00 | 1.000 0.000
> D: resampler.c: O01 | 0.000 1.000
> D: resampler.c: O02 | 1.000 0.000
> D: resampler.c: O03 | 0.000 1.000
> D: resampler.c: O04 | 0.500 0.500
> D: resampler.c: O05 | 0.500 0.500
> D: resampler.c: O06 | 1.000 0.000
> D: resampler.c: O07 | 0.000 1.000
> I: resampler.c: Using resampler 'copy'
> I: resampler.c: Using s16le as working format.
> I: sink-input.c: Created input 3 "Remapped Stream" on xtreme with sample 
> spec s16le 2ch 44100Hz and channel map side-left,side-right
> I: module.c: Loaded "module-remap-sink" (index: #5; argument: 
> "sink_name=zone4 master=xtreme channels=2 
> channel_map=front-left,front-right 
> master_channel_map=side-left,side-right").
> I: module.c: Loaded "module-cli-protocol-unix" (index: #6; argument: "").
> I: protocol-native.c: loading cookie from disk.
> I: protocol-native.c: using already loaded auth cookie.
> I: module.c: Loaded "module-native-protocol-tcp" (index: #7; argument: "").
> I: main.c: Daemon startup complete.
> Welcome to PulseAudio! Use "help" for usage information.
>  >>> I: socket-server.c: TCP connection accepted by tcpwrap.
> I: client.c: Created 1 "Native client (TCP/IP client from 127.0.0.1:34905)"
> I: client.c: Client 1 changed name from "Native client (TCP/IP client 
> from 127.0.0.1:34905)" to "Audacious"
> I: sink-input.c: Created input 4 "Beatles - Love - All You Need Is Love" 
> on zone1 with sample spec s16le 2ch 44100Hz and channel map 
> front-left,front-right
> D: memblockq.c: memblockq requested: maxlength=132300, tlength=88200, 
> base=4, prebuf=86436, minreq=1764
> D: memblockq.c: memblockq sanitized: maxlength=132300, tlength=88200, 
> base=4, prebuf=86436, minreq=1764
> I: sink-input.c: Freeing output 4 "Beatles - Love - All You Need Is Love"
> I: client.c: Freed 1 "Audacious"
> I: protocol-native.c: connection died.
>
>
> It just seems so odd that the channels would work perfectly when playing 
> multi channel audio via alsa, but be all mixed up via pulse. Is there an 
> equivalent to "speaker-test" that is pulse compatible?
>
> Thanks,
> Matt
>
> _______________________________________________
> pulseaudio-discuss mailing list
> pulseaudio-discuss at mail.0pointer.de
> https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss
>   



More information about the pulseaudio-discuss mailing list