Examining the new Sony Walkman’s DSF files

Background context
The Sony digital media player (called the Walkman, not to be associated with the original Walkman CD player) comes with 2 sample DSF files.
DSF files were introduced by Sony in 2005 but are relatively uncommon, outside of Sony products.
Rust
I didn’t find many open source tools that can read DSF files, but I found this awesome Rust crate that can.
Here’s the code snippet I used:
fn main() {
let dsf_filepath_raw: String = std::env::args()
.nth(1)
.expect("Missing first parameter: DSF file path");
let dsf_filepath = std::path::Path::new(&dsf_filepath_raw);
if !dsf_filepath.exists() {
panic!("No DSF file with that name '{}' exists", dsf_filepath_raw);
}
match dsf::DsfFile::open(&dsf_filepath) {
Ok(dsf_file) => {
println!("{}", dsf_file);
}
Err(error) => {
panic!("Error reading DSF file provided: {}", error);
}
}
}
Metadata
Running the code above on the 2 sample DSF files that ship with the Sony Walkman produces this output:
DSD chunk:
File size = 265230428 bytes
Metadata offset = 265158748 bytes
Fmt chunk:
Channel type = Stereo: FL, FR.
Channel number = 2
Sampling frequency = 2822400 Hz
Bits per sample = 1
Sample count per channel = 1060621232
Block size per channel = 4096 bytes
Calculated duration = 00:06:15;2221232 h:min:s;samples
Data chunk:
Data chunk size = 265158668 bytes
ID3Tag:
TSSE: Software/Hardware and settings used for encoding = Text: KORG AudioGate ver.3.0.2 (Windows 7)
TDAT: Date = Text: 2705
TIME: Time = Text: 1708
TXXX: User defined text information frame = Extended text:
Description = REPLAYGAIN_TRACK_GAIN
Value = -0.33 dB
TXXX: User defined text information frame = Extended text:
Description = REPLAYGAIN_TRACK_PEAK
Value = 1.014565
TXXX: User defined text information frame = Extended text:
Description = REPLAYGAIN_ALBUM_GAIN
Value = -0.33 dB
TXXX: User defined text information frame = Extended text:
Description = REPLAYGAIN_ALBUM_PEAK
Value = 1.014565
COMM: Comments = Comment:
Language =
Description =
Text =
TIT2: Title/songname/content description = Text: Paddy Fahey's
TPE1: Lead performer(s)/Soloist(s) = Text: Adam Agee & Jon Sousa
TYER: Year = Text: 2014
TALB: Album/Movie/Show title = Text: Suantrai
TPE2: Band/orchestra/accompaniment = Text: Adam Agee & Jon Sousa
TCON: Content type = Text: Celtic
TSOT: Title sort order = Text: Paddy Faheys
TPOS: Part of a set = Text: 1
TRCK: Track number/Position in set = Text: 11
APIC: Attached picture = Picture:
Type = Other
Description = 1
MIME type = image/jpeg
Size = 59117 bytes
GEOB: General encapsulated object = Encapsulated Object: 10348 bytes
DSD chunk:
File size = 115864668 bytes
Metadata offset = 115818588 bytes
Fmt chunk:
Channel type = Stereo: FL, FR.
Channel number = 2
Sampling frequency = 2822400 Hz
Bits per sample = 1
Sample count per channel = 463261480
Block size per channel = 4096 bytes
Calculated duration = 00:02:44;387880 h:min:s;samples
Data chunk:
Data chunk size = 115818508 bytes
ID3Tag:
TIME: Time = Text: 0000
TSSE: Software/Hardware and settings used for encoding = Text: KORG AudioGate ver.2.3.2 (Mac OS X10.8 Intel)
TDAT: Date = Text: 0101
COMM: Comments = Comment:
Language =
Description =
Text =
TIT2: Title/songname/content description = Text: Don't Drift Too Far
TPE1: Lead performer(s)/Soloist(s) = Text: Elephant Revival
TYER: Year = Text: 2012
TALB: Album/Movie/Show title = Text: It's Alive!
TPE2: Band/orchestra/accompaniment = Text: Elephant Revival
TCON: Content type = Text: Folk-Bluegrass
TSOT: Title sort order = Text: Dont Drift Too Far
TSOA: Album sort order = Text: Its Alive!
TPOS: Part of a set = Text: 1
TRCK: Track number/Position in set = Text: 11
APIC: Attached picture = Picture:
Type = Front cover
Description = 1
MIME type = image/jpeg
Size = 40948 bytes
GEOB: General encapsulated object = Encapsulated Object: 3700 bytes
Files
Lastly, if you’d like to download the sample files themselves, they’re located on my S3 bucket:
https://sony-walkman-a306-sample-dsf-files.s3.us-west-1.amazonaws.com/Don’t+Drift+Too+Far.dsf
https://sony-walkman-a306-sample-dsf-files.s3.us-west-1.amazonaws.com/Paddy+Fahey’s.dsf
Leave a comment