I often find myself at a thrift store looking through the well used Compact Discs. Often see the same ones over and over, but occasionally finding a gem. While looking through a set of discs, a few caught my eye. When I pulled one out to look at the cover I noticed it was not your typical CD. Opening the cover I was greeted with a 3.5 floppy inside the jewel case. That was a fun surprise.
The 3.5 inch floppy disk appears to be made specifically for the Yamaha Disklavier piano’s. The disk had the appearance of your typical double density floppy. Unfortunately, when I inserted the disk I was greeted with the error, “no mountable file systems”. I was however able to use ddrescue and make a disk image. Here is what the disk header looks like:
hexdump -C Yamaha_RazzleDazzle.img | head 00000000 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 |................| * 00000200 f9 ff ff 03 40 00 05 60 00 07 80 00 47 00 00 0b |....@..`....G...| 00000210 c0 00 0d e0 00 0f f0 ff 11 20 01 13 40 01 15 f0 |......... ..@...| 00000220 ff 17 80 01 19 a0 01 1b c0 01 42 00 00 1f 00 02 |..........B.....| 00000230 21 20 02 23 40 02 25 60 02 27 80 02 29 f0 ff 2b |! .#@.%`.'..)..+| 00000240 c0 02 2d e0 02 2f f0 ff 31 20 03 33 40 03 35 60 |..-../..1 .3@.5`| 00000250 03 37 80 03 39 f0 ff 3b c0 03 3d e0 03 3f 00 04 |.7..9..;..=..?..| 00000260 41 f0 ff ff 4f 04 45 60 04 48 f0 ff 49 f0 ff 00 |A...O.E`.H..I...| 00000270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
The header actually has 512 bytes of the E5 hex values. Not a FAT12 file system for sure. A little farther into the disk image I can see what appears to be file listing.
00000e00 53 4f 4e 47 20 20 20 20 50 30 31 00 00 00 00 00 |SONG P01.....| 00000e10 00 00 00 00 00 00 00 00 00 00 02 00 00 20 00 00 |............. ..| 00000e20 53 48 4f 52 54 20 20 20 50 30 32 20 00 00 00 00 |SHORT P02 ....| 00000e30 00 00 00 00 00 00 fa ac a2 16 0a 00 00 18 00 00 |................| 00000e40 54 4f 59 20 20 20 20 20 50 30 33 20 00 00 00 00 |TOY P03 ....| 00000e50 00 00 00 00 00 00 05 ad a2 16 10 00 00 18 00 00 |................| 00000e60 53 57 45 45 54 20 20 20 50 30 34 20 00 00 00 00 |SWEET P04 ....| 00000e70 00 00 00 00 00 00 12 ad a2 16 16 00 00 20 00 00 |............. ..| 00000e80 56 49 4f 4c 49 4e 20 20 50 30 35 20 00 00 00 00 |VIOLIN P05 ....| 00000e90 00 00 00 00 00 00 40 ad a2 16 1e 00 00 30 00 00 |......@......0..| 00000ea0 51 55 49 45 54 20 20 20 50 30 36 20 00 00 00 00 |QUIET P06 ....| 00000eb0 00 00 00 00 00 00 50 ad a2 16 2a 00 00 18 00 00 |......P...*.....| 00000ec0 52 41 5a 5a 4c 45 20 20 50 30 37 20 00 00 00 00 |RAZZLE P07 ....| 00000ed0 00 00 00 00 00 00 83 ad a2 16 30 00 00 28 00 00 |..........0..(..| 00000ee0 4c 45 54 53 20 20 20 20 50 30 38 20 00 00 00 00 |LETS P08 ....| 00000ef0 00 00 00 00 00 00 9a ad a2 16 3a 00 00 20 00 00 |..........:.. ..| 00000f00 50 49 41 4e 4f 44 49 52 46 49 4c 20 00 00 00 00 |PIANODIRFIL ....| 00000f10 00 00 00 00 00 00 a1 ad a2 16 43 00 00 18 00 00 |..........C.....| 00000f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00001c00 fe 00 00 00 20 00 00 43 4f 4d 2d 45 53 45 51 51 |.... ..COM-ESEQQ| 00001c10 31 31 56 31 2e 30 30 80 00 00 00 d9 01 00 00 00 |11V1.00.........| 00001c20 20 00 00 01 58 00 00 20 20 20 20 20 20 20 20 20 | ...X.. | 00001c30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
This gave me a few clues. A few google searches I came across a project on Hackaday about “Hacking Yamaha Disklavier Floppies“. I was eager to test out the python software and see if could export the files on the disk image. To my disappointment, the python script could not read my disk image. So I reached out to the author. After sharing a couple disk images with him, he was able to enable support for this different type of disklavier disk.
python3 disklav.py -t Yamaha_RazzleDazzle.img Loading file...OK Format: PianoSoft DOM-30 Disk: PPC 1919 Title: RAZZLE DAZZLE -------------------------------------------------------------------- Track 01 - Song Without Words Track 02 - Shortenin' Bread Boogie Track 03 - Toy Bugle Track 04 - Sweet Tooth Track 05 - The Mysterious Violin Track 06 - Quiet Moment Track 07 - Razzle Dazzle Track 08 - Let's Have A Party!
When I used the extract option with the software I was rewarded with eight files with the .FIL extention.
sf Yamaha_RazzleDazzle-track01.fil --- siegfried : 1.10.1 scandate : 2023-12-04T22:38:04-07:00 signature : default.sig created : 2023-12-04T22:37:35-07:00 identifiers : - name : 'pronom' details : 'DROID_SignatureFile_V116.xml; container-signature-20231127.xml' --- filename : 'Yamaha_RazzleDazzle-track01.fil' filesize : 6409 modified : 2023-12-04T22:28:34-07:00 errors : matches : - ns : 'pronom' id : 'UNKNOWN' format : version : mime : class : basis : warning : 'no match'
No surprise the file was not known to PRONOM. I doubt these files have made a big appearance in many archives.
hexdump -C Yamaha_RazzleDazzle-track01.fil | head 00000000 fe 00 00 00 20 00 00 43 4f 4d 2d 45 53 45 51 51 |.... ..COM-ESEQQ| 00000010 31 31 56 31 2e 30 30 80 00 00 00 d9 01 00 00 00 |11V1.00.........| 00000020 20 00 00 01 58 00 00 20 20 20 20 20 20 20 20 20 | ...X.. | 00000030 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00000120 20 20 20 20 20 20 20 00 76 04 02 00 1e ff 00 00 | .v.......| 00000130 ff ff ff ff ff 00 ff 00 00 00 00 ff ff 00 00 00 |................| 00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000150 00 00 00 00 00 02 02 02 02 02 02 02 02 01 01 01 |................| 00000160 01 01 01 01 01 01 01 01 01 01 01 01 01 00 00 00 |................|
The header of a .FIL file has an ascii string “COM-ESEQ”. A little investigation shed a little light on the format. Turns out there is a proprietary format Yamaha developed called “E-SEQ”. The E-SEQ format is compatible with all Disklaviers, Clavinova digital pianos, and a few other Yamaha products. I was curious if the format was something similar to a MIDI file, which was commonly used with early keyboard systems, but I was unable to find anything to suggest they are similar in any way. Yamaha does mention there are tools out there to convert an E-SEQ file to a SMF (Standard Midi File) which was used on other systems.
There is another tool called PPFBU which can be used to extract a disk image from a Disklavier floppy and the E-SEQ files. Along with a companion tool called MID2PianoCD claims to be able to convert a E-SEQ to a WAV or MP3, although I haven’t had much luck.
Another set of tools are available here, they allow for copying of a disk and converting back and forth from E-SEQ and Midi. A text file in DVUtils from the link has the following background about the disk format and the FIL files:
DISKLAVIER FILES AND DISCS Yamaha Disklavier discs are always on Double Density (2DD) media, High Density (HD)discs, which are more common nowadays, will not work. Furthermore, they are formatted to 720 Kbytes not the default of 1.2 Mbytes. The original discs are copy protected. This has been achieved by placing invalid data on the first sector. As DOS and Windows always refer to this sector to check out a floppy, they will report that the discs are bad. The Yamaha machinery ignores the first sector so it reads them normally. The music files on a Disklavier disc have the extension .FIL . They are frequently identified with titles like PIANO001.FIL but sometimes they have names similar to DOS like MUSIC1.FIL. In addition to the music files, there is an index file on the disc. This contains a list of the active music files on the disc, their titles, and pointers to their position on the disc. The index file is always called PIANODIR.FIL and always has a size of 6 Kbytes. In order to set up a Disklavier disc to function on a Disklavier, you must first copy the music files onto it in Disklavier format (ESEQ) and then run the ESEQ EXPLORER program to build the index file.
Although there are many Disklavier Piano’s still out there and quite expensive if you want to pick one up for yourself, the websites dedicated to the format as slowly disappearing. One archived website has plenty of sample files to download and write to a floppy for use if you happen to have a Disklavier.
You can check out the signature I put together for the E-SEQ on my Github. Might be good to explore the disk image format more and add that as well to PRONOM for identification as well.