I’m in the process of transferring files in a Yamaha CLP-156, a Clavinova from 1994, which uses an early version of ESEQ. I’ve been trying to figure out how to read these disks, and in my journeys, I encountered this Yamaha service note from 2004. They refer to a product called Giebler’s Yamaha DOM package, which is used for copying Clavinova and Disklavier files. I was curious to see if this different at all from the more modern tools I have available, and if it might have an edge reading older disks.
You can view the Yamaha DOM Package from Gary Giebler on the Giebler website. It’s a bit pricey — $54.95 at the time of this writing. But it’s a specialized tool, to say the least!
However, it requires an MS-DOS based version of Windows. I couldn’t get it to run in FreeDOS, as it required a Windows environment for the installation. I was able to get it running on Windows ME, running on physical hardware with an internal floppy disk drive. This is a very high bar to clear for installation — Windows ME and Windows 98SE are hard to install on modern hardware, to say the least, and Windows ME barely ran on the 2008 era computer I used for this process.
Finally, I got everything installed, and I got to the first screen. This software has the following options, and none are particularly helpful for our purposes:
I tried a handful of disks with it. I found its performance at reading disks somewhat limited compared to modern tools like Mark Fontana’s Player Piano Floppy Backup Utility (PPFBU). But it was able to look at disks and list their contents, and it had a pleasant old-timey feel. See, for instance, a directory listing:
I attempted to make a copy of the disk, and was met with this error:
It’s easy enough to understand why this is, and certainly why this was over twenty years ago. But this means this software will almost never be the appropriate solution for backing up your floppy disks or moving them to modern hardware. It’s an interesting historical tool, and might be of assistance in some edge cases, but in general we have better tools today.
The Yamaha Disklavier is a sophisticated piece of technology, but typically, you’re limited to Yamaha’s song library. Many Yamaha songs include both a piano part for the Disklavier and an accompanying music track, though the Disklavier piano part might differ dramatically from the original piano part in the song. In many cases, the piano tracks are recorded as accompaniments by artists, and are either added to songs that didn’t have piano originally, or that are designed to augment rather than to replace the piano in the original recording.
I recently had a customer ask if I could figure out a way for the Disklavier to play the piano portion of a particular song that was important to him.
As an alternative to Ivory, Onset and Frames can be locally installed. This software is dated (2018), and there are many frustrations with attempting to run such an old Python program, so I opted not to use this solution. However, if you have a high-end system with a powerful GPU and the free time to get it running, it’s a free option. You’ll also need to train your own model, with was estimated to take several days on my GeForce RTX 4080.
Separating the Tracks
I used the 5stems model in Spleeter, which allows you to individually separate the piano. See the instruction below.
spleeter separate -o ./tmp -p spleeter:5stems "sample.wav"
Recombining the Tracks
After reviewing each track, I found only the bottom vocals track had usable audio; the others were filled with artifacts, so I simply removed them. However, in songs with more instrumentation, this would be an important step. Review the tracks, listen to them individually, and remove any artifacts you can, applying filters as necessary.
Next, I used the Ivory App to transcribe the piano audio track. Ivory is an AI-driven piano transcription tool that converts piano audio into sheet music or into MIDI files. Utilizing advanced deep neural networks, it offers high transcription accuracy. I converted my piano.wav file (produced by Spleeter) into an mp3, and then uploaded it to Ivory.
Syncing the Audio
After downloading the MIDI file, I found that the MIDI file did not properly sync with the audio. In order to solve this, I synthesized the audio (using FluidSynth with Yamaha C7 samples). I then imported this into Audacity, and played the isolated piano alongside the original audio. After a few attempts, I then moved the audio back and forth until I determined exactly how much time had to be added to properly sync the two pieces.
After carefully adjusting the audio which I’d synthesized from the MIDI file in Audacity, I determined that the MIDI file needed a total of 1.150 seconds added to it. This is a decimal fraction, rather than seconds in 60ths of a second, which is how Ardour determines time.
Seconds in 60ths = Integer Part + (Decimal Fraction × 60)
Just take the decimal component of the number (.150, in this case), and multiply it by 60. In this case, we end up with 1:09 seconds. Now we have a number we can use in Ardour.
Once the MIDI file is downloaded, name the MIDI file from Ivory and the piano-free audio from Audacity identically, and transfer them onto a USB stick. The properly named files will look something like this:
01MySong.mid 01MySong.mp3
Provided the filenames are identical (excepting the extension), the two files will be recognized as the same song by the Disklavier.
Your Disklavier is now ready to play both files in sync! The keys will move to the isolated piano track, and the audio will play alongside it without any competing piano sounds.
Customers often ask where they can get songs for their Nalbantov-equipped Disklavier. If you’ve explored the other pages on my website, you know I’ve managed to cobble together a very large inventory of public domain music. For those using Nalbantov drives in older Disklaviers, I’ve preassembled a 108 disk selection, formatted using the ESEQ format compatible with those older systems.
I have a customer who recently upgraded his Mark IV to a DKC-900, and wanted to add larger Bluetooth enabled speakers. We used Rockville TM150B 10″ Speakers. Although the speakers are powered, and amplify signal quite well, we nonetheless found the audio output from the Disklavier was a bit low. I added an RCA preamp to amplify the signal going into the speakers. The RCA preamp is zip tied in place using 24″ zip ties. These work wonderfully for strapping components to the beams.
The speakers underneath the piano are present, but are no longer powered or connected.
The most important part of this step is that you write the files as “Renamed MIDI files.” I typically name each one with the name of the track, and make sure each name starts with the track number (00, 01, 02…). This makes it much easier to keep track of which MIDI file goes with which MP3 later on.
Below, you can see the files listed after ripping the audio CD, and after backing up the floppy disk drive using Player Piano Floppy Backup Utility. The floppy disk tracks are MIDI files and have a .mid extension. These contain the instructions to operate the piano. The CD tracks have been ripped as MP3 files and therefore have a .mp3 extension—these contain the audio.
All the files are present, but they will not yet play correctly in the Disklavier, as the filenames do not match.
I wrote a short Python script to automatically rewrite all the filenames to match. Using the numbers at the beginning of each filename, it pairs together matching MIDI and MP3 files and names them whatever the name of the MIDI file is, but without spaces or symbols. This appears to be the same formatting of downloadable Disklavier albums.
Whether you use the script or not, the before and after directory listings indicate how you must rename the files.The script is called using the following syntax:
Note that now the MP3 and MIDI files have identical names for each song, identical capitalization, and that all spaces and symbols have been removed. In the ENSPIRE, unlike earlier iterations of the Disklavier, filename length does not seem to matter. Here’s a graphical representation of the last folder, ready to move:
It’s Time to Play!
At this point, you can move the complete folder (in this case, Kingston Trio) onto a USB stick, and insert it into the front of your ENSPIRE controller.
The Mark IV utilized a spinning hard disk, which was more than sufficient for the technology of its time. Even advanced systems like the Yamaha Disklavier don’t demand exceptionally fast read speeds, as piano notes aren’t played within microseconds of each other. However, spinning hard disks do come with inherent drawbacks. Being mechanical, they are prone to eventual failure, and are noisy. Additionally, during system updates, the limitations of their read and write speeds become evident, resulting in updates that can take nearly an hour to complete.
Whether you’ve chosen to upgrade because of the improved read/write speed, or you’ve simply arrived here because the hard drive has failed, or an update has been interrupted, read on!
First, you’ll need a new solid state drive with a minimum of 80 GB of storage capacity, as well as an IDE to SATA adapter. The 120 GB OWC Mercury Pro Legacy comes with all necessary components. (Note that, although Richard used this, and it fit neatly into the system, I installed mine using a 120 GB Patriot Burst drive and Kingwin SATA to IDE adapter, so my pictures differ. His OWC product is a neat, all-in-one solution.)
Installation
Remove the control unit from the piano by first unscrewing the parallel port connector using the two flat blade nuts on the sides of the port.
Unplug all the cables and then carefully unscrew the control unit from the piano. It is very heavy, so carefully lift it down and turn it over.
Unscrew all the black screws on the top face of the control unit that would normally be against your piano. This surface is the unpainted, silver surface.
Carefully remove the two plugs from the hard drive. Unscrew the drive underneath using a Phillips screwdriver with lots of pressure taking care not to strip the screws.
To create your own backup on Linux or Mac, you can use the dd instruction in a terminal. Note that you’ll need to adjust /dev/sdX to be whatever the location of your hard disk is! On Mac, this will be similar to /dev/rdiskX.
The drive should mount to your Macintosh or Linux computer.
Using the terminal, type in “diskutil list” command shown as below, then press “Enter” to list all the disks in your Mac computer. Take down the number of your USB drive. Here assume that the USB drive number is “2”.
Type in the following command, replacing “#” with your USB drive number.
diskutil unmountDisk /dev/disk#
Then press “Enter” to unmount it.
Type in the following command. On Mac, replace “/path/to/your.img” by dragging the image file from the Finder into terminal. On Linux, type the path. Then press “Enter” to burn the IMG image file to the USB drive.
Note that, on Windows, you can burn ISO files over USB using Rufus.
Unmount your USB drive, put the red adapter back on, and screw it into your Disklavier top assembly. You will need to use the middle screws to give it enough room to be able to have the cable attached and close it.
Voilà! You have now updated your system and changed your drive to solid state!
This Java program will recursively rename .fil files in the specified directory, ensuring they follow the naming convention described, and convert all filenames to uppercase. If, for instance, you have twenty albums, direct this program to run in their parent directory, and all the albums in subdirectories will be corrected.
This script renames all files to be all-caps, and to have names exactly eight characters long. It will add filler characters if necessary. It will make sure they’re unique by incrementing a counter. These appear to be the most important factors in making files identifiable to early Disklaviers, based on my experience and those of commenters.
At this point, you’re ready to use EEXPLORE.EXE to move through each directory and prepare your PIANODIR.FIL. At a future date, I’d like to automate this.
Make certain to back up all files before running this! I can’t guarantee perfect results for all combinations of names and strings of characters.
Windows (EXE): Download and extract RenameForDisklavier.zip. Double-click on RenameForDisklavier.exe, and then select the folder containing all of your extracted albums. It will rename all the .fil files in all the subdirectories.
I recently installed a Nalbantov USB drive using an updated version of the insert and mount that I designed.
You can see based on the pictures below that the Nalbantov slim is slightly too small to fill the entire cavity left by the original floppy disk drive. Additionally, there are no mounts of any kind to hold the Nalbantov in place. This insert solves both problems: The drive screws into the insert at just the right distance and depth, and the insert also buffers the area around the outside of the drive.
I have a customer who recently experienced an issue with his Yamaha Disklavier HQ100. The HQ100 is the Japanese version of the MX100II. He primarily uses this instrument over MIDI, and finds the Disklavier quite useful.
This discussion should apply to other models of Yamaha Disklavier. The Yamaha MX100A and MX100B use different solenoids, but the designs are similar.
The symptom was that, when started, the Disklavier would play a single key at maximum velocity. It would sustain it for several seconds before releasing. Additionally, the system emitted a noisy whine while powered on. This noise turned out to be a failed power supply, and a replacement resolved that particular symptom. However, despite this, the system would still play one single key after powering on and then fail to respond to any subsequent commands.
The key that was playing was a low D (specifically, D1). I disassembled the instrument and inspected the solenoid for that key. The solenoid assembly was exuding an enormous amount of heat. The burned coil can be seen below.
There was also considerable damage to the inside of the coil assembly. The solenoid was unable to move fully back down into the rest position, as the assembly was badly melted.
I replaced the solenoid; however, this did not solve the problem. The new solenoid would activate and rapidly heat up. At one point, F1 activated instead of D1, adding an interesting twist.
I disconnected CN201, meaning that the Drive C solenoid drive board was still receiving power from the Disklavier but wasn’t receiving a signal. This isolated the problem to the Drive C board. Replacing the solenoids made it clear that they weren’t the issue. Therefore, the problem had to be somewhere on the PCB below:
I traced the circuitry back from the solenoid. In the image above, the D1 key solenoid is plugged into CN207. I verified that diodes D213-D224 were all behaving correctly (between 400-600 mV forward, and 0 back). Eventually, I was able to trace the behavior to the transistor array. My current theory is that the transistor array failed, causing current to run to the solenoid continuously. The solenoid eventually melted the plastic sleeve. This would also explain why the F1 solenoid activated in place of the D1 during later tests—both key solenoids are attached to the same failing transistor array.
Yamaha’s earlier floppy disks use the propriety ESEQ format. They also use a primitive form of copy protection, where the first sectors of the disks are missing. This means computers identify the disks as corrupt, requiring you to use specialized software to back up your Disklavier disks. In place of these sectors, Yamaha uses the PIANODIR.FIL file, which serves both as a file table and a song index.
Once you download DKVUTILS.ZIP from my site or theirs, you’ll need to extract it. The program that converts MIDI files to ESEQ files is MID2ESEQ.EXE. This program runs only on Windows, and does not seem to run with emulators. Reach out to me and I can assist with conversion.
If you have a Yamaha that’s capable of playing ESEQ only, you might also need to create a PIANODIR.FIL index. Continue scrolling down for instructions!
Creating a PIANODIR.FIL using ESEQ Explorer
If you are creating a floppy disk for use with an earlier ESEQ only Disklavier, or if you’re preparing ESEQ files for transfer to a Nalbantov USB stick, you might have to create your own PIANODIR.FIL.
Note: Please note that the filenames should be strictly eight characters long, have no spaces, and be entirely uppercase, including the FIL extension BEFORE following the process below. If you don’t do this, some pianos will be unable to read the files. I’ve created a program to conveniently rename all your .fil files at once, which is especially helpful if you have numerous albums.
First, put all the ESEQ files you’ve created in a folder together. The DKVUTILS suite includes a program called ESEQ Explorer. Once you open the program, select the directory you’ve stored your ESEQ files in (make sure they’re properly renamed according to the above instructions, or use my program to rename them for you). You’ll see a screen like the one below:
Note that, if you don’t currently have a PIANODIR.FIL, there will be a red X in front of it. That means it’s not present. Right-click on it and select Create Index. The contents of that folder are now ready to be added to a disk using the Nalbantov tools. If your file names are too long, you’ll see them renamed with ~ symbols. In my experience, this is a program, and indicates they likely won’t read in the piano. Make sure to rename them appropriately first.
I’ve also quoted the text file from the DKVUTILS.ZIP tool below, since they’re informative:
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.