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.
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.
This post is intended to help you read from, write to, or replace Yamaha Disklavier floppy disks.
Some of my customers choose to upgrade their older Disklavier’s floppy drive to a Nalbantov USB drive, and want to know how to copy songs from their old Disklavier floppy disks onto a USB. Some of them just want to be able to back up their disks in case they need to make new ones later. Or maybe, you’re just trying to figure out how to write to disks your Disklavier can actually read!
The content on the original floppy disk is protected by copyright and is the property of its respective owners. These instructions are provided to assist owners of legitimate copies in converting the files for personal use on their own Yamaha instruments. Unauthorized copying, sharing, distribution, or commercial use of the converted files is strictly prohibited. By using these instructions, you agree to comply with all applicable copyright laws, licensing agreements, and Yamaha’s terms of use. I disclaim any responsibility for misuse of the information provided.
If you want your floppy disks files saved on a more modern media, you can also mail your floppy disks to me (please reach out to me at [email protected] or through my Contact page). Nalbantov also has a disk transfer service, and they can be very useful if you encounter particularly challenging disks. Make sure to use the AlexPiano for a 5% discount on orders from Nalbantov.
If you’re adding new music to a floppy disk or Nalbantov USB and have an older Disklavier (such as the popular MX100II), you’ll need to make sure the files are in Yamaha’s proprietary ESEQ format. Using the tools below, you can convert your MIDI files to ESEQ so that they will be in your Disklavier’s native language.
Obtaining Files from your Yamaha Disks
Yamaha floppy disks are a great source of songs that you know will be formatted correctly for your piano. However, floppy disks often don’t age well, and are very susceptible to sunlight and magnetic fields. (This is one more reason to back them up!)
Disklavier floppy disks cannot be natively read by your computer without special software. They will appear as unformatted disks.
There are several tools that will allow you to read them: I use the Player Piano Floppy Backup Utility 1.4, created by Mark Fontana. It’s freeware, but he requests donations. You can download it from him, or you can download ppfbu_v1.4_setup.exe from me. It can read and save directly in ESEQ format, even if the disk it’s reading from is in MIDI. It appears to run acceptably on Mac / Linux using emulators, although this can add complications.
If you copied the files in ESEQ format, there’s an extra step before your Disklavier can read them. See below!
Obtaining even More ESEQ Files from the Internet
In addition to the originals you might have, you can sometimes find these on eBay or at local music stores. Older disks on eBay are seldom tested, so there’s some risk of receiving junk disks.
There are several large online repositories in both ESEQ and MIDI formats. Some of these are of dubious legality. One legitimate resource was kuhmann.com, which had quite a large repository. I have a copy of their entire database. (I worry a lot about these older resources disappearing! They disappeared. Kuhmann’s inventory does appear to be available on the Wayback Machine, but his original website is now off the internet.)
You can also source files from Yamaha’s website, although this a more expensive option. Many of their MIDI files have multiple instruments (or even limited piano), and are more designed for their keyboards and other MIDI devices. However, they do have an entire category of Piano Solos, and these are what you’ll want to search for when selecting files. When you download these, you get their associated MIDI files, which are comfortably sized for floppy disk purposes.
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.
MIDI files that have only one track are called Type 0 files. MIDI files with multiple parts are Type 1. Occasionally, the piano will be spread between two tracks. In that case, you’ll find the piano is playing only half or so of the notes it should be. You can convert Type 1 to Type 0 files using the tool gn1to0.exe. This is a slightly cumbersome tool, but will either run on Windows or on Linux/Mac using Wine.
Please also note that the ESEQ filenames should be strictly eight characters long, have no spaces, and be entirely uppercase, including the FIL extension BEFORE creating the PIANODIR.FIL file. I’ve created a script to automate this proper naming process, discussed in my creating a PIANODIR.FIL index instructions.
Formatting 2DD Floppy Disks
Some people choose to use the original floppy disk drives in their 90s-vintage Disklaviers, rather than converting to a Nalbantov. First, it’s important to make certain you’re using the correct floppy disks. The more “modern” 2HD floppy disks require stronger magnetic fields to write, and may not always be compatible with older Disklaviers. The slightly older 2DD drives, however, will work. You can tell the difference readily: 2HD disks have openings at both corners of the Disk, while 2DD disks will have only one.
Some have reported covering the hole with electrical tape will trick the Disklavier into believing the disk is a 2DD disk. You may or may not be able to write to it using the Disklavier, but you should be able to read from it using this trick, provided your 2HD disk is formatted as a 2DD disk.
I formatted mine on my Pop!_OS Linux machine with the instruction sudo ufiformat -f 720 -v /dev/[yourdevice]. If you’re using a Windows machine, the instruction is format a: /t:80 /n:9. Pictured below, you can see what this command looks like on my Windows XP floppy transfer box. This command does work in Windows 10 and 11, but requires you to be using an external floppy disk drive that allows this format. Not all of them do.
At this point, you can transfer your .FIL files and PIANODIR.FIL file to your floppy disk. Put them in the root directory, and do not use any folders.
If you’re using an actual floppy disk, it must be a 2DD disk formatted to 720 KB. See the above section on identifying the disk and formatting it correctly.
Earlier Disklaviers can be finicky about their ESEQ files. Sometimes, they’ll work without any trouble, even without a PIANODIR.FIL file. However, particularly in earlier Disklaviers (such as the DK5R), you’ll need to be more careful with the naming conventions, and you’ll definitely need that PIANODIR.FIL described above.
I’m very grateful for the research of Mike Isreal (in the comments below), who did experimentation with his own Disklavier. Beforecreating a PIANODIR.FIL for your disk, make certain that all filenames are precisely eight characters long, and that both the filename and extension are in all-caps. The filename must contain no spaces.
Some have commented that it appears you can also omit the .FIL extension (at least in some cases). According to Nalbantov, there might be cases where a fully lower-case filename and extension are called for, although I have not run into that particular case yet.