Convert VOC to AU — Free Online Tool

Convert VOC audio files — the classic Creative Labs Sound Blaster format used in DOS-era games — to Sun AU format with 16-bit big-endian PCM audio. This tool transcodes the raw PCM data from VOC's little-endian encoding to AU's big-endian pcm_s16be stream, making retro game audio compatible with Unix systems and legacy Sun workstation software.

FFmpeg Command

Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg

Free — no uploads, no signups. Your files never leave your browser.

Estimated output:

Conversion Complete!

Download

How It Works

VOC files store raw PCM audio in little-endian byte order (typically unsigned 8-bit or signed 16-bit), a format native to Creative Labs' Sound Blaster hardware and DOS applications. During conversion, FFmpeg reads the VOC container — including its block-based structure with block-type headers — and decodes the raw PCM samples. It then re-encodes the audio as signed 16-bit big-endian PCM (pcm_s16be), which is the default and most compatible codec for the AU format. The AU container wraps this with a simple 24-byte header containing the sample rate, channel count, and encoding type. If the source VOC file uses 8-bit unsigned PCM, the bit depth is upgraded to 16-bit signed during this process, which preserves all original audio information while conforming to AU's standard encoding. No lossy compression is applied — this is a lossless PCM-to-PCM transcode with a byte-order and bit-depth adjustment.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg binary, the open-source multimedia processing engine that handles both the VOC demuxing and the AU encoding in this conversion pipeline.
-i input.voc Specifies the input file — a VOC audio file in Creative Labs' block-structured format, typically containing unsigned 8-bit or signed 16-bit little-endian PCM audio recorded for Sound Blaster hardware.
-c:a pcm_s16be Sets the audio codec for the output to signed 16-bit big-endian PCM, which is the native and default encoding for the Sun AU format. This swaps the byte order from VOC's x86 little-endian PCM to the big-endian order expected by Sun's AU format and Unix audio tools.
output.au Specifies the output filename with the .au extension, which tells FFmpeg to wrap the encoded pcm_s16be audio stream in a Sun AU container with its characteristic 24-byte header containing sample rate, channel count, and encoding type.

Common Use Cases

  • Porting DOS game sound effects and music extracted from old game archives into Unix or Sun Solaris environments where AU is the native audio format
  • Loading retro Sound Blaster audio assets into legacy Unix multimedia applications, audio editors, or NeXT/Sun workstation tools that read .au files but not .voc
  • Archiving and cataloging vintage Creative Labs VOC samples in a more universally documented format for long-term preservation on Unix-based systems
  • Preparing DOS-era game audio for streaming or playback in early web audio pipelines, where AU was one of the first supported browser audio formats in Netscape-era browsers
  • Converting Sound Blaster voice recordings or PC speaker samples from demoscene or shareware software into AU for use with Unix command-line audio tools like 'play' from SoX
  • Batch-converting VOC sound banks from retro game modding projects into AU format for integration with open-source game engines running on Linux or macOS

Frequently Asked Questions

No — this conversion is entirely lossless. Both VOC and AU store uncompressed PCM audio, and the conversion simply changes the byte order from little-endian (VOC) to big-endian (AU) and standardizes the bit depth to 16-bit signed. If your source VOC file uses 8-bit unsigned PCM (pcm_u8), FFmpeg upsamples it to 16-bit, which preserves all original audio data without discarding any information. No lossy compression such as MP3 or AAC is applied at any stage.
Sun AU natively uses big-endian byte ordering, inherited from Sun's SPARC-based workstations where the format originated. The codec pcm_s16be (signed 16-bit big-endian PCM) is the AU format's default and most broadly compatible encoding, matching what Unix audio tools and legacy Sun software expect. VOC files, by contrast, use little-endian encoding aligned with the x86 architecture of DOS PCs, so the byte order must be swapped during the transcode.
Yes — the AU format supports several other audio codecs, including pcm_s8 (8-bit signed), pcm_u8 (8-bit unsigned), pcm_alaw (G.711 A-law), and pcm_mulaw (G.711 mu-law). You can substitute the codec by changing the flag, for example: ffmpeg -i input.voc -c:a pcm_mulaw output.au. Note that pcm_alaw and pcm_mulaw are lossy telephony codecs that will reduce audio quality, while pcm_s8 is lossless but lower bit-depth. For highest fidelity, pcm_s16be (the default) is recommended.
VOC files carry very minimal metadata — primarily technical parameters like sample rate and channel count embedded in their block headers, with no support for tags like artist or title. The AU format similarly has a very limited metadata field (a plain text annotation string in its 24-byte header). FFmpeg will carry over the audio parameters (sample rate, channels), but there is effectively no rich tag metadata in either format to lose or preserve.
You can use a shell loop to process multiple files at once. On Linux or macOS, run: for f in *.voc; do ffmpeg -i "$f" -c:a pcm_s16be "${f%.voc}.au"; done. On Windows Command Prompt, use: for %f in (*.voc) do ffmpeg -i "%f" -c:a pcm_s16be "%~nf.au". This will convert every VOC file in the current directory to an AU file with the same base filename. This browser-based tool processes one file at a time, so the FFmpeg command is particularly useful for batch workflows involving large collections of retro game audio.
The VOC format supports a block-based structure where different segments can technically have different sample rates or formats — a quirk of the original Creative Labs specification. FFmpeg reads the VOC container and typically uses the parameters from the first audio block to establish the output stream. If your VOC file has mixed-rate blocks (uncommon in practice), the output AU file will use a single fixed sample rate, which may cause some blocks to play back at the wrong speed. Most real-world VOC files from DOS games use a single consistent format throughout, so this is rarely an issue.

Technical Notes

The VOC format was engineered specifically for Creative Labs' Sound Blaster ISA cards and the 8-bit or 16-bit audio capabilities of DOS PCs in the late 1980s and early 1990s. Its internal structure uses typed data blocks (silence blocks, audio data blocks, loop markers) rather than a single linear stream, which FFmpeg flattens into a continuous PCM stream during demuxing. The Sun AU format, by contrast, uses a minimal fixed header and a flat unframed PCM stream — conceptually simpler and closer to a raw audio pipe. The critical technical difference in this conversion is endianness: VOC's little-endian PCM samples must be byte-swapped to big-endian for AU compatibility. FFmpeg handles this transparently via the pcm_s16be encoder. Neither format supports multiple audio tracks, subtitles, chapters, or embedded artwork, so there is no risk of data loss beyond the audio stream itself. AU files produced by this conversion will be slightly larger than the source VOC files if the source used 8-bit PCM, because the output is normalized to 16-bit. The AU format's streaming-friendly design (the data length field can be set to 0xFFFFFFFF for unknown-length streams) makes it a good archival target for retro audio that may be piped through Unix tools.

Related Tools