They way you are supposed to turn passthrough on is :
[COLOR=Red]http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Passthrough[/COLOR]
My testing though I can't get it to work, it seems to resample no matter what I do.
I also can't find the dynamic switching. It seems to lock into a sample rate and then I can't get out of it unless I shutdown a program and restart it.
I am sending my signals from my computer to my stereo through a s/pdif cable. I have an Asus xonar essence stx card going to a rotel 1069 receiver. It displays the frequency of the signal I send to it. If I use the deadbeef player and directly send it to my alsa driver each song will switch to the proper frequency and I am getting bit perfect music.
When I try and use the pass through it tries to sample everything to 96Khz and it has a hard time sampling things to 88.2Khz (for CD's and such and some music I have at 88.2Khz.)
Another curious thing is when I am listening to a song it looks like it is trying to force the song to a mono song.
The following log is from trying to play a 44.1Khz stereo song. It says though it is making an output of 96Khz and using the resampler peaks. Which isn't what I have selected. The card is actually outputting 88.2Khz in this case. It also says it is coming out with mono mapping which I can hear that it isn't mono. So I am either not understanding the logs or they are giving wrong information. (logging is set to information.)
May 28 17:02:11 chainsaw pulseaudio[13095]: [pulseaudio] resampler.c: Using resampler 'src-sinc-best-quality'
May 28 17:02:11 chainsaw pulseaudio[13095]: [pulseaudio] resampler.c: Using float32le as working format.
May 28 17:02:11 chainsaw pulseaudio[13095]: [pulseaudio] sink-input.c: Created input 52 "Playback Stream" on alsa_output.pci-0000_03_04.0.iec958-stereo with sample spec s16le 2ch 44100Hz and channel map front-left,front-right
May 28 17:02:11 chainsaw pulseaudio[13095]: [pulseaudio] sink-input.c: media.name = "Playback Stream"
May 28 17:02:11 chainsaw pulseaudio[13095]: [pulseaudio] sink-input.c: application.name = "Amarok"
May 28 17:02:11 chainsaw pulseaudio[13095]: [pulseaudio] sink-input.c: native-protocol.peer = "UNIX socket client"
May 28 17:02:11 chainsaw pulseaudio[13095]: [pulseaudio] sink-input.c: native-protocol.version = "26"
May 28 17:02:11 chainsaw pulseaudio[13095]: [pulseaudio] sink-input.c: media.role = "music"
May 28 17:02:11 chainsaw pulseaudio[13095]: [pulseaudio] sink-input.c: phonon.streamid = "{543f888f-65cb-47bc-9293-30cf4e8695b7}"
May 28 17:02:11 chainsaw pulseaudio[13095]: [pulseaudio] sink-input.c: application.process.id = "13554"
May 28 17:02:11 chainsaw pulseaudio[13095]: [pulseaudio] sink-input.c: application.process.user = "vsteel"
May 28 17:02:11 chainsaw pulseaudio[13095]: [pulseaudio] sink-input.c: application.process.host = "chainsaw"
May 28 17:02:11 chainsaw pulseaudio[13095]: [pulseaudio] sink-input.c: application.process.binary = "amarok"
May 28 17:02:11 chainsaw pulseaudio[13095]: [pulseaudio] sink-input.c: application.language = "en_US.UTF-8"
May 28 17:02:11 chainsaw pulseaudio[13095]: [pulseaudio] sink-input.c: window.x11.display = ":0"
May 28 17:02:11 chainsaw pulseaudio[13095]: [pulseaudio] sink-input.c: application.process.machine_id = "c19043c01f49e528e76ce2a600000003"
May 28 17:02:11 chainsaw pulseaudio[13095]: [pulseaudio] sink-input.c: application.process.session_id = "c19043c01f49e528e76ce2a600000003-1338240205.367573-1881502279"
May 28 17:02:11 chainsaw pulseaudio[13095]: [pulseaudio] sink-input.c: application.icon_name = "amarok"
May 28 17:02:11 chainsaw pulseaudio[13095]: [pulseaudio] sink-input.c: module-stream-restore.id = "sink-input-by-media-role:music"
May 28 17:02:11 chainsaw pulseaudio[13095]: [pulseaudio] protocol-native.c: Requested tlength=200.00 ms, minreq=10.00 ms
May 28 17:02:11 chainsaw pulseaudio[13095]: [pulseaudio] protocol-native.c: Final latency 200.00 ms = 90.00 ms + 2*10.00 ms + 90.00 ms
May 28 17:02:11 chainsaw pulseaudio[13095]: [pulseaudio] sink.c: Cannot update rate, monitor source is RUNNING
May 28 17:02:12 chainsaw pulseaudio[13095]: [pulseaudio] source-output.c: Trying to change sample rate
May 28 17:02:12 chainsaw pulseaudio[13095]: [pulseaudio] source-output.c: Resampling enabled to 96000 Hz
May 28 17:02:12 chainsaw pulseaudio[13095]: [pulseaudio] remap.c: Using generic matrix remapping
May 28 17:02:12 chainsaw pulseaudio[13095]: [pulseaudio] resampler.c: Using resampler 'peaks'
May 28 17:02:12 chainsaw pulseaudio[13095]: [pulseaudio] resampler.c: Using float32le as working format.
May 28 17:02:12 chainsaw pulseaudio[13095]: [pulseaudio] source-output.c: Created output 22 "Peak detect" on alsa_output.pci-0000_03_04.0.iec958-stereo.monitor with sample spec float32le 1ch 25Hz and channel map mono
May 28 17:02:12 chainsaw pulseaudio[13095]: [pulseaudio] source-output.c: media.name = "Peak detect"
May 28 17:02:12 chainsaw pulseaudio[13095]: [pulseaudio] source-output.c: application.name = "PulseAudio Volume Control"
May 28 17:02:12 chainsaw pulseaudio[13095]: [pulseaudio] source-output.c: native-protocol.peer = "UNIX socket client"
May 28 17:02:12 chainsaw pulseaudio[13095]: [pulseaudio] source-output.c: native-protocol.version = "26"
May 28 17:02:12 chainsaw pulseaudio[13095]: [pulseaudio] source-output.c: application.id = "org.PulseAudio.pavucontrol"
May 28 17:02:12 chainsaw pulseaudio[13095]: [pulseaudio] source-output.c: application.icon_name = "audio-card"
May 28 17:02:12 chainsaw pulseaudio[13095]: [pulseaudio] source-output.c: application.version = "0.99.2"
May 28 17:02:12 chainsaw pulseaudio[13095]: [pulseaudio] source-output.c: application.process.id = "9473"
May 28 17:02:12 chainsaw pulseaudio[13095]: [pulseaudio] source-output.c: application.process.user = "vsteel"
May 28 17:02:12 chainsaw pulseaudio[13095]: [pulseaudio] source-output.c: application.process.host = "chainsaw"
May 28 17:02:12 chainsaw pulseaudio[13095]: [pulseaudio] source-output.c: application.process.binary = "pavucontrol"
May 28 17:02:12 chainsaw pulseaudio[13095]: [pulseaudio] source-output.c: application.language = "en_US.UTF-8"
May 28 17:02:12 chainsaw pulseaudio[13095]: [pulseaudio] source-output.c: window.x11.display = ":0"
May 28 17:02:12 chainsaw pulseaudio[13095]: [pulseaudio] source-output.c: application.process.machine_id = "c19043c01f49e528e76ce2a600000003"
May 28 17:02:12 chainsaw pulseaudio[13095]: [pulseaudio] source-output.c: application.process.session_id = "c19043c01f49e528e76ce2a600000003-1338240205.367573-1881502279"
May 28 17:02:12 chainsaw pulseaudio[13095]: [pulseaudio] source-output.c: module-stream-restore.id = "source-output-by-application-id:org.PulseAudio.pavucontrol"
May 28 17:02:12 chainsaw pulseaudio[13095]: [pulseaudio] protocol-native.c: Final latency 60.00 ms = 40.00 ms + 20.00 ms
May 28 17:02:12 chainsaw pulseaudio[13095]: [pulseaudio] module-stream-restore.c: Storing volume/mute/device for stream sink-input-by-media-role:music.
May 28 17:02:22 pulseaudio[13095]: last message repeated 10 times
May 28 17:02:22 chainsaw pulseaudio[13095]: [pulseaudio] module-stream-restore.c: Synced.
I am running Kubuntu 12.04 with alsa 1.0.25 uname -a = 3.2.0-24-generic #39-Ubuntu SMP Mon May 21 16:52:17 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux