PDA

View Full Version : 96/24 Support for SqueezeBox 3



lkypeter
2008-11-21, 07:40
I have a squeezebox 3 and recently noticed that while the specifications say is supports a maximum resolution of 48/24, I have discovered that if you use the optical output instead of the coaxial or analogue output, it is able to support 96/24.

I tested it using 96/24 FLAC files from linnrecords.com download site.

According to specs, only the higher end Transporter is able to support 96/24.

Cheers,,, Pete

toby10
2008-11-21, 07:42
I have a squeezebox 3 and recently noticed that while the specifications say is supports a maximum resolution of 48/24, I have discovered that if you use the optical output instead of the coaxial or analogue output, it is able to support 96/24.

I tested it using 96/24 FLAC files from linnrecords.com download site.

According to specs, only the higher end Transporter is able to support 96/24.

Cheers,,, Pete

It may be playing the track, but it's probably down sampling it to 48.

andyg
2008-11-21, 07:45
Yes it's being downsampled.

amcluesent
2008-11-21, 08:13
>it's being downsampled.<

Badly!

MadScientist
2008-11-21, 08:40
Doesn't the SB3 simply throw away every other data set to 'downsample' 24/96 to 24/48?

It sounds much better if you do the downsampling using Foobar (and the likes) which make a reasonable job of the process.

MS

peter
2008-11-21, 08:51
MadScientist wrote:
> Doesn't the SB3 simply throw away every other data set to 'downsample'
> 24/96 to 24/48?
>

Why would that be bad?


Regards,
Peter

seanadams
2008-11-21, 08:53
It does NOT support 24/96, period. It's NOT downsampling, it's absolutely butchering the signal - on the premise that it's better to play something than nothing at all when we encounter these tracks.

However, beginning with SC 7.3 we have added server-side downsampling which will make these tracks play reasonably on SB3.

MadScientist
2008-11-21, 09:09
It does NOT support 24/96, period. It's NOT downsampling, it's absolutely butchering the signal - on the premise that it's better to play something than nothing at all when we encounter these tracks.

However, beginning with SC 7.3 we have added server-side downsampling which will make these tracks play reasonably on SB3.

Brilliant? Is that active in 7.3 now? What alogorithm is used (will be used) for the DS?

MS

Phil Leigh
2008-11-21, 10:30
Which nightly added this to 7.3? can it do FLAC or WAV or what?
can it do 88.2-44.1 and 96-48?
Before I spend more money at the Linn downloads site... :o)

andyg
2008-11-21, 10:41
It actually does flac -> mp3 with resampling done by LAME for 88.2 and 96. This is because the flac binary does not support resampling.

Here is a sample command-line used on one of my 88.2 tracks.

"/Users/andy/dev/Slim/7.3/trunk/server/Bin/darwin/flac" -dcs -- "/Volumes/Music/Organized/Pat Metheny Group/Imaginary Day (High-Res)/01 - Imaginary Day.flac" | "/sw/bin/lame" --silent -q 9 --resample 44.1 -v - -

Phil Leigh
2008-11-21, 10:44
It actually does flac -> mp3 with resampling done by LAME for 88.2 and 96. This is because the flac binary does not support resampling.

Here is a sample command-line used on one of my 88.2 tracks.

"/Users/andy/dev/Slim/7.3/trunk/server/Bin/darwin/flac" -dcs -- "/Volumes/Music/Organized/Pat Metheny Group/Imaginary Day (High-Res)/01 - Imaginary Day.flac" | "/sw/bin/lame" --silent -q 9 --resample 44.1 -v - -

Andy,
sorry to be "Mr. Thicky" but do you mean I have to enable FLAV-MP3 in file types? (I'm downloading a 96/24 flac now to try this out!)

andyg
2008-11-21, 10:44
I should point out that we are hoping to get a rebuilt version of sox included that can resample flac -> flac. Then we can stop using MP3 for this, which isn't an ideal solution.

You can do it yourself too, see this thread:

http://forums.slimdevices.com/showthread.php?p=360120

andyg
2008-11-21, 10:46
Andy,
sorry to be "Mr. Thicky" but do you mean I have to enable FLAV-MP3 in file types? (I'm downloading a 96/24 flac now to try this out!)

Yes, you have to install LAME and enable flac/mp3 for this to work. If not you can't play the files at all.

amcluesent
2008-11-21, 10:56
Is there any truth that if you play the server-side resampled music backwards, you can hear Sean saying "You really should have bought a Transporter" :)

andyg
2008-11-21, 10:59
Now that would be a neat trick. :)

MadScientist
2008-11-21, 11:01
Yes, you have to install LAME and enable flac/mp3 for this to work. If not you can't play the files at all.

Hhh! I see little point in going dowm this route if you've got to process your hi-res 24/96 files via a lossy format. It has to be flac-to-flac or nothing.

MS

andyg
2008-11-21, 11:03
Agreed, see that other thread for how to do it.

Phil Leigh
2008-11-21, 11:07
I should point out that we are hoping to get a rebuilt version of sox included that can resample flac -> flac. Then we can stop using MP3 for this, which isn't an ideal solution.

You can do it yourself too, see this thread:

http://forums.slimdevices.com/showthread.php?p=360120

Being a mere mortal, I'm not sure I can do it myself! (at least, I'd need a beginners guide...)

I'll try the mp3 route first. It will be great when this is "seamlessly integrated" - wasn't expecting this feature at all - thanks.

seanadams
2008-11-21, 11:19
Hhh! I see little point in going dowm this route if you've got to process your hi-res 24/96 files via a lossy format. It has to be flac-to-flac or nothing.

MS

No, this is much better than what we did before. OK, I was mistakenly thinking that this was being done with sox, but it's actually using lame to convert to mp3. However, that is way better than dropping every other sample, which causes massive aliasing - all the material above 22 KHz gets folded down into the audible band. Also, the CPU can't actually keep up with 96Khz flac decoding, so you would get audible dropouts too. I must sound like a broken record by now...

Andy - is there a bug open to upgrade this to use flac->sox->flac?

seanadams
2008-11-21, 11:20
Note that downsampling is also, of course, a lossy conversion.

andyg
2008-11-21, 11:31
I can't find a bug, I'll open one for 7.3.1.

andyg
2008-11-21, 11:32
Oops, it's this bug: http://bugs.slimdevices.com/show_bug.cgi?id=9997

MadScientist
2008-11-21, 11:42
Note that downsampling is also, of course, a lossy conversion.

Indeed. I've got a Transporter on my Christmas list.

MS

Phil Leigh
2008-11-21, 11:46
any idea where I can get an XP-compatible version of SOX.exe that will work with this for flac-flac?
Also, I presume I have to edit convert.conf as per the other thread Andy mentioned? - I think I could do that...

andyg
2008-11-21, 11:59
Looks like the official Win32 build of sox on http://sox.sourceforge.net/ supports flac.

MadScientist
2008-11-21, 13:03
If one was lucky enough to own a Transporter and a SB3, is there a way of storing a 24/96 files on your server and have it downsampled only for SB3 replay?

MS

Phil Leigh
2008-11-21, 13:10
Running latest 7.3 nightly...

I can't get this to work. I downloaded a 24/96 album. Set bitrate limiting to 320 to force flac-MP3 via lame...
file seems to play according to the SB3 display, but whatever is coming out of the spdif coax isn't driving my DAC!

schiegl
2008-11-21, 13:13
If one was lucky enough to own a Transporter and a SB3, is there a way of storing a 24/96 files on your server and have it downsampled only for SB3 replay?

MS

SC 7.3 knows which player is capable of what max. frequency. So for a transporter _no_ downsampling is required in contrast to a SB3/Boom/SBR downsampling is needed and done on the server side. This happens without user input...

kind regards,
Markus

schiegl
2008-11-21, 13:20
I can't get this to work. I downloaded a 24/96 album. Set bitrate limiting to 320 to force flac-MP3 via lame...
file seems to play according to the SB3 display, but whatever is coming out of the spdif coax isn't driving my DAC!

I don't know why your DAC doesn't recognize the signal, but you don't need to set the bitrate limiting option (you may set the "LAME quality level"). Resampling will be triggered automatically if your input sampling rate is higher than 48khz AND the destination player is NOT a transporter, i.e for all other players.

Can you see if SC starts any processes? (flac, lame)

kind regards,
Markus

andyg
2008-11-21, 13:39
Enable player.source debugging if you are having problems.

seanadams
2008-11-21, 13:48
Running latest 7.3 nightly...

I can't get this to work. I downloaded a 24/96 album. Set bitrate limiting to 320 to force flac-MP3 via lame...
file seems to play according to the SB3 display, but whatever is coming out of the spdif coax isn't driving my DAC!

Turn on the visualizer. Is it visualizing?

Phil Leigh
2008-11-22, 00:58
visualiser doesnt move!
play time counter on the web gui increments to 4 seconds then goes back to zero.

Here is the player source log:

