DIGWASH

/// Trust pages · lossy sources

Lossy is a fact.
Not a verdict.

DigWash never forces lossless. A well-encoded lossy file is completely usable in a real set, and the report says so in plain, neutral ink. What the tool refuses to do is pretend all lossy is equal: this page publishes the exact bitrate bars the beta uses, the physics behind them, and the one thing conversion will never do about any of it. The stance in one line: playable, but know what you have.

§ The rule

No purity test.

"Lossy = bad" is an audiophile reflex, not a booth fact. The rule DigWash actually applies has four parts:

No forcing

DigWash never refuses a lossy file, never converts it to lossless to "fix" it, and never makes lossless a requirement for anything. The presets convert for deck compatibility, not for format purity — a 320 kbps MP3 that every deck plays is left exactly alone.

Lossy is not a verdict

Plenty of lossy files are completely usable in real DJ sets. A decent lossy source shows up in the report as a fact about the source — SOURCE: LOSSY AAC 257k — printed in the same neutral ink as a sample rate. Informative, not a warning.

Warnings are earned

A lossy file only draws a flag when a measurement crosses one of the bars published below — never because of its file extension. The severity comes from the engine's one classifier; no surface of the tool re-judges it.

The stance

"Playable, but know what you have." You decide what belongs in your crate. DigWash's job is to make sure the decision is made with the facts on the table, before the booth makes them audible.

§ The beta thresholds

Codec-aware, on purpose.

One flat bitrate bar for all codecs would be dishonest: encoder efficiency differs sharply. 128 kbps from a modern AAC or Opus encoder is near-transparent territory; 128 kbps MP3 is audibly damaged. So the bars are per codec — this is the exact table in the current build:

CodecReads cleanFlagged "low"Reads "deadly"
MP3 ≥ 320 kbpsbelow 320 kbps≤ 128 kbps
Vorbis (OGG) ≥ 320 kbpsbelow 320 kbps≤ 128 kbps
AAC ≥ 256 kbpsbelow 256 kbps≤ 96 kbps
Opus ≥ 160 kbpsbelow 160 kbps≤ 64 kbps

source: quality.py · LOSSY_BITRATE_BARS, lossy_bitrate_tier

Clean

At or above the codec's safe bar, the bitrate raises no flag at all. The file falls through to the same level checks as a lossless file, and a good one gets the same "looks usable" read. A 320 kbps MP3 or a 256 kbps AAC is not a second-class citizen here.

Low

Below the safe bar, the report flags it in the engine's own words: "lossy mp3 at 256 kbps, below the 320 kbps safe bar for this codec; not a strong archive candidate." It will very likely play fine tonight — the flag is about what you are building a library on.

Deadly

At or below the deadly bar the wording stops being polite: "severely degraded: 128 kbps mp3; audible artifacts likely on a loud system — re-dig for a better source." The verdict escalates and the recommended action becomes "Re-dig a better source — conversion won't restore detail." Deadly means deadly on a club PA, not deadly on laptop speakers.

§ The physics

Where the treble stops.

A lossy encoder saves bits by discarding what a psychoacoustic model bets you won't miss — and at low bitrates the cheapest discard is the top of the spectrum. The result is measurable: a hard low-pass cliff at a frequency that depends on codec and bitrate.

~16.7 kHz

128 kbps MP3

The encoder's low-pass leaves a hard cliff — everything above it is simply gone. Measured at 16.4 kHz on our 130-track validation corpus; 96 kbps cuts even lower, at ~15.2 kHz.

~19–20 kHz

320 kbps MP3

The low-pass moves up to the edge of hearing — 19.3 kHz measured on the same corpus. This is why 320 kbps reads clean: what it discards sits where mastered music barely has energy anyway.

~20–22 kHz

Genuine lossless

No encoder low-pass at all. Spectral energy fades where the master fades — most mastered music keeps air up to 18–21 kHz — instead of stopping at a wall.

source: quality.py · LOW_ROLLOFF_HZ and roll-off comments, validated on a 130-track corpus

The cliff survives a lossless disguise

The MP3 low-pass sits at a fixed frequency, not at a fraction of the sample rate — so a 128 kbps MP3 re-encoded as a 96 kHz FLAC still shows its ~16.7 kHz cliff. That is the "Is it what it claims?" check: a lossless-declared file whose energy stops in a hard cliff below 17 kHz is flagged in the engine's words as having "very little energy above 16 kHz; likely a lossy source inside a lossless wrapper." The check is deliberately conservative and explicitly a listen-check prompt, not a conviction — some genuine masters are just dark — which is why it ships at low confidence and asks for your ears.

§ The hard limit

Conversion restores nothing.

Whatever an encoder discarded is gone. Converting a 128 kbps MP3 to AIFF, FLAC or anything else produces a bigger file with the same 16.7 kHz cliff — playable on more decks, identical to the ear. DigWash will make that compatibility copy when a deck needs it, and will keep saying what the source is. Bad sources stay bad sources; the fix is a better dig, not a better container. The full chain — what a conversion does and the complete list of what it never does — is on the conversion page.

§ "For now," meant literally

Beta bars, stated as beta bars.

These thresholds are the beta defaults, grounded in the published codec-transparency evidence behind our checks — not tablets from a mountain. They draw one honest line per codec; they do not know your ears, your genres or your booth. A calibration layer planned for V1 will let the bars adapt to reference tracks you pick from your own library, so "good enough" gets measured against what you actually play. Until then: these are the numbers, this page is where they change, and if your experience contradicts a bar, the beta survey is exactly where to say so.

§ Continue

The other proofs.

Conversion chainWhat a compatibility copy actually does to the audio — and what it never does. Deck compatibilityThe five deck families and exactly which formats each one plays. Get the betaFree during the beta · offline · pay what you want.