FDMS-FS
News
12/12/2009 – Most of the hard work is done! libfdms is out and FDMS-FS is following very shortly.
I’m currently restructuring FDMS-FS. Here’s what you can eagerly await:
- libfdms – A cross-platform library providing a simple API for access to FDMS audio and meta-data.
- fdms-tools – Currently fdms-query and fdms-dump which provide a debugging commandline interface to FDMS meta data and audio data respectively. Also cross platform.
- fdms-fs – A new version of the current FUSE filesystem, which uses libfdms for FDMS I/O.
The short of it is that the first two will work on pretty much any platform without any fuss (notably Windows, Linux, Mac), and the library (a dll on windows) will allow other people to write nice user-friendly interfaces to rip the audio if that’s all you want.
fdms-fs will always depend on FUSE and will only work on linux (and Mac OS X with a bit of tinkering – see this post on the forum).
In theory you could write a windows filesystem driver on top of libfdms. Have fun with that.
Overview
This is a FUSE filesystem driver for the fostex FDMS-3 as used by the various fostex digital multitrackers.
Supported Devices
- FD-4,FD-8
- D2424
- VF160
See here for a full list of devices to see if your device uses a supported
disk format. Please let me know whether or not it works for you.
Description
This driver presents the FDMS filesystem as a series of directories – one for each program (song) on the disk:
/mnt/p000-song1 /mnt/p001-song2 /mnt/p002-anotherone ...
Each directory contains a number of .WAV files – one for each track:
/mnt/p001-song2/track-0.wav /mnt/p001-song2/track-1.wav ...
These .wav files can then be played/mixed/ripped to disk as you want.
Request for images
I would be eternally greatful to anyone able to provide me with a full disk image from any fostex machine using the FDMS filesystem (not necessarily version 3). Even more so if you have an image that doesn’t work with this driver!
Usage
Step 1 – Image the hard disk (optional)
I suggest taking an image of the hard disk, rather than working with the original. Having said this, I see no reason why it would cause any problems, since no write operations are attempted. You can take an image like this:
dd if=/dev/hdd of=fostex-image.dd bs=512
This WILL take some time!
Step 2 – Mount the filesystem
./fdmsfs fostex-image.dd /mnt
If this fails, you probably have a problem with FUSE. Please check the fuse website for more help. If you are sure it’s not a fuse problem, please let me know!
Step 3 – Use the .WAVs
ls /mnt
should produce a list of the available programs.
You can obviously copy the wavs somewhere else, encode them, import them into something like cubase/soundgarden or whatever. If you just want to play a song, I suggest using Audacity, which can load all the tracks for a partiular program, and play them together or mix them down.
References
This program was written by reverse engineering an image of my FD-4 harddisk. I then came across fdms3rip, and read over the author’s description of the filesystem. This helped fill in a few of the missing details. For various perl-related reasons I was never able to get fdms3rip to work, but from what I can see, it is unable to handle “silence” segments in the tracks correctly.
Releases
- 0.4.1 - Fixed bug causing truncation of audio
- Fixed bug which caused 24bit audio to be truncated to 3/4 length
- 0.4.0 - Major refactor
- Major code tidy
- 64bit support
- Portability improvements
- Working D2424, D160 and 64bit host support.
- Many bug fixes and some significant refactoring.
Many thanks to Mario DeFacendis for debugging this with me.
- 0.2.2 - 24bit support, Fixed SEGV, General tidy
- Fixed SEGV for incomplete images
- Bit width and sample rate selectable
- Tidied tree and makefile
- Updated docs
- 0.2.1 - Fixed bug which filled silence segments with junk
- Fixed bug which filled silence segments with junk
- 0.2.0 - Conversion from ripper
- Added fdmsfs to Makefile
- Improved usage message
- Created readme