[08-11-22 07:51:39.1036] Slim::Player::TranscodingHelper::getConvertCommand 2 (399) Rejecting - because required capability D not supported:
[08-11-22 07:51:39.1040] Slim::Player::TranscodingHelper::checkBin (227) Checking formats for: flc-flc-transcode-*
[08-11-22 07:51:39.1043] Slim::Player::TranscodingHelper::enabledFormat (194) Checking to see if flc-flc-transcode-* is enabled
[08-11-22 07:51:39.1047] Slim::Player::TranscodingHelper::enabledFormat (202) There are 2 disabled formats...
[08-11-22 07:51:39.1052] Slim::Player::TranscodingHelper::enabledFormat (208) Testing flc-wav-*-* vs flc-flc-transcode-*
[08-11-22 07:51:39.1056] Slim::Player::TranscodingHelper::enabledFormat (208) Testing wav-flc-*-* vs flc-flc-transcode-*
[08-11-22 07:51:39.1059] Slim::Player::TranscodingHelper::checkBin (235) enabled
[08-11-22 07:51:39.1063] Slim::Player::TranscodingHelper::checkBin (237) Found command: [flac] -dcs $START$ $END$ -- $FILE$ | [flac] -cs --totally-silent --compression-level-0 -
[08-11-22 07:51:39.1068] Slim::Player::TranscodingHelper::getConvertCommand 2 (399) Rejecting [flac] -dcs $START$ $END$ -- $FILE$ | [flac] -cs --totally-silent --compression-level-0 - because required capability D not supported:
[08-11-22 07:51:39.1072] Slim::Player::TranscodingHelper::checkBin (227) Checking formats for: flc-aif-squeezebox2-00:04:20:12:7d:2d
[08-11-22 07:51:39.1075] Slim::Player::TranscodingHelper::checkBin (227) Checking formats for: flc-aif-*-00:04:20:12:7d:2d
[08-11-22 07:51:39.1079] Slim::Player::TranscodingHelper::checkBin (227) Checking formats for: flc-aif-squeezebox2-*
[08-11-22 07:51:39.1082] Slim::Player::TranscodingHelper::checkBin (227) Checking formats for: flc-aif-*-*
[08-11-22 07:51:39.1086] Slim::Player::TranscodingHelper::checkBin (227) Checking formats for: flc-wav-squeezebox2-00:04:20:12:7d:2d
[08-11-22 07:51:39.1092] Slim::Player::TranscodingHelper::checkBin (227) Checking formats for: flc-wav-*-00:04:20:12:7d:2d
[08-11-22 07:51:39.1096] Slim::Player::TranscodingHelper::checkBin (227) Checking formats for: flc-wav-squeezebox2-*
[08-11-22 07:51:39.1099] Slim::Player::TranscodingHelper::checkBin (227) Checking formats for: flc-wav-*-*
[08-11-22 07:51:39.1103] Slim::Player::TranscodingHelper::enabledFormat (194) Checking to see if flc-wav-*-* is enabled
[08-11-22 07:51:39.1107] Slim::Player::TranscodingHelper::enabledFormat (202) There are 2 disabled formats...
[08-11-22 07:51:39.1110] Slim::Player::TranscodingHelper::enabledFormat (208) Testing flc-wav-*-* vs flc-wav-*-*
[08-11-22 07:51:39.1114] Slim::Player::TranscodingHelper::enabledFormat (212) ** flc-wav-*-* Disabled **
[08-11-22 07:51:39.1117] Slim::Player::TranscodingHelper::checkBin (227) Checking formats for: flc-mp3-squeezebox2-00:04:20:12:7d:2d
[08-11-22 07:51:39.1121] Slim::Player::TranscodingHelper::checkBin (227) Checking formats for: flc-mp3-*-00:04:20:12:7d:2d
[08-11-22 07:51:39.1124] Slim::Player::TranscodingHelper::checkBin (227) Checking formats for: flc-mp3-squeezebox2-*
[08-11-22 07:51:39.1128] Slim::Player::TranscodingHelper::checkBin (227) Checking formats for: flc-mp3-*-*
[08-11-22 07:51:39.1132] Slim::Player::TranscodingHelper::enabledFormat (194) Checking to see if flc-mp3-*-* is enabled
[08-11-22 07:51:39.1136] Slim::Player::TranscodingHelper::enabledFormat (202) There are 2 disabled formats...
[08-11-22 07:51:39.1140] Slim::Player::TranscodingHelper::enabledFormat (208) Testing flc-wav-*-* vs flc-mp3-*-*
[08-11-22 07:51:39.1143] Slim::Player::TranscodingHelper::enabledFormat (208) Testing wav-flc-*-* vs flc-mp3-*-*
[08-11-22 07:51:39.1147] Slim::Player::TranscodingHelper::checkBin (235) enabled
[08-11-22 07:51:39.1151] Slim::Player::TranscodingHelper::checkBin (237) Found command: [flac] -dcs $START$ $END$ -- $FILE$ | [lame] --silent -q $QUALITY$ $RESAMPLE$ -v $BITRATE$ - -
[08-11-22 07:51:39.1156] Slim::Player::TranscodingHelper::getConvertCommand 2 (454) Matched: flc->mp3 via: [flac] -dcs $START$ $END$ -- $FILE$ | [lame] --silent -q $QUALITY$ $RESAMPLE$ -v $BITRATE$ - -
[08-11-22 07:51:39.1160] Slim::Player::Song::open (340) Transcoder: streamMode=F, streamformat=mp3
[08-11-22 07:51:39.1179] Slim::Player::TranscodingHelper::tokenizeConvertCo mmand2 (557) Using command for conversion: "C:\PROGRA~1\SQUEEZ~1\server\Bin\MSWin32-x86-multi-thread\flac.exe" -dcs -- "E:\CAROLK~1\NICEWO~1\01-NIC~1.FLA" | "C:\PROGRA~1\SQUEEZ~1\server\Bin\MSWin32-x86-multi-thread\lame.exe" --silent -q 9 --resample 48 -v - -
[08-11-22 07:51:39.1184] Slim::Player::Song::open (457) Tokenized command "C:\PROGRA~1\SQUEEZ~1\server\Bin\MSWin32-x86-multi-thread\flac.exe" -dcs -- "E:\CAROLK~1\NICEWO~1\01-NIC~1.FLA" | "C:\PROGRA~1\SQUEEZ~1\server\Bin\MSWin32-x86-multi-thread\lame.exe" --silent -q 9 --resample 48 -v - -
[08-11-22 07:51:39.1219] Slim::Player::Pipeline::new (93) Launching process with command: "C:\PROGRA~1\SQUEEZ~1\server\Bin\MSWin32-x86-multi-thread\socketwrapper.exe" -D -w -o 3851 -c "\"C:\PROGRA~1\SQUEEZ~1\server\Bin\MSWin32-x86-multi-thread\flac.exe\" -dcs -- \"E:\CAROLK~1\NICEWO~1\01-NIC~1.FLA\" | \"C:\PROGRA~1\SQUEEZ~1\server\Bin\MSWin32-x86-multi-thread\lame.exe\" --silent -q 9 --resample 48 -v - -"
[08-11-22 07:51:39.9602] Slim::Player::SongStreamController::new (32) live=1
[08-11-22 07:51:39.9615] Slim::Player::StreamingController::_Stream (941) 00:04:20:12:7d:2d: stream
[08-11-22 07:51:39.9685] Slim::Player::StreamingController::_Stream (970) Song queue is now 0,0
[08-11-22 07:51:39.9694] Slim::Player::StreamingController::_setPlayingStat e (1763) new playing state BUFFERING
[08-11-22 07:51:39.9699] Slim::Player::StreamingController::_setStreamingSt ate (1776) new streaming state STREAMING
[08-11-22 07:51:39.9706] Slim::Player::StreamingController::_eventAction (301) 00:04:20:12:7d:2d: NextTrackReady - new state BUFFERING-STREAMING
[08-11-22 07:51:39.9710] Slim::Player::StreamingController::_eventAction (301) 00:04:20:12:7d:2d: Play - new state BUFFERING-STREAMING
[08-11-22 07:51:39.9760] Slim::Player::StreamingController::_eventAction (269) 00:04:20:12:7d:2d: StatusHeartbeat in BUFFERING-STREAMING -> Slim::Player::StreamingController::_NoOp
[08-11-22 07:51:39.9770] Slim::Player::StreamingController::_eventAction (269) 00:04:20:12:7d:2d: StatusHeartbeat in BUFFERING-STREAMING -> [08-11-22 07:52:37.6229] Slim::Schema::Storage::throw_exception (70) Error: Error executing 'INSERT INTO playlist_track (playlist, position, track) VALUES (?, ?, ?)': DBD::mysql::st execute failed: Lock wait timeout exceeded; try restarting transaction at /<C:\PROGRA~1\SQUEEZ~1\server\SQUEEZ~1.EXE>DBIx/Class/Storage/DBI.pm line 771.
[08-11-22 07:52:37.6968] Slim::Schema::Storage::throw_exception (70)
[08-11-22 07:52:37.8283] Slim::Player::Pipeline::acceptReader (199) Pipeline reader connected
[08-11-22 07:52:37.8484] Slim::Player::StreamingController::_eventAction (269) 00:04:20:12:7d:2d: StatusHeartbeat in BUFFERING-STREAMING -> Slim::Player::StreamingController::_NoOp
[08-11-22 07:52:37.8494] Slim::Player::StreamingController::_eventAction (269) 00:04:20:12:7d:2d: StatusHeartbeat in BUFFERING-STREAMING -> Slim::Player::StreamingController::_NoOp
[08-11-22 07:52:37.8783] Slim::Player::StreamingController::_eventAction (269) 00:04:20:12:7d:2d: StatusHeartbeat in BUFFERING-STREAMING -> Slim::Player::StreamingController::_NoOp
[08-11-22 07:52:37.9399] Slim::Player::Source::_readNextChunk (441) Sending 6280 bytes of silence.

Phil Leigh
2008-11-22, 03:07
I don't know why your DAC doesn't recognize the signal, but you don't need to set the bitrate limiting option (you may set the "LAME quality level"). Resampling will be triggered automatically if your input sampling rate is higher than 48khz AND the destination player is NOT a transporter, i.e for all other players.

