Convert CAF to VOC — Free Online Tool
Convert CAF audio files from Apple's Core Audio Format to VOC, the classic Creative Labs Sound Blaster format used in DOS-era games and multimedia. The conversion decodes your CAF audio — which may contain AAC, FLAC, or high-resolution PCM — down to 8-bit unsigned PCM (pcm_u8), the native codec of the VOC container.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your CAF file here
or click to browse
Free — no uploads, no signups. Your files never leave your browser.
Settings
Note: Browser-based encoding uses approximate quality targets. For precise CRF compression, copy the FFmpeg command above and run it on your desktop.
Estimated output:
Conversion Complete!
DownloadHow It Works
CAF is Apple's modern container capable of holding a wide range of codecs including AAC, FLAC, Opus, Vorbis, and various PCM formats at high bit depths. VOC, by contrast, is a rigid legacy format from the early 1990s that supports only raw PCM audio at either 8-bit unsigned (pcm_u8) or 16-bit signed little-endian (pcm_s16le) encoding. During this conversion, FFmpeg decodes whatever codec is inside your CAF file — even compressed formats like AAC — and re-encodes it as raw 8-bit unsigned PCM audio wrapped in a VOC container. No lossless passthrough is possible unless your source was already 8-bit PCM, because VOC's codec support is extremely limited. The result is a significant reduction in bit depth and a correspondingly smaller file size, but with a format compatible with legacy DOS software and retro gaming tools.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg command-line tool, which handles the decoding of the CAF container and its audio codec, and re-encodes the audio stream into the VOC output format entirely in your browser via WebAssembly. |
-i input.caf
|
Specifies the input file in Apple's Core Audio Format. FFmpeg will detect the audio codec inside the CAF container — whether it's PCM, AAC, FLAC, or another supported codec — and decode it for re-encoding. |
-c:a pcm_u8
|
Sets the audio codec for the output to pcm_u8 — 8-bit unsigned raw PCM — which is the default and most widely supported audio encoding in the VOC format, as used by original Sound Blaster hardware and DOS game engines. |
output.voc
|
Specifies the output file with a .voc extension, which tells FFmpeg to wrap the raw pcm_u8 audio stream in a VOC container with the appropriate Creative Labs file header structure used by Sound Blaster-compatible applications. |
Common Use Cases
- Preparing sound effects recorded on a Mac (saved as CAF) for use in a DOS game mod or retro game engine that requires VOC files for Sound Blaster playback.
- Converting Apple Voice Memos or Logic Pro exported CAF files into VOC format for use with DOSBox sound asset replacement or custom game audio patches.
- Porting sound assets from modern iOS or macOS audio production pipelines into retro demoscene projects that target Sound Blaster hardware or emulators.
- Archiving or reproducing 1990s-era game audio workflows by converting contemporary CAF recordings into the exact VOC format that original Creative Labs tools produced.
- Supplying sound effects to vintage multimedia authoring tools or emulators (like VDMSound) that accept only VOC input files sourced from modern recording setups.
- Batch-converting CAF field recordings or Foley assets into VOC format for use in retro game development frameworks like the Godot DOS Compatibility Layer or similar legacy toolchains.
Frequently Asked Questions
Yes, almost certainly. CAF files often contain audio at 16-bit, 24-bit, or 32-bit depth — or compressed formats like AAC and FLAC — while the default VOC output uses 8-bit unsigned PCM (pcm_u8). Reducing to 8-bit introduces significant quantization noise and limits dynamic range to roughly 48 dB, compared to the 96 dB of 16-bit audio. If your source CAF contains AAC or other lossy audio, the conversion also involves a decode step before the re-encode to 8-bit PCM, meaning two generations of quality loss. For better fidelity within the VOC format's limits, you can switch the codec to pcm_s16le.
Yes. VOC supports two codecs: pcm_u8 (8-bit unsigned, the default) and pcm_s16le (16-bit signed little-endian). To use 16-bit output, modify the FFmpeg command to: ffmpeg -i input.caf -c:a pcm_s16le output.voc. This preserves significantly more dynamic range and is recommended if your target application or emulator supports 16-bit VOC playback. Most modern DOSBox versions handle 16-bit VOC files without issues.
VOC files do store a sample rate value in their header, and FFmpeg will carry over the source sample rate from the CAF file. However, many legacy Sound Blaster applications and DOS programs expect specific sample rates like 8000 Hz, 11025 Hz, 22050 Hz, or 44100 Hz. If your CAF file has an unusual sample rate (such as 48000 Hz from a voice memo or video export), you may need to resample it with -ar 22050 (or another target rate) added to the FFmpeg command to ensure compatibility with older software.
VOC is a bare-bones legacy format with no support for metadata tags of any kind. Any metadata embedded in your CAF file — including title, artist, album, comments, or chapter markers — will be silently dropped during conversion. If preserving metadata matters, you should export it separately before conversion, as the VOC container has no mechanism to store it.
On macOS or Linux, you can use a shell loop to process multiple files: for f in *.caf; do ffmpeg -i "$f" -c:a pcm_u8 "${f%.caf}.voc"; done. On Windows Command Prompt, use: for %f in (*.caf) do ffmpeg -i "%f" -c:a pcm_u8 "%~nf.voc". This applies the same pcm_u8 encoding to every CAF file in the current directory and outputs a matching VOC file for each.
The most likely cause is the 8-bit depth of the default pcm_u8 codec in VOC. Eight-bit audio has a very limited dynamic range, and any audio with quiet passages or subtle detail will exhibit audible quantization noise — a rough, grainy quality that wasn't present in the original CAF. If the CAF source was a compressed format like AAC, the additional decode-then-encode step compounds this. Switching to pcm_s16le in the FFmpeg command (replacing pcm_u8) will dramatically reduce distortion if your playback tool supports it.
Technical Notes
The VOC format was designed in the early 1990s for Creative Labs Sound Blaster cards and imposes strict limitations that make it a poor match for modern high-fidelity CAF sources. VOC supports only two codecs — pcm_u8 (8-bit unsigned) and pcm_s16le (16-bit signed little-endian) — and has no support for stereo channel configurations in all implementations, no metadata, no chapter markers, and no multi-track audio. CAF, by contrast, is Apple's professional-grade container supporting virtually unlimited file sizes, high-resolution PCM at up to 32-bit float, and compressed codecs like AAC, FLAC, Opus, and Vorbis. When converting AAC or other compressed CAF audio to VOC, FFmpeg must fully decode the compressed stream before encoding to raw PCM, which is a lossy operation if the source is lossy. The 8-bit default (pcm_u8) encodes audio as unsigned values from 0–255, with 128 representing silence — a format peculiar to the VOC/SB ecosystem. File sizes for VOC output will typically be smaller than lossless CAF sources due to the extreme bit-depth reduction, but larger than AAC-encoded CAF files. There is no quality setting available for pcm_u8 or pcm_s16le since both are uncompressed raw PCM formats — bit depth is the only lever available.