Exploring Eventide's VR240 Filesystem, Part1

Written 2015-01-06

Tags:Eventide VR240 Audio filesystem 

The VR240

Eventide has been producing and updating their 24-channel audio recorder, the VR240, for ages. Common use-cases would be logging support calls or recording radio traffic. Two units eventually made it to my home without any tapes. One of them eventually got tore down at the hackerspace. Luckily, these units use a large(at the time) SCSI disk as a giant FIFO to buffer the tape writes. I've always been curious where mine came from, but perhaps they'll actually be able to tell me.

Disk Format

It seems the SCSI disk inside the VR240 was never meant to be removed and placed into a desktop. The disk does not actually have an MBR, but is instead divided into 1KB blocks. The first two blocks appear to be used as headers or indexing, the rest appear to have a 32-byte header and probably contain the audio. The header for the data-blocks appears to be:

Audio Formats

The VR240 supports three different formats. The manual describes them quite well, and there's some important bits of knowledge we're going to need later about the encoding in there too. Of note, independent of encoder output rate, the sampling rate is always 8kHz. Another note from the manual: "The 8-bit samples used in the VR240 actually have a dynamic range equivalent to 13-bit linear samples, but the 13-bit values are especially coded into 8-bit quantities." 86 pages in - it's G.726 u-law. So if we can organize the bytes, we should be able to snag somewhere between 16 hours and 3 days of audio.

Where is the Audio?

Assuming the disk is written end-to-end, it should be possible to play it with a raw audio player by skipping the periodic headers. But, there are some variables: So there are 20 different ways the audio could be encoded, assuming we can guess the header size, and probably 10 of them need checking by ear. Additionally, RFC2422 states "No header information shall be included as part of the audio data.", so we're on our own as far as finding out how much audio is present per 1kB block.