Can you see if SC starts any processes? (flac, lame)

kind regards,
Markus

It starts LAME... and then after a while LAME goes away. Also a visible command window showing Socket Wrapper opens up and there is lots of output written to it - and then that window closes too...


This is what appears in the command window:

SW: 2008-11-22 10:07:51.550 Socketwrapper 1.10
SW: 2008-11-22 10:07:51.550 -i 0 -o 1468 -c "C:\PROGRA~1\SQUEEZ~1\server\Bin\MSW
in32-x86-multi-thread\flac.exe" -dcs -- "E:\CAROLK~1\NICEWO~1\02-HAV~1.FLA" | "C
:\PROGRA~1\SQUEEZ~1\server\Bin\MSWin32-x86-multi-thread\lame.exe" --silent -q 9
--resample 48 -v - -
SW: 2008-11-22 10:07:51.560 Init complete.
SW: 2008-11-22 10:07:51.560 # =input== =output= ==type== ===details===
SW: 2008-11-22 10:07:51.560 0 00000003 00000084 PROCESS "C:\PROGRA~1\SQUEEZ~1\s
erver\Bin\MSWin32-x86-multi-thread\flac.exe" -dcs -- "E:\CAROLK~1\NICEWO~1\02-HA
V~1.FLA"
SW: 2008-11-22 10:07:51.560 1 00000080 0000008c PROCESS "C:\PROGRA~1\SQUEEZ~1\s
erver\Bin\MSWin32-x86-multi-thread\lame.exe" --silent -q 9 --resample 48 -v - -
SW: 2008-11-22 10:07:51.560 2 00000088 000000a8 THREAD Output Socket
SW: 2008-11-22 10:07:51.560 MoveDataThreadProc for step 2 started.
SW: 2008-11-22 10:07:51.560 MoveDataThreadProc for step 2 about to call ReadFile
.
SW: 2008-11-22 10:07:51.840 MoveDataThreadProc for step 2 got 4096 bytes, about
to write data.
SW: 2008-11-22 10:07:51.840 MoveDataThreadProc for step 2 about to call ReadFile
.

lkypeter
2008-11-22, 08:31
Running latest 7.3 nightly...

I can't get this to work. I downloaded a 24/96 album. Set bitrate limiting to 320 to force flac-MP3 via lame...
file seems to play according to the SB3 display, but whatever is coming out of the spdif coax isn't driving my DAC!

I have the same problem with the coax SPIDF connection to my BenchMark DAC1 but once I switched it over to optical SPIDF to the benchmark DAC1, sound started coming out but like what the others have said, it is most probably chopped off.

Cheers,,, Pete

Phil Leigh
2008-11-22, 08:45
The files play back fine on my PC via Foobar downsampling to 24/48.
I used Foobar to convert them and they play fine via the SB3 at 24/48 too.

I must be doing something wrong.

I put the 14.2 SOX exe in place of the standard one and edited the convert.conf file to show:

flc flc transcode *

# FT:{START=--skip=%t}U:{END=--until=%v}D:{RESAMPLE=rate %d}
[flac] -dcs $START$ $END$ -- $FILE$ | [sox] -t wav - -t flac - $RESAMPLE$

but no joy.

schiegl
2008-11-23, 04:05
hmm...when i played with downsampling i set player.source=debug (as you did already) and copied the command which eventually will be executed to the windows command line:

(a guess, you need to find this string in your logfile)



C:\PROGRA~1\SQUEEZ~1\server\Bin\MSWin32-x86-multi-thread\flac.exe" -dcs -- "E:\CAROLK~1\NICEWO~1\01-NIC~1.FLA" | "C:\PROGRA~1\SQUEEZ~1\server\Bin\MSWin32-x86-multi-thread\sox.exe" -t wav - -t flac - rate 44100 > sample.flac


This should create a file "sample.flac" in your current working directory. I verified this file in foobar that it plays ok and then used the found string in convert.conf. Maybe this command will show why downsampling doesn't work on your side yet.

I must admit that i don't have much experience with SC running on windows, so you may need to tweak it on one side or the other...

kind regards,
Markus

Phil Leigh
2008-11-23, 08:29
hmm...when i played with downsampling i set player.source=debug (as you did already) and copied the command which eventually will be executed to the windows command line:

(a guess, you need to find this string in your logfile)



C:\PROGRA~1\SQUEEZ~1\server\Bin\MSWin32-x86-multi-thread\flac.exe" -dcs -- "E:\CAROLK~1\NICEWO~1\01-NIC~1.FLA" | "C:\PROGRA~1\SQUEEZ~1\server\Bin\MSWin32-x86-multi-thread\sox.exe" -t wav - -t flac - rate 44100 > sample.flac


This should create a file "sample.flac" in your current working directory. I verified this file in foobar that it plays ok and then used the found string in convert.conf. Maybe this command will show why downsampling doesn't work on your side yet.

I must admit that i don't have much experience with SC running on windows, so you may need to tweak it on one side or the other...

kind regards,
Markus

Markus - fantastic advice! - I got the command line working as per your example above and discovered I needed to install cygwin1.dll - then it all just worked...

Bottom line: I can now download 24/96 files and SC will play them seamlessly and in high quality as 24/48 using server-side resampling.

Many thanks again
Phil

schiegl
2008-11-23, 09:25
Phil,

good job! putting pieces from my post together :-)

you're welcome,
Markus

jvanhambelgium
2008-11-27, 00:06
Hi there,

Since a few weeks I own the DUET combo and I love it!
Regarding "high quality" music, I do not use the DAC's of the Receiver ; the receiver goes straight into my Onkyo AVR by optical cable.

I do not seem to have issues playing 96/24 content (even multichannel DTS tracks) because the receiver only outputs a PCM-stream towards my Onkyo who deals with all the rest.

However, I also downloaded these "test" FLAC files from the lindberg.no website and some of these a *very* high quality and I cannot play them.

=> What is the absolute maximum the Squeezecenter would be able to "stream" to my Duet receiver and why ? Limitation on the Duet receiver ? SqueezeCenter FLAC-binary limitation ? No DAC's are involved in my case, but I can understand that maybe the receiver just cannot PCM-stream to my receiver at that clockrate ??

Thanks & regards,
Jan

Phil Leigh
2008-11-27, 00:13
Hi there,

