Menu

#230 Feature request: ISO DST & 48k base rate support

2.0.x
open
nobody
None
1
2026-06-22
2026-06-21
Anonymous
No

Dear Maxim,

Would it be possible to add two features to foo_input_sacd?

ISO DST64@48k playback — The plugin currently doesn't support DST64@48K-compressed SACD ISOs. Would be great if the DSD decoder path could handle DST frames from ISO just like it does from DSF/DFF.

48k base rate — DSD64@48k (3.072MHz) and corresponding frame size (640 samples) isn't supported. The get_samplerate() in udsd_reader_sacd.cpp returns hardcoded 2,822,400 regardless of sample_frequency in Area TOC, and adjust_output() uses fixed / 44100 for PCM conversion.

These two would make the plugin work with modern SACD releases that use 48k mastering and DST compression.

Thanks for your work on this plugin!

1 Attachments

Discussion

  • Maxim V.Anisiutkin

    Yes, sure. We just need to agree on area->area_toc->sample_frequency encoding. In SACD spec it has fixed value 4. In attached ISO this value is 14. Is there any consistent schema for other sample frequencies?

     
  • Anonymous

    Anonymous - 2026-06-21

    Dear Maxim,

    sample_frequency in the Area TOC is defined by the Scarlet Book standard. The only defined value is 4 (44.1kHz base / DSD64). There is no official value for 48kHz base rates.

    In the attached ISO, the value is 14. I've seen this same value used by several different SACD releases mastered at 48kHz (both DSD64 and DST-compressed variants), which suggests it has become an informal convention among authoring tools.

    My suggestion: adopt a simple linear scheme that keeps 4 and 14 as-is, and extends cleanly to higher rates:

    • 4 = DSD64 (44.1kHz base, 2,822,400 Hz) — Scarlet Book standard
    • 14 = DSD64 (48kHz base, 3,072,000 Hz) — observed convention
    • 5 / 15 = DSD128 (44.1k / 48k base)
    • 6 / 16 = DSD256 (44.1k / 48k base)
    • ...

    Alternatively, if you prefer a bitfield approach:

    • Bits 0–3: rate multiplier (e.g. 0 = 1×/DSD64, 1 = 2×/DSD128, 2 = 4×/DSD256)
    • Bit 4: base rate (0 = 44.1kHz, 1 = 48kHz)

    But I think the simple enumeration is cleaner and matches what the existing files already use.

    We'd implement the same mapping on our end, so it'll be fully compatible.

    Tks, Good Luck for U.

     
  • Maxim V.Anisiutkin

    Ok, let's start with 4/14 scheme. v2.0.25.

     

Anonymous
Anonymous

Add attachments
Cancel