Hi Maxim,
I’ve been troubleshooting persistent error with DSD Converter (both v0.3.4 and v0.3.5):
DSD Converter failure: Invalid parameters
All required plugins are installed and up to date:
Input SACD
DSD Processor
ASIO+DSD
Metadata & Stream Inspection:
Upon reviewing the file with a HEX editor:
Most header fields (e.g., sample rate) were missing.
The audio stream contained predominantly junk data, with many blocks filled with repeated AA filler.
This led me to suspect the issue was with the audio stream itself, not metadata.
Control Test: MP3 Input
I tested the same conversion process with an MP3 file — and it worked perfectly. That further pointed to something specific about FLAC causing the error.
Hypothesis: FLAC Stream Compression
FLAC isn't a raw PCM stream but a compressed container (like ZIP). I believe DSD Converter, when used offline, is unable to decompress FLAC internally — unlike Foobar which typically decodes the PCM stream before handing it off to DSD Processor in standard scenarios (it is my assumption).
Confirmation via FFmpeg:
I used FFmpeg to manually uncompress the FLAC file:
ffmpeg -i input.flac -compression_level 0 -c:a flac uncompressed.flac
The resulting FLAC worked successfully with DSD Converter
This suggests the error is caused by DSD Converter receiving compressed FLAC it cannot properly decode, resulting in stream corruption during processing.
TL;DR: Compressed FLACs consistently fail, while uncompressed ones succeed — pointing to a decoding gap in offline DSD conversion.
Best regards, Petrina Riccardo
PS.
Behavior Observed via Process Monitor (SysInternals):
I captured the file operations during conversion, and noticed the following sequence:
Desired Access: Read Attributes, Delete Disposition: Open Options: Non-Directory File, Open Reparse Point ShareMode: Read, Write, Delete OpenResult: Opened
File Attributes: A ReparseTag: 0x0
Flags: FILE_DISPOSITION_DELETE, FILE_DISPOSITION_POSIX_SEMANTICS
It seems DSD Converter attempts to read the file, queries the ReparseTag, and then flags it for deletion. This deletion happens silently, which was unexpected.
Anonymous
I've identified an additional, consistent trigger for DSD Converter failure: Invalid parameters — namely, waveform behavior at the very start of the audio stream.
Files beginning with immediate high amplitude — no silence or fade-in — often crash the converter. In one case, the waveform hit near-maximum volume at sample 1. After inserting a brief silent lead-in and gradual fade using Audacity, conversion succeeded.
This suggests the SDM may not handle abrupt signal ramps before internal stabilization. Even re-encoding alone (e.g., via FFmpeg) doesn't solve this having tried even manually converting to PCM stream and back; even cleaning up the header with a HEX editor. Unless the waveform itself is softened at the start, it will crash.
Your program is awesome, but more descriptive errors would go a long way in helping users pinpoint the issue, understand where in the chain it starts, and troubleshoot efficiently.
We're glad to play a small part in supporting your work by sharing what we've observed.
Best regards, Petrina Riccardo
P.S. Maybe an extreme DSD like 1024 would help but I did not want to wait the time.