Convert J2B to VOC — Free Online Tool

Convert J2B game music files from Jazz Jackrabbit 2 into VOC audio files compatible with DOS-era Sound Blaster applications. This tool decodes the ASYLUM Music Format wrapped in J2B's header and re-encodes it as uncompressed PCM (unsigned 8-bit) audio directly in your browser — no server upload required.

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

J2B files are module-based game music tracks used in Jazz Jackrabbit 2, internally structured as ASYLUM Music Format data wrapped in a proprietary header. FFmpeg decodes this module format by rendering the instrument and pattern data into a continuous PCM audio stream. That rendered audio is then encoded into the VOC container using unsigned 8-bit PCM (pcm_u8) — the native codec for Creative Labs' Sound Blaster format. Because J2B is a tracker-style format and VOC is a simple raw audio container, there is no stream-copy shortcut here: the audio must be fully decoded and re-rendered before being written out. The result is a lossless PCM representation of the music, though the 8-bit depth is a limitation of the VOC format's default codec.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg tool, which handles the full pipeline: demuxing and rendering the J2B tracker format, and encoding the output as a VOC file.
-i input.j2b Specifies the input J2B file. FFmpeg identifies this as a Jazz Jackrabbit 2 audio file, unwraps the ASYLUM Music Format header, and renders the tracker pattern data into a PCM audio stream.
-c:a pcm_u8 Sets the audio codec to unsigned 8-bit PCM, which is the native and most compatible audio encoding for the Creative Labs VOC format and accurately reflects how Sound Blaster hardware stored and played back audio.
output.voc Defines the output file as a VOC container. FFmpeg uses the .voc extension to select the Creative Labs Voice File muxer, which wraps the pcm_u8 audio stream in the block-based VOC structure used by DOS Sound Blaster applications.

Common Use Cases

  • Bringing Jazz Jackrabbit 2 music into a DOS game project or fan remake that uses Sound Blaster VOC files for its audio engine.
  • Archiving J2B game audio tracks in a raw PCM format that can be opened and inspected by legacy audio tools designed for early Creative Labs hardware.
  • Integrating Jazz Jackrabbit 2 music into a DOSBox-based environment or vintage PC emulator that plays audio from VOC files.
  • Converting J2B tracks for use as sound effects or background music in a custom DOS-compatible game built with tools like Borland or DJGPP that natively support VOC playback.
  • Creating a retro-accurate audio asset library by converting modern or vintage game tracker music into the Sound Blaster VOC format for historical preservation or demoscene projects.
  • Testing how Jazz Jackrabbit 2 audio sounds when downsampled to the 8-bit unsigned PCM depth characteristic of early 1990s Sound Blaster playback.

Frequently Asked Questions

The conversion involves a change in audio representation that can affect quality. J2B stores music as tracker data — patterns, instrument samples, and playback instructions — which FFmpeg renders into PCM audio. The VOC output uses unsigned 8-bit PCM (pcm_u8), which has a dynamic range of only 48 dB. This is a noticeable step down from modern 16-bit or 24-bit audio, and the resulting VOC file will have the characteristic slightly gritty texture of 8-bit Sound Blaster audio. If higher fidelity is needed, the FFmpeg command can be adjusted to use pcm_s16le instead.
Yes. The VOC format also supports signed 16-bit little-endian PCM via the pcm_s16le codec. To use it, change the FFmpeg command to: ffmpeg -i input.j2b -c:a pcm_s16le output.voc. This doubles the bit depth, significantly improving dynamic range and reducing the quantization noise that is audible in 8-bit playback. Note that not all legacy Sound Blaster drivers or DOS applications support 16-bit VOC files, so check your target software's compatibility.
J2B files are extremely compact because they store music as tracker instructions — essentially a score and a set of instrument samples — rather than a fully rendered audio waveform. A complete track might be represented in just a few kilobytes. VOC files, on the other hand, store raw uncompressed PCM audio, meaning every second of audio takes up sample_rate × bit_depth / 8 bytes. A three-minute track at 44100 Hz in 8-bit mono would produce roughly 7.9 MB of VOC data, which is orders of magnitude larger than the source J2B.
No. J2B files, as a module format, contain loop markers and pattern sequencing data that define how the music repeats during gameplay. When FFmpeg renders the J2B to PCM, it plays through the track linearly and does not embed loop metadata into the output. The resulting VOC file is a flat, non-looping audio recording of one playthrough. If you need a looping version, you would need to manually trim and structure the audio after conversion.
On Linux or macOS, you can use a shell loop: for f in *.j2b; do ffmpeg -i "$f" -c:a pcm_u8 "${f%.j2b}.voc"; done. On Windows Command Prompt, use: for %f in (*.j2b) do ffmpeg -i "%f" -c:a pcm_u8 "%~nf.voc". Each J2B file in the directory will be rendered and saved as a separate VOC file. This is especially useful for extracting an entire Jazz Jackrabbit 2 music library in one pass.
VOC files are not natively supported by modern media players like Windows Media Player or macOS QuickTime, but applications such as VLC, Audacity, and FFplay can open them without any issue. For authentic playback at the original 8-bit Sound Blaster quality, DOSBox also supports direct VOC file playback. If broader compatibility with modern software is your goal, converting J2B to WAV or FLAC using a similar FFmpeg command would be a more practical choice.

Technical Notes

J2B is a niche format exclusive to Jazz Jackrabbit 2, and FFmpeg's support depends on its ASYLUM Music Format demuxer correctly parsing the J2B wrapper header before handing off to the tracker renderer. The audio is rendered to PCM internally before being written to VOC using the pcm_u8 codec. The VOC container was designed by Creative Labs for the Sound Blaster card family and has a simple block-based structure with minimal metadata support — there is no place in the format to store title, artist, or loop information, all of which are lost in this conversion. The default sample rate will follow whatever FFmpeg's tracker renderer outputs for the J2B source; you can explicitly set the output sample rate by adding -ar 22050 or -ar 44100 to the command if you need to match a specific target. The unsigned 8-bit PCM codec (pcm_u8) encodes samples as values from 0–255 with 128 representing silence, which is distinct from the signed convention used in most modern formats. Be aware that very high-frequency content in the rendered J2B audio may alias slightly at 8-bit depth, which is consistent with how this audio would have sounded on original Sound Blaster hardware.

Related Tools