/// 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:
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 bars compare against the file's average bitrate — VBR encodings vary moment to moment — which is exactly why the wording stays advisory rather than absolute.
- Source quality and deck compatibility are separate questions: a 160 kbps Opus file reads clean as a source and still needs a compatibility copy, because no CDJ we track plays Opus at any bitrate — see the compatibility matrix.
- "Deadly" never blocks anything. The file stays in your crate, converts if a deck needs it, plays if you play it. The report just refuses to call it clean.
§ 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.