FDMS-3 Ripper

Version 0.4

© 2001-2003 Steven D. Young

I recently bought a Fostex FD-8 multitrack hard disk recorder for recording music. It works great, but I was disappointed to discover that, although it uses a standard external SCSI hard disk, there was no way to "rip" the recorded tracks from the hard drive to my PC over the SCSI port. The alternatives were to use the analog-out to re-record each track using my soundcard (resulting in loss of quality and loss of synch between tracks), or buying a $500 ADAT card for my PC.

I decided that I would try to figure out a way to rip the music directly over the SCSI port. The FD-8 uses a proprietary Fostex filesystem, FDMS-3. I decided to hook it up to my PC and probed the drive. I was able to figure out the basic layout of the filesystem pretty quickly. Note: this only applies to hard disks formatted in the FDMS-3 "Mastering" mode, which stores the audio data in uncompressed format.

Linux Version

I first developed a Perl program for extracting the tracks from the FDMS-3 filesystem. The program, fdms3rip, can be downloaded here:

fdms3rip.tgz

Warning This software works for me, but it is still in a very early stage. It could drastically malfunction, so make sure anything you care about is properly backed up.

In order to use the program, you will need to take the hard disk that has the FDMS-3 filesystem on it and hook it up to your PC (mine is a SCSI drive -- don't know if this will work with one of the internal IDE drives you can hook up to the FD-8). Make sure that Linux can see the drive (don't try to mount it, though!). You might want to have a look at SCSI-2.4-HOWTO to get the drive recognized. My external hard disk is located at "/dev/sda", but yours could end up elsewhere.

Next, you need to make sure you have the following on your system: perl, sox and fileutils (for the "dd" utility). Security Warning Unfortunately, this program presents significant security issues, so be careful with it. The script needs to be able to access the hard disk directly, so you can either run it as root (not safe), or change the permissons for the hard disk device (in my case, "/dev/sda"). Run the program with "./fdms3rip /dev/sda" (substituting the actual location of your hard disk). This will list all of the programs present on the hard disk. Then, run it again with the number of the program you want to fetch off the hard disk: "./fdms3rip /dev/sda 5" to get all of the recorded tracks for program number 5. After waiting a bit, you should now have a bunch of WAV files on your Linux machine. Warning This program will create and erase files with the names "dir" and "header" in the directory it is run from. It would be best to run this program from a clean directory, just to make sure there are no problems.

Windows XP Version

Then I decided to build a Windows XP version, FDMSImport.exe, which can be downloaded here:

FDMS_Import.zip

This program should be considered very beta, but it seems to work. The Windows version will not work with Windows 95, 98 or NT 4. It may work with Windows 2000 (haven't tested on that platform, though). If you are using Windows XP, though, and you are logged in with administrator privileges, then the executable below may work for you. To use it, go to a command line in a directory where you want the wave files to show up, and run "FDMS_Import.exe" followed by the name of the SCSI hard drive (in my case, that's PhysicalDrive1). The program makes some effort to verify that you've got the right disk, but it is not a rigorous check. If all goes well, the program will leave a new file in the directory named "list.txt" (creative name, huh?) which is a list of all programs on the disk, followed by their title. Pick a program number and re-run the program adding the number to the command line (e.g. "FDMS_Import.exe PhysicalDrive1 34"). The program should extract wave files associated with the indicated program. Each wave file has three numbers in its name; the first is the program number, the second the track number, and the third is a segment number. As far as I can tell, the audio of each track is composed of all of the segments for that track concantenated together.

Other

March 6, 2007 Jon Siddle let me know that he was able to use my filesystem description (and a lot of his own examination of his disk) to create a working Linux filesystem driver for an FD-4 machine. That is way more ambitious than what I did! If you aren't able to get anything here working for you, you might want to check out his page at: http://www.trapdoor.org/prj_fdmsfs.php. I haven't touched this code in years, and I am unlikely spend more time with it in the future, so Jon's software may be your best bet in figuring out how to read your FDMS filesystems.

February 21, 2001 Tobias Lohner recently sent me a revised version of the Linux program, which works for his system, which is a D824 with an internal IDE drive. I haven't been able to try out this modified version (since I don't have a D824), but you can download Tobias' version here:

fdms3rip_tl.tgz

I have never tried this program with a SCSI Zip drive, but it might work -- let me know if you get it to work with a Zip drive.

You can check out the Linux README file here:

README

You can check out the Windows XP README file here:

ReadMe.txt

A description of the filesystem can be found here:

Filesystem_Description.txt

Both versions of the program are available pursuant to the BSD license.

Let me know what you think of this program. Email:

sdy (at) zilber (dot) org

If I write out the address in the normal way, I'll end up with a lot of spam, so please substitue for the parantheticals.

Home