3 minute read

Sony Walkman NWA306

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

Tags:

Updated:

Leave a comment