Convert VOC to WAV — Free Online Tool
Convert VOC audio files — the legacy Sound Blaster format from DOS-era games — into standard WAV files using PCM 16-bit signed little-endian encoding. This tool upgrades your retro audio from 8-bit unsigned PCM (the VOC default) to 16-bit PCM, giving you a universally compatible, high-fidelity WAV file without any lossy compression.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your VOC 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
VOC files store raw PCM audio, typically as 8-bit unsigned samples (pcm_u8) at low sample rates like 8000–22050 Hz, a format native to the original Creative Labs Sound Blaster hardware. During conversion, FFmpeg reads the VOC container — which includes Creative Labs-specific block headers and metadata chunks — and rewrites the audio stream into a standard RIFF WAV container. The audio codec is transcoded from pcm_u8 to pcm_s16le (16-bit signed little-endian PCM), which shifts the sample representation from unsigned 8-bit values (0–255) to signed 16-bit values (-32768 to 32767). Because both formats are uncompressed PCM, the conversion is mathematically lossless in terms of information — no frequency data is discarded — though the original 8-bit source material inherently carries the noise floor and dynamic range limitations of 8-bit audio. The result is a WAV file readable by virtually every modern audio application, DAW, and operating system.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg program, which handles the demuxing of the VOC container, the PCM transcoding, and the muxing of the output WAV file — all in a single pass. |
-i input.voc
|
Specifies the input VOC file. FFmpeg automatically detects the Creative Labs VOC container and reads its block headers to determine the PCM encoding (typically pcm_u8), sample rate, and channel count stored in the file. |
-c:a pcm_s16le
|
Instructs FFmpeg to encode the output audio as 16-bit signed little-endian PCM — the standard codec for WAV files. This transcodes the source pcm_u8 (unsigned 8-bit) audio from the VOC file into the signed 16-bit format expected by modern audio software, DAWs, and operating systems. |
output.wav
|
Defines the output filename and tells FFmpeg to use the WAV (RIFF/WAVE) container format. FFmpeg writes a standard WAV file with a `fmt ` chunk reflecting the pcm_s16le codec, the original sample rate from the VOC source, and a `data` chunk containing the converted PCM samples. |
Common Use Cases
- Extracting sound effects from DOS-era games (such as those running under DOSBox) that stored audio in VOC format, to use in modern game remakes or fan projects
- Archiving vintage Sound Blaster audio samples into a universally supported format before the original VOC files become unplayable on modern systems
- Importing retro game audio into a DAW like Audacity or Adobe Audition, which may not natively support the VOC container, for restoration or remastering work
- Converting VOC voice recordings or sound clips ripped from early 1990s multimedia CD-ROMs into WAV for use in video editing timelines
- Preparing legacy audio assets for use in modern chiptune or lo-fi music production, where the original Sound Blaster character is preserved in a more portable container
- Batch-converting a library of VOC files from a retro computing collection into WAV so they can be catalogued, played back, and shared without specialized software
Frequently Asked Questions
The conversion upgrades the bit depth from 8-bit unsigned PCM to 16-bit signed PCM, but it does not recover audio information that was never in the original recording. The source VOC file's inherent 8-bit noise floor, limited dynamic range (~48 dB), and low sample rate are preserved in the output WAV. Think of it as moving the same audio into a higher-capacity container — the WAV file will be cleaner to work with in modern software, but the lo-fi character of 8-bit Sound Blaster audio remains intact.
While WAV technically supports pcm_u8, virtually all modern audio software expects WAV files to contain signed PCM data, and pcm_s16le (16-bit signed little-endian) is the universal default for WAV compatibility. Keeping pcm_u8 in a WAV container can cause playback issues, incorrect waveform rendering, or import errors in DAWs and editing tools. The transcoding from unsigned 8-bit to signed 16-bit is a safe, standard upscaling step that maximizes compatibility without introducing any lossy compression.
Yes. FFmpeg reads the sample rate stored in the VOC block headers — which could be anything from 8000 Hz to 44100 Hz depending on how the file was originally created — and writes that same sample rate into the WAV RIFF header. No resampling occurs unless you explicitly add a -ar flag to the command. Most DOS-era VOC files were recorded at 8000–22050 Hz, so your output WAV will reflect those original rates.
VOC files support Creative Labs-specific block types for looping (repeat blocks) and silence insertion, which are part of the VOC container format and have no direct equivalent in the WAV RIFF structure. FFmpeg extracts the raw audio stream but does not convert VOC loop markers into WAV loop cue chunks. If you need to preserve looping behavior for game audio use, you will need to manually add cue points in a WAV editor like Audacity or a tool like wav2prg after the conversion.
On Linux or macOS, you can run a shell loop: `for f in *.voc; do ffmpeg -i "$f" -c:a pcm_s16le "${f%.voc}.wav"; done`. On Windows Command Prompt, use: `for %f in (*.voc) do ffmpeg -i "%f" -c:a pcm_s16le "%~nf.wav"`. This applies the same pcm_s16le encoding to every VOC file in the current directory and outputs a matching WAV file for each one — useful when processing entire game sound libraries.
Yes. Replace `-c:a pcm_s16le` with `-c:a pcm_s24le` for 24-bit or `-c:a pcm_s32le` for 32-bit output. However, since the source VOC audio is only 8-bit, the additional bit depth does not add real audio information — it simply provides more headroom if you plan to apply processing or mix the file into a higher-bit-depth project in a DAW. For most archival and compatibility purposes, pcm_s16le is the standard and sufficient choice.
Technical Notes
VOC is a block-structured container format where each chunk begins with a block type identifier, allowing Creative Labs hardware to interleave audio data with control information like looping, silence, and extended sample rate headers. FFmpeg's VOC demuxer handles both the original Sound Blaster 1.0 and the extended Sound Blaster Pro VOC variants, supporting pcm_u8 (the most common) and pcm_s16le (found in some later SB Pro files). Because both codecs in this conversion are raw PCM, there is no lossy encoding step — the transcoding from unsigned 8-bit to signed 16-bit is a linear transform that preserves the waveform shape exactly. Output file sizes will roughly double compared to the input, since 8-bit samples become 16-bit. The WAV output uses a standard RIFF/WAVE format with a `fmt ` chunk and `data` chunk, which is compatible with all WAV-capable software. Note that mono audio (the most common VOC configuration) is preserved as mono in the output — no upmixing to stereo occurs. If your VOC file originates from a Sound Blaster Pro stereo recording, FFmpeg correctly identifies and preserves the stereo channel layout.