How to Use the Aiff Validator: Step-by-Step Tutorial
The Aiff Validator runs entirely in your browser โ your audio file is never sent to any server, no account is required, and nothing leaves your machine. This tutorial walks through every step of using the tool: loading an AIFF file, reading each results panel, understanding what the validator checks, and diagnosing the issues it reports.
Follow along with the tool open: Open the Aiff Validator in a second tab, then work through each step below.
Open Aiff Validator โTable of Contents
Step 1 โ Open the Tool
Navigate to /developer-tools/aiff-validator/. The tool loads entirely in the browser โ after the initial page load, validating a file makes zero outbound network requests. You can confirm this in the browser's DevTools Network panel: drop a file and watch the network tab remain idle.
The tool is accessible from the Developer Tools hub, the command palette (press Ctrl+K or โK and type "Aiff Validator"), or directly via the URL above.
Step 2 โ Load Your AIFF File
Drag your .aiff or .aif file from your file manager and drop it anywhere on the drop zone. The drop zone is labeled with an audio icon and prompts you to drop an AIFF file. A visual highlight confirms the file is being received. Both .aiff and .aif extensions are accepted.
If you drop a file that is not an AIFF file โ an MP3, WAV, FLAC, or any other format โ the tool shows a type error message identifying the actual file extension and explaining why it was rejected.
Once a valid file is dropped, click the Validate AIFF button to run validation. The validator reads the IFF chunk structure and produces results within a second for most files.
Removing a file: Once a file is loaded, an โ button appears next to the filename. Click it to clear the file and reset the tool so you can load a different file. You can also click the Clear button.
Step 3 โ Read the Status Bar
After validation runs, a status bar appears below the buttons. It is colour-coded to give you an immediate answer:
- Green โ "Valid AIFF โ no issues found." (or "Valid AIFF-C") The file passed all checks: the FORM chunk is correctly formed with a valid type field, the mandatory COMM chunk is present and readable, audio parameters are within valid ranges, and no structural anomalies were detected.
- Yellow โ "Valid AIFF โ N warning(s). See details below." The file is structurally valid but the validator found conditions worth noting โ for example, a missing SSND chunk, an unusual sample rate, or an SSND non-zero offset. See the Warnings panel for specifics.
- Red โ error message. The file failed a required check. The status bar shows a concise description of the fatal error. More detail appears in the Error panel below.
Step 4 โ Review the Error Panel
If validation fails, the Error panel appears below the status bar with a red header. It describes what went wrong with enough detail to diagnose the root cause. Common error messages and what they mean:
"File does not start with 'FORM'"
The first four bytes of the file are not the IFF FORM identifier. The file is not a valid AIFF or AIFC file. The validator reports what it found instead and provides helpful hints: if the file begins with RIFF, it is a WAV file; if it begins with an ID3 header, it is an MP3 file with a leading ID3 tag. Confirm the file is actually an AIFF file before validating โ check the source export settings or use a hex editor to inspect the first four bytes.
"FORM type is '[value]' โ expected 'AIFF' or 'AIFC'"
The file begins with a valid FORM chunk but the four-byte type field is neither AIFF nor AIFC. This means the file is an IFF container of a different kind โ for example, an 8SVX sampler file, an ILBM image, or another IFF-based format. Confirm the file is an audio AIFF file from its source.
"No COMM (Common) chunk found"
The COMM chunk is mandatory in every valid AIFF file. If it is missing, the file has no audio parameter information โ the validator cannot determine the sample rate, bit depth, channel count, or duration. This typically indicates a severely corrupt file or a partial write (the file was written and closed before the COMM chunk was flushed). If you have access to the original session or export settings, re-export from the source.
"COMM chunk is too small"
A COMM chunk was found but it is smaller than the minimum valid size of 18 bytes. The file is corrupt โ the chunk was likely truncated during a failed write. Re-export from the source.
Step 5 โ Review the Warnings Panel
If warnings were detected, a yellow Warnings panel appears listing each one. Warnings do not mean the file is broken โ the AIFF structure is intact โ but they flag conditions that may cause issues in specific contexts:
"No SSND (Sound Data) chunk found"
The SSND chunk holds the actual audio samples. A file without an SSND chunk has no audio data โ it has valid structural metadata (COMM chunk, possibly text chunks) but nothing to play. This occasionally happens with AIFF template files or files that were written only partially before a session crash. The file structure is technically valid but the file is silent.
"FORM chunk declares a size of N bytes but the file is only M bytes"
The FORM header's declared size does not match the actual file size โ the file is shorter than it claims to be. This is the primary indicator of a truncated download or a failed transfer. The COMM chunk may have been written correctly, giving you readable audio parameters, but the SSND chunk may be incomplete. Re-download or re-export the file before using it.
"SSND offset is N (non-zero)"
The SSND chunk's offset field is non-zero, meaning the audio data starts N bytes into the SSND payload rather than immediately. This is technically valid but unusual โ most standard AIFF files set the offset to zero. Non-zero offsets are associated with some legacy block-aligned recording formats. If a downstream system has trouble reading the audio data, re-encode with an offset of zero.
"numSampleFrames is 0 in COMM"
The COMM chunk declares zero sample frames. Combined with a present SSND chunk, this indicates the COMM chunk was written before recording completed and was never updated with the final frame count โ a common failure mode when a DAW crashes during a recording session. The audio data may still be present in the SSND chunk, but the declared duration is zero. Re-open in a DAW and re-export to regenerate correct COMM values.
"Channel count of N is unusual" / "Bit depth of N is unusual"
The declared channel count or bit depth is outside the typical range for professional and consumer AIFF files. These are sanity-check warnings โ technically the value is present in the COMM chunk, but it is unlikely to be intentional. Confirm the export settings match the intended audio specification.
Step 6 โ Read the Valid File Details
When a file passes validation (green or yellow status), a teal "Valid AIFF" or "Valid AIFF-C" panel appears showing the audio parameters read from the COMM chunk:
- Format. Either AIFF (standard, uncompressed) or AIFF-C (compressed variant). Determined by the FORM type field (
AIFFvs.AIFC). - Codec. For AIFF, always PCM (big-endian). For AIFF-C, the compression type code decoded from the COMM chunk โ e.g., PCM (big-endian), PCM (little-endian), 32-bit IEEE float, A-law 2:1, ยต-law 2:1, or IMA ADPCM.
- Sample Rate. In Hz โ decoded from the 80-bit extended-precision float in the COMM chunk. Common values: 44100 Hz, 48000 Hz, 96000 Hz, 192000 Hz.
- Bit Depth. The number of bits per sample, read from the COMM chunk. Typical values: 16-bit (CD quality), 24-bit (high-resolution professional), 32-bit (floating-point masters).
- Channels. The number of audio channels โ 1 (Mono), 2 (Stereo), or multi-channel configurations. The validator displays a human-readable label alongside the raw count.
- Duration. Calculated as numSampleFrames รท sampleRate, displayed in minutes:seconds format. This is the computed duration from the COMM chunk values โ compare it against the expected duration to detect truncation.
- Sample Frames. The total sample frame count from the COMM chunk. One frame = one set of samples across all channels.
- File Size. The total file size in KB, reported for reference.
Also displayed below the stats grid is the chunk inventory โ all IFF chunk IDs found in the file listed as pills (e.g., FORM, COMM, SSND, NAME, MARK, INST, ID3 ). This lets you see at a glance which optional chunks are present.
Cross-check the sample rate, bit depth, and channel count against your expectations and any delivery specification. If a supposed 24-bit file shows 16-bit, it was dithered or truncated during a conversion step. If the duration is shorter than expected, the file was truncated.
Step 7 โ Inspect the Metadata Panel
If the file contains embedded metadata โ either native AIFF text chunks or an embedded ID3v2 block โ a teal "Embedded Metadata" or "Embedded Metadata & ID3 Tags" panel appears. It shows a table with each metadata key and its value.
Native AIFF metadata chunks the validator reads and reports:
- Title โ from the
NAMEchunk - Author โ from the
AUTHchunk - Copyright โ from the
(c)chunk - Annotation โ from the
ANNOchunk (free-form notes) - Markers โ count of markers from the
MARKchunk - Base Note โ MIDI base note from the
INSTchunk, if present
If an ID3 chunk is present (written by Logic Pro, Pro Tools, and other modern DAWs), the ID3v2 frames are decoded and displayed alongside the native chunks. Common ID3 fields include Title (TIT2), Artist (TPE1), Album (TALB), Track Number (TRCK), Year (TDRC), Genre (TCON), and Comment (COMM). Cover art (APIC) is reported as present with its size but not displayed.
Use this panel to confirm metadata is present and correctly populated before delivering the file to a client, archiving it, or ingesting it into a media asset manager. Key things to check:
- Title is not blank or set to a raw filename
- Author / Artist is present and spelled consistently with your library
- Copyright is populated if the file will be distributed or licensed
- ID3 tags are present if the file will be ingested by a system that relies on them
Worked Examples
Example 1: AIFF master exported from a DAW with no metadata
Situation: You exported a stereo master from Pro Tools as an AIFF file. The file validates green โ sample rate, bit depth, and channels are correct โ but the Metadata panel shows nothing. A client receiving the file will have no title or rights information attached.
What to do: Open the file in a tag editor that supports AIFF metadata โ Kid3, Mp3tag, or your DAW's metadata editor. Add at minimum: Title (NAME or TIT2), Author/Artist (AUTH or TPE1), and Copyright ((c) or TCOP). Re-validate to confirm the Metadata panel now shows the correct fields. The chunk inventory in the Valid AIFF panel should now include NAME and/or ID3 in the chunk list.
Example 2: AIFF file from a download reports a truncated size warning
Situation: You downloaded an AIFF file from a sample library. The validator shows a yellow warning: "FORM chunk declares a size of N bytes but the file is only M bytes."
What to do: The file was truncated during download โ the FORM header was written at the start of the file with the final size, but the network transfer terminated before all audio data was written. Re-download the file. After re-downloading, drop it into the validator again to confirm the warning is gone and the computed duration matches the expected sample length.
Example 3: AIFF-C file rejected by a broadcast delivery system
Situation: You submitted an AIFF-C file to a broadcast delivery system. The system rejected it with an error about an unsupported compression type.
What to do: Drop the file into the Aiff Validator. Check the Codec field in the Valid AIFF-C panel. If the codec shows anything other than "PCM (big-endian)" or "PCM (little-endian)" โ for example, "IMA 4:1 ADPCM" or "A-law 2:1" โ the file uses a compressed codec that the broadcast system does not accept. Most professional broadcast specifications require uncompressed AIFF. Re-encode to uncompressed PCM using FFmpeg: ffmpeg -i input.aiff -c:a pcm_s24be output.aiff for 24-bit big-endian PCM. Re-validate to confirm the codec shows PCM (big-endian).
Example 4: AIFF file with zero-duration COMM but playable audio
Situation: A colleague's DAW crashed during a recording session. The recovered AIFF file plays back with audio but the Aiff Validator reports a warning: "numSampleFrames is 0 in COMM โ the file contains no audio samples." The duration shows as "โ".
What to do: This is a well-known DAW crash artifact. The COMM chunk was written at the start of recording with a placeholder frame count of 0, and the crash prevented the DAW from writing the correct frame count after the recording finished. The audio data is present in the SSND chunk โ the COMM chunk is simply incorrect. To fix: open the file in your DAW, let it import (most DAWs detect and correct this), then re-export as a new AIFF with a correctly populated COMM chunk. Re-validate the output to confirm a non-zero duration.
Example 5: Validating an AIFF archive for long-term storage
Situation: You are ingesting 200 AIFF files into a digital archive. You want to confirm all files are structurally intact, correctly parameterized, and have metadata attached before archiving.
What to do: Validate each file individually using the Aiff Validator. For a structured batch workflow: validate all files and document the results โ any file showing a red error or a truncation warning requires remediation before archiving. For each valid file, confirm the Valid AIFF panel shows the expected sample rate (e.g., 96,000 Hz for high-resolution archive), bit depth (24-bit), and channel count. Confirm the Metadata panel shows title, author, and copyright fields. Files missing metadata should be tagged before archiving. Only clear, fully-validated, fully-tagged files should enter the permanent archive.
Tips and Edge Cases
- AIFF vs. AIFF-C. Both formats use the same tool. The validator auto-detects which variant it is reading from the FORM type field (
AIFFvs.AIFC) and adjusts its parsing accordingly. AIFF-C files with theNONEcompression type are functionally equivalent to standard AIFF โ uncompressed PCM stored in an AIFC container. - The .aif extension. Both
.aiffand.aifare accepted. The shorter.aifextension is common on files created in older macOS environments and some Windows tools that truncate extensions to three characters. - Large files. AIFF files can be very large โ a 24-bit stereo recording at 96,000 Hz uses approximately 550 MB per hour of audio. The validator reads only the chunk headers and metadata sections; it does not load the entire audio payload into memory, so large files validate as quickly as small ones.
- Files with many ANNO chunks. The AIFF specification allows multiple ANNO (annotation) text chunks in a single file. The validator reads and reports the first ANNO chunk found.
- Sampler INST chunks. If the AIFF was created as a sampler patch (for use in a software sampler or hardware rompler), the INST chunk contains instrument data including the MIDI base note, fine tune, gain, and loop points. The validator reports the MIDI base note from the INST chunk when present.
- AIFF files written by Pro Tools. Pro Tools writes an embedded ID3v2 block as an
ID3chunk (note the trailing space in the four-character ID). The validator detects and reads this chunk. The chunk list in the Valid AIFF panel will showID3if it is present, and the metadata panel will be labeled "Embedded Metadata & ID3 Tags". - After fixing a file. If you re-encode, re-export, or re-tag an AIFF file based on the validator's output, drag the new version onto the drop zone to re-validate. Click the โ button or the Clear button first to clear the previous result, then drop the new file and validate again.
- Privacy. The file bytes are processed entirely in JavaScript running in your browser tab. No data is sent to any server. The tool works offline once the page has loaded. It is safe to use with unreleased recordings, commercial masters, or any file whose contents are confidential.