Since a few weeks I own the DUET combo and I love it!
Regarding "high quality" music, I do not use the DAC's of the Receiver ; the receiver goes straight into my Onkyo AVR by optical cable.

I do not seem to have issues playing 96/24 content (even multichannel DTS tracks) because the receiver only outputs a PCM-stream towards my Onkyo who deals with all the rest.

However, I also downloaded these "test" FLAC files from the lindberg.no website and some of these a *very* high quality and I cannot play them.

=> What is the absolute maximum the Squeezecenter would be able to "stream" to my Duet receiver and why ? Limitation on the Duet receiver ? SqueezeCenter FLAC-binary limitation ? No DAC's are involved in my case, but I can understand that maybe the receiver just cannot PCM-stream to my receiver at that clockrate ??

Thanks & regards,
Jan

The max streaming rate via internal DAC or the digital output to an external DAC is 24/48 (which is what your DTS Audio is) - this is a hardware limitation. If you try and stream higher - say 24/96 - then the Duet/SB discards every alternate sample to get back to 24/48 This is a crude method and does not sound as good as using the server-side resampling methods discussed in this thread.

MadScientist
2008-11-28, 04:29
I'd like to implement this but I'm getting a bit confused as to which lines to delete/add to the convert.conf file. I would be be most grateful for an idiots guide including best directory to drop the sox application in.

Thanks

MS

Phil Leigh
2008-11-28, 11:53
I'd like to implement this but I'm getting a bit confused as to which lines to delete/add to the convert.conf file. I would be be most grateful for an idiots guide including best directory to drop the sox application in.

Thanks

MS

Dear MS - this is what I did, based on the advice in the thread. Windows XP by the way:

1)find the latest SOX on the net and download (14.2 think)
look here:
http://sourceforge.net/export/rss2_projfiles.php?group_id=10706

make sure you download the Windows version from Nov 9 2008

2) put sox.exe and cygwin1.dll (from the download) into squeezecenter\server\bin\mswin32-x86-multi-thread directory (rename old sox.exe first!!!!!)

3) find custom-convert.conf - should be in the squeezecenter\server directory

edit with NOTEPAD (this is important) and go to the bottom of the file:
find the line:

# special case for smart bitrates on mp3 input

after that line, replace everythign with this:

#mp3 mp3 transcode *
# IFB:{BITRATE=-B %B}D:{RESAMPLE=--resample %D}
# [lame] --silent -q $QUALITY$ -v $BITRATE$ $RESAMPLE$ --mp3input $FILE$ -

flc flc transcode *
# FT:{START=--skip=%t}U:{END=--until=%v}D:{RESAMPLE=rate %d}
[flac] -dcs $START$ $END$ -- $FILE$ | [sox] -t wav - -t flac - $RESAMPLE$

# This example transcodes MP3s to MP3s, if the target machine has the
# given MAC address. This rule will take precedence over the
# previous rule because it's more specific.
#mp3 mp3 squeezebox 00:02:dd:34:e9:62
# ./brute_filter $FILE$ -


stop SC and restart - should just work!!!!!

MadScientist
2008-11-28, 12:02
Phil

Many thanks for this! I'll give it a go tomorrow.

MS

MadScientist
2008-11-29, 06:28
Phil

Seems to work OK, thanks. The only concern I have is that when playing a 24/88 track the info on my SBC says it's being converted from 1800 to 320kbps. Not sure if this is actually happening. Do you see this?

MS

Phil Leigh
2008-11-29, 11:23
Phil

Seems to work OK, thanks. The only concern I have is that when playing a 24/88 track the info on my SBC says it's being converted from 1800 to 320kbps. Not sure if this is actually happening. Do you see this?

MS

I don't have an SC so I can't comment... maybe schiegl could advise?

are you playing a flac or a wav file? ... the changes I advised ONLY work for FLACS AFAIK. Wav's get converted to 320kbs mp3s...

schiegl
2008-11-29, 12:30
Phil

Seems to work OK, thanks. The only concern I have is that when playing a 24/88 track the info on my SBC says it's being converted from 1800 to 320kbps. Not sure if this is actually happening. Do you see this?

MS

I think this should not happen. I tested a 24/88.2khz flac track on a SBR (Squeezebox Receiver) and the SBC (Squeezebox Controller) tells me under "More Info": Bitrate 2520 kbps VBR (Converted to 705kbps ABR).

