DX Android - An intelligent random DX7 voice generator


In 1983, the Yamaha DX7 synthesizer was among the first digital synthesizers, and able to create to unique sounds due to its FM synthesis approach. It has the ability to load banks of preprogrammed voices. So, countless voice banks have been shared, and numerous software programs have been written for this synthesizer over the decades.

A particularly interesting program for the Atari ST computer (in itself famous for its MIDI capabilities) is DX Android by Tom Bajoras of Hybrid Arts. Its standout feature is an intelligent randomization of the dozens of parameters of the DX7 synthesizer. This randomization follows certain constraints that ensure that in most cases a cool sounding voice is generated instead of just random inharmonic noise.

Virtual Floppy Disk for DX Android

DX Android, however, is not easy to use even under an Atari ST emulator. This is because of its idiosyncratic UI and its insistence of only saving its data on a floppy disk. Since I want to be able to run it entirely from hard disk, I wrote a custom wrapper program for the Atari ST. Don’t start DX Android directly, but launch VDISK4DX.PRG instead, after copying it into the same folder as DX Android. That loads a file VDISK4DX.DSK as virtual floppy disk. If that file doesn’t exist, it is created for you, and DX Android will then allow you to “format” it to suit its needs. When you exit DX Android, all your changes to the virtual floppy disk are dumped back to VDISK4DX.DSK, so they can be used in the next session.

While at it, VDISK4DX also fixes a bug in DX Android. DX Android would send some MIDI SysEx commands without terminator ($F7 byte). I wonder how this even worked on an original Yamaha DX7. So, when launched from VDISK4DX, the $F7 terminator byte is always added to the SysEx messages DX Android sends.

Download VDISK4DX.

Download your personal unique DX Android voice bank

Thanks to the DX Android source code being released by Tom Bajoras in 2002, I was also able to faithfully recreate his intelligent randomization algorithm (named "Android-1" in the software) as a small webservice.

Download a random voice bank.

Each downloaded voice bank is unique and contains 32 voices. Voice banks are generated in the standard SysEx (.syx) format. Use them in your favorite DX7 bank manager or listen to the voices with a DX7 emulator such as Dexed.

The DX Android algorithm

As part of my recreation, I asked an AI-model to document the intelligent randomization algorithm. You can find the lightly-edited output in a separate document.