Akai S900 / S950 disk tool
Opens Gotek/HxC .hfe images and raw 800K .img sector
images of Akai S900/S950 floppies, and lets you edit what is on them — then
writes a new image you can copy straight back to your USB stick, in either format.
What it does
- Browse and listen. Programs, samples and keygroups, with waveforms and an on-screen keyboard that plays each sample at the pitch its keygroup gives it — through the S950’s filter, envelopes and vibrato, every constant of them measured from recordings of the machine.
- Start a disk from nothing. New image makes an empty 800K disk to fill and download, as well as opening the ones you have.
- Add samples from any audio file your browser can open. Converted to Akai 12-bit, with a choice of sample rate, normalising and silence trimming.
- Slice a break into one-shot samples and map them across consecutive keys in one step — adjust the sensitivity and watch the cut points move.
- Edit key ranges by clicking the low and high keys on the keyboard, along with tuning, loop points, the VCA and VCF envelopes, and which sample each zone plays — on one keygroup or on every one you have selected.
- Add and remove programs, keygroups and samples. The tool keeps everything the sampler relies on consistent as you go.
- Copy between disks. Put a sample, a program or a single keygroup onto another open image. A program brings every sample its zones name with it, and a name already taken by something else is renamed rather than overwritten — nothing on the receiving disk is ever replaced.
- Take a sample out as a 16-bit WAV at its own rate, with the loop and the root note written into the file rather than baked into the audio, so a DAW or another sampler picks them up by itself.
- Rework audio — stretch a sample to a new tempo without changing its pitch, halve its rate to free up memory, or trim the silence off both ends.
- Find a loop in a sustained sample, with the join scored so you know what to expect of it — and the loop end put where you want it, so a release is left to sound.
HFE or IMG
HFE is the usual Gotek container and carries the disk geometry inside the file. Both HxC and FlashFloppy firmware read it, so it is the safe default.
IMG is the bare sector image — 80 cylinders, 2 sides, 5 sectors of
1024 bytes, 819,200 bytes in all — which some FlashFloppy users prefer.
Nothing is lost converting an HFE to one: the sectors are identical, and it is the
same data the tool has been editing all along. Because a raw image carries no
geometry of its own, FlashFloppy may need that told to it; if a converted
.img will not mount, that is the first thing to check.
It converts both ways. An .img can be written back out as an
.hfe, with the whole container built from the sectors — and the
encoder reproduces all 101 of the original library disks byte for byte, so a
converted disk is not merely readable, it is the same file the Akai drive wrote.
Playing it from a MIDI source
Pick a MIDI input in the toolbar, select a program, and play it from anywhere that sends MIDI — eight voices, with the keygroup under each note deciding the sample, the tuning and the whole voice, filter and envelopes included. Useful for hearing a program as an instrument rather than a list, and for sending the same part here and to a real S950 to compare the two.
Browsers only grant MIDI access to a page served over http or https, so the control
is greyed out if you opened index.html straight from disk. Run
node serve.js and use the address it prints.
Getting started
- Drop
.hfeor.imgfiles anywhere on this window, or use Open images. You can open several at once, in either format. - Pick a program or a sample from the list on the left.
- Make your changes. Undo and Redo work throughout.
- Press Download image, choose
.hfeor.img, and copy the file to your Gotek.
Edits are held in this page until you download. The file you opened is never
modified, and a disk with unsaved changes is marked with a *.
Back up your images first
Please keep a copy of your .hfe and .img files somewhere
safe before editing them. This tool writes a new image rather than altering the
original, but the copy you put on your Gotek replaces what was there — and a backup is the only thing
that makes a mistake, yours or the tool's, undoable.
The honest disclaimer
This is an independent tool with no connection to Akai, offered as-is and with no warranty. It talks to disk images on your computer, never to your sampler, so it cannot reach your hardware directly.
What it can do is write an image your sampler does not like. The disk format was worked out by reading a library of 101 original disks and confirming the findings on a real S950, and every image this tool produces is checked against the structures the sampler depends on — but a malformed image can make an S950 hang while loading, which is recoverable with a power cycle and a good disk, yet no fun in the middle of a session. Try an edited disk before you rely on it, and keep that backup.
It all runs here, and you can take it with you
Nothing is uploaded. Every image you open is read and written inside this page, on your own machine.
Download source at the top right gives you the app to run locally: the page, the three scripts it loads, a small static server and the README — seven files, no build step and no dependencies. Worth doing if you would rather not depend on this page staying up.
The tests, the calibration rig and the format document are not in it. They are on GitHub with the rest of the source, and a download that only has to run is friendlier than one that carries the workshop with it.
Running it yourself
Unzip it and open index.html. That is the whole of it — the
scripts are plain <script> tags rather than ES modules precisely
so a file:// page can load them, with no server and no build step.
One thing a local file cannot have, though, because browsers only grant it to a page served over http or https: Web MIDI, so the MIDI control stays greyed out. For that, serve the folder — any static server will do:
node serve.js— included in the download, and it prints the address.node serve.js 8099to choose the port.python -m http.server 8000— if you have Python rather than Node. Usepython3on a Mac or Linux.npx serve— if you would rather not keep anything around.
Then open the address it prints, not the file. selftest.html beside it
checks the app end to end in your browser, and the Node scripts in the same folder
check the disk format itself against a library of real disks.
Keygroups
Keygroup
0