At the same time i can see a sox-process running using some CPU. (If you see a lame process running something's definitely wrong)

You must not have bitrate limiting enabled under SC->Settings. This downsampling/transcoding happens without manual configuration on the settings page. Just make sure you've done those entries to convert.conf/custom-convert.conf.

kind regards,
Markus

MadScientist
2008-11-29, 13:48
Thanks guys for your input.

I'm using exclusively Flac and I modified the Convert.conf file (as opposed to creating a custom file) by pasting in Phil's modifications. I've also disabled Lame.exe so it's definately not in the equation. The only bit-rate limiting settings I'm aware of are under in the Player audio settings and this set to 'no limit'.

I'll have afuther pay tomorrow

MS

Edit: After taking out Lame and restarting SG, 24/88 won't play at all so I don't understand what I'm doing wrong

Patrick Dixon
2008-12-02, 10:45
I found some problems before I could get this to work (on Ubuntu).

With sox 14.0 the transcode line above doesn't work, but this does:-

flc flc transcode *
# FT:{START=--skip=%t}U:{END=--until=%v}D:{RESAMPLE=-r %d}
[flac] -dcs $START$ $END$ -- $FILE$ | [sox] -t wav - -t flac RESAMPLE$ -

I also had to edit /etc/squeezecenter/convert.conf because SC7 appears to ignore /usr/share/squeezecenter/custom-convert.conf

I then had to replace /usr/share/squeezecenter/Bin/i386-linux/sox with a link to /usr/bin/sox

I am still not 100% sure it's maintaining the 24 bits though ...

Patrick Dixon
2008-12-02, 10:54
I tested a 24/88.2khz flac track on a SBR (Squeezebox Receiver) and the SBC (Squeezebox Controller) tells me under "More Info": Bitrate 2520 kbps VBR (Converted to 705kbps ABR).


This doesn't sound right to me. For me, using the same tool chain to manually convert the file, SC reports it as 1907kbps VBR, however the transcoded version is reported as 2243kbps VBR (Converted to 705.6kbps ABR)

I think the 705.6kbps number is just something programmed into SC somewhere and not a 'real bitrate.

schiegl
2008-12-02, 11:24
...
With sox 14.0 the transcode line above doesn't work, but this does:-

flc flc transcode *
# FT:{START=--skip=%t}U:{END=--until=%v}D:{RESAMPLE=-r %d}
[flac] -dcs $START$ $END$ -- $FILE$ | [sox] -t wav - -t flac RESAMPLE$ -

this line works too on my side. Do you see the "rate" effect? (sox -h | grep EFFECTS: | grep rate ?) Maybe this is an additional effect which is only available if you link against libsamplerate (http://www.mega-nerd.com/SRC/)



I also had to edit /etc/squeezecenter/convert.conf because SC7 appears to ignore /usr/share/squeezecenter/custom-convert.conf

I then had to replace /usr/share/squeezecenter/Bin/i386-linux/sox with a link to /usr/bin/sox

me, too.



I am still not 100% sure it's maintaining the 24 bits though ...

I'm rather sure it is. While testing i redirected stdout of the sox process to a new sample.flac and checked this version with foobar + it was exactly 50% the size of the full version. (If i remember correctly)


This doesn't sound right to me. For me, using the same tool chain to manually convert the file, SC reports it as 1907kbps VBR, however the transcoded version is reported as 2243kbps VBR (Converted to 705.6kbps ABR)

I think the 705.6kbps number is just something programmed into SC somewhere and not a 'real bitrate.

agreed, just wanted to make clear it's something else than "320kbit/s"

kind regards,
Markus

Patrick Dixon
2008-12-02, 12:56
this line works too on my side. Do you see the "rate" effect? (sox -h | grep EFFECTS: | grep rate ?) Maybe this is an additional effect which is only available if you link against libsamplerate (http://www.mega-nerd.com/SRC/)No 'rate' at all. I guess it's just not in sox 14.0, and 14.0 is what the ubuntu libraries provide. Life is just too short to try and figure out how to install all the dependencies manually, although the deb packages for 14.2 all seem to be available!



I'm rather sure it is. While testing i redirected stdout of the sox process to a new sample.flac and checked this version with foobar + it was exactly 50% the size of the full version. (If i remember correctly)
Yes, I've now tested it to a file too, and foobar reports it as 24-bits.

MadScientist
2008-12-03, 01:02
Neither
[flac] -dcs $START$ $END$ -- $FILE$ | [sox] -t wav - -t flac - $RESAMPLE$

nor
[flac] -dcs $START$ $END$ -- $FILE$ | [sox] -t wav - -t flac RESAMPLE$ -

modifications to covert.conf work for me. I still end up with Lame.exe-dependent resampling. This is using sox 14.2 + its associated dll file. I think I'll have to wait for 7.3.1

MS

Patrick Dixon
2008-12-03, 02:01
You could try disabling flac->mp3 and flac->wav to see if that forces it to flac transcode.

The other thing to try is to enable info logging on player.source and check the log. This should show what coder/transcoder SC is choosing from convert.conf and give you an indication why it's not working as expected.

Patrick Dixon
2008-12-03, 02:04
Neither
[flac] -dcs $START$ $END$ -- $FILE$ | [sox] -t wav - -t flac - $RESAMPLE$

nor
[flac] -dcs $START$ $END$ -- $FILE$ | [sox] -t wav - -t flac RESAMPLE$ -

modifications to covert.conf work for me. I still end up with Lame.exe-dependent resampling. This is using sox 14.2 + its associated dll file. I think I'll have to wait for 7.3.1

MS

BTW, you also have to change the RESAMPLE definition on the line above for the second case, and it looks like you are missing a $ before RESAMPLE above, so it might be worth treble checking your modifications.

MadScientist
2008-12-03, 03:22
You could try disabling flac->mp3 and flac->wav to see if that forces it to flac transcode.

Disabling flac->mp3 stops 24/88 files from playing


The other thing to try is to enable info logging on player.source and check the log. This should show what coder/transcoder SC is choosing from convert.conf and give you an indication why it's not working as expected.

Good suggestion. When I've worked out how to do it, I'll look at the output

Thanks for help

MS

Patrick Dixon
2008-12-03, 07:01
If it stops the files from playing it proves it doesn't like your flac transcode line ... which is what happened to me initially too.

To change the logging, go to settings>advanced>logging and scroll down to player.source

You can view the log on the same page, or from settings>information at the bottom of the page

MadScientist
2008-12-03, 14:07
This is the log file I get. Looks like it's going through the standard lame conversion even though I've made all the changes (treble checked) as per Phil's post no.42

MS

_Symphony_No_38_in_D_major_Prague_K_504_-_I_Adagio_-_Allegro.flac
[08-12-03 20:37:34.2443] Slim::Player::TranscodingHelper::getConvertCommand 2 (454) Matched: flc->mp3 via: [flac] -dcs $START$ $END$ -- $FILE$ | [lame] --silent -q $QUALITY$ $RESAMPLE$ -v $BITRATE$ - -
[08-12-03 20:37:34.2466] Slim::Player::TranscodingHelper::getConvertCommand 2 (454) Matched: flc->mp3 via: [flac] -dcs $START$ $END$ -- $FILE$ | [lame] --silent -q $QUALITY$ $RESAMPLE$ -v $BITRATE$ - -
[08-12-03 20:37:34.2473] Slim::Player::Song::open (323) seek=false time=0 canSeek=2
[08-12-03 20:37:34.2493] Slim::Player::TranscodingHelper::getConvertCommand 2 (454) Matched: flc->mp3 via: [flac] -dcs $START$ $END$ -- $FILE$ | [lame] --silent -q $QUALITY$ $RESAMPLE$ -v $BITRATE$ - -
[08-12-03 20:37:34.2501] Slim::Player::Song::open (340) Transcoder: streamMode=F, streamformat=mp3
[08-12-03 20:37:34.2526] Slim::Player::Song::open (457) Tokenized command "C:\Program Files\SqueezeCenter\server\Bin\MSWin32-x86-multi-thread\flac.exe" -dcs -- "E:\CDs\MOZART~1\MOZART~2\01_-_S~1.FLA" | "C:\Program Files\SqueezeCenter\server\Bin\MSWin32-x86-multi-thread\lame.exe" --silent -q 0 --resample 44.1 -v - -
[08-12-03 20:37:34.2556] Slim::Player::Pipeline::new (93) Launching process with command: "C:\Program Files\SqueezeCenter\server\Bin\MSWin32-x86-multi-thread\socketwrapper.exe" -d -w -o 1288 -c "\"C:\Program Files\SqueezeCenter\server\Bin\MSWin32-x86-multi-thread\flac.exe\" -dcs -- \"E:\CDs\MOZART~1\MOZART~2\01_-_S~1.FLA\" | \"C:\Program Files\SqueezeCenter\server\Bin\MSWin32-x86-multi-thread\lame.exe\" --silent -q 0 --resample 44.1 -v - -"
[08-12-03 20:37:34.3086] Slim::Player::StreamingController::_Stream (941) 00:04:20:06:55:b4: stream

Patrick Dixon
2008-12-03, 15:38
We need to see the bit of the log where it checks flac>flac transcode, to try and figure out why it doesn't go for that in preference.

MadScientist
2008-12-04, 12:08
We need to see the bit of the log where it checks flac>flac transcode, to try and figure out why it doesn't go for that in preference.

Of course, silly me. I'm afraid it doesn't help me that much.

[08-12-03 20:37:34.2493] Slim::Player::TranscodingHelper::getConvertCommand 2 (454) Matched: flc->mp3 via: [flac] -dcs $START$ $END$ -- $FILE$ | [lame] --silent -q $QUALITY$ $RESAMPLE$ -v $BITRATE$ - -
[08-12-03 20:37:34.2501] Slim::Player::Song::open (340) Transcoder: streamMode=F, streamformat=mp3
[08-12-03 20:37:34.2526] Slim::Player::Song::open (457) Tokenized command "C:\Program Files\SqueezeCenter\server\Bin\MSWin32-x86-multi-thread\flac.exe" -dcs -- "E:\CDs\MOZART~1\MOZART~2\01_-_S~1.FLA" | "C:\Program Files\SqueezeCenter\server\Bin\MSWin32-x86-multi-thread\lame.exe" --silent -q 0 --resample 44.1 -v - -
[08-12-03 20:37:34.2556] Slim::Player::Pipeline::new (93) Launching process with command: "C:\Program Files\SqueezeCenter\server\Bin\MSWin32-x86-multi-thread\socketwrapper.exe" -d -w -o 1288 -c "\"C:\Program Files\SqueezeCenter\server\Bin\MSWin32-x86-multi-thread\flac.exe\" -dcs -- \"E:\CDs\MOZART~1\MOZART~2\01_-_S~1.FLA\" | \"C:\Program Files\SqueezeCenter\server\Bin\MSWin32-x86-multi-thread\lame.exe\" --silent -q 0 --resample 44.1 -v - -"
[08-12-03 20:37:34.3086] Slim::Player::StreamingController::_Stream (941) 00:04:20:06:55:b4: stream
[08-12-03 20:37:34.3114] Slim::Player::StreamingController::_Stream (970) Song queue is now 0,0
[08-12-03 20:37:34.3126] Slim::Player::StreamingController::_setPlayingStat e (1763) new playing state BUFFERING
[08-12-03 20:37:34.3134] Slim::Player::StreamingController::_setStreamingSt ate (1776) new streaming state STREAMING
[08-12-03 20:37:34.6903] Slim::Player::Pipeline::acceptReader (199) Pipeline reader connected
[08-12-03 20:37:36.2487] Slim::Player::StreamingController::playerTrackStar ted (1598) 00:04:20:06:55:b4
[08-12-03 20:37:36.2495] Slim::Player::StreamingController::_setPlayingStat e (1763) new playing state PLAYING
[08-12-03 20:37:36.2502] Slim::Player::StreamingController::_Playing (346) Song 0 is not longer in the queue
[08-12-03 20:37:36.2511] Slim::Player::StreamingController::_Playing (352) Song 0 has now started playing
[08-12-03 20:37:36.2528] Slim::Player::StreamingController::_Playing (379) Song queue is now 0
[08-12-03 20:42:08.1877] Slim::Player::StreamingController::pause (1546) 00:04:20:06:55:b4
[08-12-03 20:42:08.1885] Slim::Player::StreamingController::_setPlayingStat e (1763) new playing state PAUSED


MS

Phil Leigh
2008-12-05, 11:27
You did put this into convert.conf, didn't you? - the hashes comment out the lines:

#mp3 mp3 transcode *
# IFB:{BITRATE=-B %B}D:{RESAMPLE=--resample %D}
# [lame] --silent -q $QUALITY$ -v $BITRATE$ $RESAMPLE$ --mp3input $FILE$ -


this diables the MP3/Lame convert for non standard bit rates...

MadScientist
2008-12-05, 11:56
You did put this into convert.conf, didn't you? - the hashes comment out the lines:

#mp3 mp3 transcode *
# IFB:{BITRATE=-B %B}D:{RESAMPLE=--resample %D}
# [lame] --silent -q $QUALITY$ -v $BITRATE$ $RESAMPLE$ --mp3input $FILE$ -


this diables the MP3/Lame convert for non standard bit rates...


Yes, the business bit of the file below:-

# specific combinations match before wildcards

mov mp3 * *
# FRB:{BITRATE=-B %B}
[mov123] $FILE$ | [lame] --resample 44100 --silent -q $QUALITY$ $RESAMPLE$-v $BITRATE$ -r --big-endian - -

alc mp3 * *
# FB:{BITRATE=-B %B}D:{RESAMPLE=--resample %D}
[alac] $FILE$ | [lame] --silent -q $QUALITY$ $RESAMPLE$ -v $BITRATE$ - -

ogg mp3 * *
# IFB:{BITRATE=-B %B}D:{RESAMPLE=--resample %D}
[sox] -t ogg $FILE$ -t wav -w - | [lame] --silent -q $QUALITY$ $RESAMPLE$ -v $BITRATE$ - -

wav mp3 * *
# IFB:{BITRATE=-B %B}D:{RESAMPLE=--resample %D}
[lame] --silent -q $QUALITY$ $RESAMPLE$ -v $BITRATE$ $FILE$ -

aif mp3 * *
# IFB:{BITRATE=-B %B}D:{RESAMPLE=--resample %D}
[lame] --silent -q $QUALITY$ $RESAMPLE$ -v $BITRATE$ $FILE$ -

flc mp3 * *
# FB:{BITRATE=-B %B}T:{START=--skip=%t}U:{END=--until=%v}D:{RESAMPLE=--resample %D}
[flac] -dcs $START$ $END$ -- $FILE$ | [lame] --silent -q $QUALITY$ $RESAMPLE$ -v $BITRATE$ - -

wma mp3 * *
# F:{PATH=%f}R:{PATH=%F}B:{BITRATE=-B %B}D:{RESAMPLE=--resample %D}
[wmadec] -w $PATH$ | [lame] --silent -q $QUALITY$ $RESAMPLE$ -v $BITRATE$ - -

mpc mp3 * *
# IRB:{BITRATE=-B %B}D:{RESAMPLE=--resample %D}
[mppdec] --silent --prev --gain 3 - - | [lame] --silent -q $QUALITY$ $RESAMPLE$ -v $BITRATE$ - -

ape mp3 * *
# FB:{BITRATE=-B %B}D:{RESAMPLE=--resample %D}
[mac] $FILE$ - -d | [lame] --resample 44100 $-x$ --silent -q $QUALITY$ $RESAMPLE$ -v $BITRATE$ - -

wvp mp3 * *
# FB:{BITRATE=-B %B}T:{START=--skip=%t}U:{END=--until=%v}D:{RESAMPLE=--resample %D}
[wvunpack] $FILE$ -wq $START$ $END$ -o - | [lame] --silent -q $QUALITY$ $RESAMPLE$ -v $BITRATE$ - -

mp3 mp3 * *
-

# Non-mp3 starts here
aif aif * *
-

wav wav * *
-

flc wav * *
# FT:{START=--skip=%t}U:{END=--until=%v}
[flac] -dcs --force-raw-format --endian=little --sign=signed $START$ $END$ -- $FILE$

ogg ogg * *
-

ogg aif * *
[sox] -t ogg $FILE$ -t raw -r 44100 -c 2 -w -s $-x$ -

wma wav * *
# F:{PATH=%f}R:{PATH=%F}
[wmadec] -r 44100 -b 16 -n 2 $PATH$

mpc wav * *
# IR
[mppdec] --raw-le --silent --prev --gain 2 - -

ape wav * *
# F
[mac] $FILE$ - -d

mpc aif * *
# IR
[mppdec] --raw-be --silent --prev --gain 2 - -

alc wav * *
# F
[alac] -r $FILE$

wvp wav * *
# FT:{START=--skip=%t}U:{END=--until=%v}
[wvunpack] $FILE$ -rq $START$ $END$ -o -

## you can comment this out if you want to use LAME to transcode AAC/MOV files to MP3.
mov aif * *
# FR
[mov123] $FILE$

wma wma * *
-

# FLAC output starts here

#mp3 flc * *
# [lame] --mp3input --decode -t --silent $FILE$ - | [flac] -cs --totally-silent --compression-level-0 -

flc flc * *
-

aif flc * *
# FT:{START=--skip=%t}U:{END=--until=%v}
[flac] -cs --totally-silent --compression-level-0 $START$ $END$ -- $FILE$

wav flc * *
# FT:{START=--skip=%t}U:{END=--until=%v}
[flac] -cs --totally-silent --compression-level-0 $START$ $END$ -- $FILE$

ogg flc * *
# IFRD:{RESAMPLE=-r %d}
[sox] $RESAMPLE$ -t ogg $FILE$ -t wav - | [flac] -cs --compression-level-0 --totally-silent -

wma flc * *
# F:{PATH=%f}R:{PATH=%F}
[wmadec] -w $PATH$ | [flac] -cs --totally-silent --compression-level-0 -

mpc flc * *
# IR
[mppdec] --silent --prev --gain 2 - - | [flac] -cs --totally-silent --compression-level-0 -

ape flc * *
# F
[mac] $FILE$ - -d | [flac] -cs --totally-silent --compression-level-0 -

mov flc * *
# FR
[mov123] $FILE$ | [flac] -cs --totally-silent --compression-level-0 --endian big --sign signed --channels 2 --bps 16 --sample-rate 44100 -

alc flc * *
# F
[alac] $FILE$ | [flac] -cs --totally-silent --compression-level-0 -

wvp flc * *
# FT:{START=--skip=%t}U:{END=--until=%v}
[wvunpack] $FILE$ -wq $START$ $END$ -o - | [flac] -cs --totally-silent --compression-level-0 -

# special case for smart bitrates on mp3 input
#mp3 mp3 transcode *
# IFB:{BITRATE=-B %B}D:{RESAMPLE=--resample %D}
# [lame] --silent -q $QUALITY$ -v $BITRATE$ $RESAMPLE$ --mp3input $FILE$ -

flc flc transcode *
# FT:{START=--skip=%t}U:{END=--until=%v}D:{RESAMPLE=-r %d}
[flac] -dcs $START$ $END$ -- $FILE$ | [sox] -t wav - -t flac $RESAMPLE$

# This example transcodes MP3s to MP3s, if the target machine has the
# given MAC address. This rule will take precedence over the
# previous rule because it's more specific.
#mp3 mp3 squeezebox 00:02:dd:34:e9:62
# ./brute_filter $FILE$ -

Patrick Dixon
2008-12-05, 13:15
You need a "-" after that $RESAMPLE$


# special case for smart bitrates on mp3 input
mp3 mp3 transcode *
# IFB:{BITRATE=-B %B}D:{RESAMPLE=--resample %D}
[lame] --silent -q $QUALITY$ -v $BITRATE$ $RESAMPLE$ --mp3input $FILE$ -

flc flc transcode *
# FT:{START=--skip=%t}U:{END=--until=%v}D:{RESAMPLE=-r %d}
[flac] -dcs $START$ $END$ -- $FILE$ | [sox] -t wav - -t flac $RESAMPLE$ -

# This example transcodes MP3s to MP3s, if the target machine has the
# given MAC address. This rule will take precedence over the
# previous rule because it's more specific.
#mp3 mp3 squeezebox 00:02:dd:34:e9:62
# ./brute_filter $FILE$ -

MadScientist
2008-12-05, 14:05
Thanks for the suggestion Patrick, but no joy - it's still doing its 320kbps lame coversion.

MS

amcluesent
2008-12-28, 04:47
I found that 7.3.1 was server-side resampling 24/96 FLAC to 320kps MP3.

The 7.3.2 nightly (I got 24415) had re-written the convert.conf file to implement FLAC-FLAC resampling. Worked fine once I'd tracked down cygwin1.dll from the SoX distribution.