Convert VOC to J2B — Free Online Tool

Convert VOC audio files — the classic Creative Labs Sound Blaster format from DOS-era games — into J2B format used by Jazz Jackrabbit 2, encoding the audio stream with the LAME MP3 encoder at 128k bitrate. Useful for retro game audio modding and music format archaeology.

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 (typically unsigned 8-bit or signed 16-bit little-endian samples) in a chunk-based container developed by Creative Labs. During conversion, FFmpeg decodes the raw PCM data from the VOC container, then re-encodes it using the libmp3lame encoder to produce an MP3 audio stream wrapped in the J2B container structure — a simple header-wrapped variant of the ASYLUM Music Format used by Jazz Jackrabbit 2. Because VOC is lossless PCM and J2B uses lossy MP3 compression, this is a one-way lossy conversion: audio fidelity is permanently reduced, and the original PCM samples cannot be recovered from the output file. The default bitrate of 128k is a reasonable middle ground for voice and sound effect content typical of VOC files, though 8-bit PCM source material will already have limited fidelity to preserve.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg executable — the open-source multimedia processing engine that handles demuxing the VOC container, decoding the raw PCM audio, and re-encoding it through libmp3lame into the J2B output.
-i input.voc Specifies the input VOC file. FFmpeg reads the Creative Labs chunk structure, identifies the PCM audio codec (pcm_u8 or pcm_s16le), sample rate, and channel count embedded in the VOC headers.
-c:a libmp3lame Selects the LAME MP3 encoder to compress the decoded PCM audio into an MP3 stream, which is the audio codec required by the J2B container format used by Jazz Jackrabbit 2.
-b:a 128k Sets the MP3 encoding bitrate to 128 kilobits per second. This is a reasonable default for the kind of voice and sound effect content common in VOC files, balancing file size against the fidelity ceiling imposed by the original 8-bit PCM source.
output.j2b Specifies the output filename with the .j2b extension, which tells FFmpeg to write the encoded MP3 audio wrapped in the ASYLUM-derived J2B container structure compatible with Jazz Jackrabbit 2 tooling.

Common Use Cases

  • Replacing or creating custom sound assets for Jazz Jackrabbit 2 mods by converting original DOS-game VOC sound effects into the J2B format the engine expects
  • Migrating a library of Creative Labs Sound Blaster audio samples from an old DOS game into a format compatible with Jazz Jackrabbit 2 level editors or fan-made expansions
  • Studying retro game audio pipelines by examining how 8-bit unsigned PCM from a VOC file degrades or transforms when transcoded through MP3 compression into a J2B wrapper
  • Archiving and repurposing DOS-era multimedia VOC recordings for use in retro-themed game projects that target the Jazz Jackrabbit 2 engine or its community tools
  • Testing Jazz Jackrabbit 2 custom level audio slots with converted VOC speech or ambient sound clips sourced from other vintage Sound Blaster compatible software

Frequently Asked Questions

Yes, this is an irreversibly lossy conversion. VOC stores audio as raw PCM (unsigned 8-bit or signed 16-bit), which is inherently lossless, while J2B wraps an MP3 stream encoded by libmp3lame. MP3 encoding at 128k introduces psychoacoustic compression artifacts that permanently discard audio data. For 8-bit VOC sources — which already have a signal-to-noise ratio of roughly 48 dB — the perceptible impact may be modest, but the conversion is still one-way lossy.
Yes. The FFmpeg command uses '-b:a 128k' as the default bitrate, but you can change this to 64k, 192k, 256k, or 320k depending on your quality needs. For simple 8-bit VOC sound effects, 64k is often sufficient. For 16-bit stereo VOC recordings with more dynamic range, 192k or higher will better preserve the source fidelity before MP3 compression artifacts become noticeable.
You can use a shell loop to process multiple files. On Linux or macOS: 'for f in *.voc; do ffmpeg -i "$f" -c:a libmp3lame -b:a 128k "${f%.voc}.j2b"; done'. On Windows Command Prompt: 'for %f in (*.voc) do ffmpeg -i "%f" -c:a libmp3lame -b:a 128k "%~nf.j2b"'. This applies the same libmp3lame encoding settings to every VOC file in the directory.
VOC files contain minimal metadata — primarily chunk headers describing sample rate and bit depth, not artist or title tags. J2B is likewise a sparse format derived from the ASYLUM Music Format with no standard ID3-style metadata fields. FFmpeg will not embed meaningful metadata into the J2B output from a VOC source, so no tags are lost or gained in a meaningful sense.
J2B is a container format specific to Jazz Jackrabbit 2 that wraps audio data — in this case, an MP3 stream encoded with libmp3lame — inside a proprietary ASYLUM-derived header structure. The .j2b extension signals compatibility with the Jazz Jackrabbit 2 engine and its associated tools, even though the underlying compressed audio codec is MP3. Opening a .j2b file in a standard MP3 player will likely fail because the engine-specific header framing is not recognized outside the game context.
The libmp3lame encoder supports a fixed set of sample rates: 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, and 48000 Hz. Early DOS-era VOC files often used non-standard rates like 11111 Hz or 22222 Hz. If your VOC file uses an unusual sample rate, FFmpeg will automatically resample to the nearest libmp3lame-compatible rate during encoding, which introduces a small amount of additional signal processing on top of the MP3 compression itself.

Technical Notes

VOC files use a chunked binary structure where each block begins with a type byte identifying it as audio data, silence, repeat markers, or an end-of-file sentinel. The audio payload is raw PCM — either unsigned 8-bit (pcm_u8, the Creative Labs default) or signed 16-bit little-endian (pcm_s16le). J2B is a niche format whose primary consumer is the Jazz Jackrabbit 2 game engine; it wraps audio in an ASYLUM Music Format-derived header and in FFmpeg's implementation encodes the audio as MP3 via libmp3lame. Because the source is mono or low-sample-rate 8-bit PCM in many vintage VOC files, choosing a very high MP3 bitrate like 320k will not recover detail that was never present in the source — the VOC's own quantization noise floor limits achievable fidelity. There is no subtitle, chapter, or multi-track support in either format. If the VOC file contains silence or repeat chunk types, FFmpeg decodes the full rendered audio timeline rather than preserving the chunk structure, so looping metadata from the original VOC is not retained in the J2B output.

Related Tools