Creating a BIN Image from a Yamaha Waveform Card
This article explains how to create a BIN image file from a Yamaha Waveform card so it can be used in the programmable Waveblade Card.
To do this you will need an EPROM programmer that supports the M27C4002 EPROM model. Most programmers support this EPROM. The programmer I used is the MiniPro TL866.
Additionally you will need to create an interface circuit that connects the Waveform Card to the EPROM Programmer. Ideally you should use the connector from one of the SY / TG / RM units for the Waveform Card as connecting to the Waveform Card directly will be difficult. The one I used was from an SY55 card interface PCB from eBay. For the M27C4002 side of the adaptor I used a 40 way DIL socket.
If you do attempt to make this adaptor please do be aware that your Waveform Card could be DAMAGED if something goes wrong. I hold no responsibility if you destroy your Waveform Card – don’t blame me if things go bad!
Most Waveform Cards are 512KB with the exception of the SY85 / TG500 cards which are 1MB. The adaptor circuit has a couple of switches that will target the low and high 512KB blocks of a 1MB card so to read a 1MB card you need to read it twice and join the two images together to recreate the full 1MB image.
Waveform Cards (and BIN images) can be used in all the SY / TG / RM series with the exception of the SY85 / TG500 cards. This is to do with the Card Ident number stored in each type of card. It is not an electronic issue – the electrical connections are the same for all the cards.
All the cards with the exception of the SY85 / TG500 cards have a Card ID between 0 – 4095. The SY85 / TG500 cards have Card IDs greater than 4095.
Playback problems caused by Card ID numbers:
The SY85 / TG500 1MB cards will not work in any other synth model due to the >4095 Card ID number. The synth will not play the card.
A non SY85 / TG500 (Card ID 0 – 4095) 512KB card will work in the SY85 & TG500 but when the card is plugged in the unit’s polyphony will be reduced to 16 voices. This effects the playback of all voices in the unit – not just the waveforms on the card.
We can get around these issues by loading the BIN image into sy.factory and editing the ID number to suit what synth we want to use the BIN image for.
1. To fix the SY85 / TG500 polyphony issue edit the ID of the BIN image to above 4095.
2. To make an SY85 / TG500 image play in all the other units edit the ID of the BIN image to below 4095.
Waveform Card Internal PCB
The Waveform Card PCB is quite small and sits at the bottom half of the card body. The rest of the card body is empty. This PCB is from the SY55 / TG55 Sax 1 card and was the guinea-pig for developing the programmable Waveblade Card.
There are three components on the card PCB. These are:
- ROM Chip
- Inverter Chip
- 100nF Capacitor
The ROM Chip is the largest blob of black epoxy, the Inverter is the smaller blob, and the capacitor is the small rectangular tan coloured chip. To keep the card as thin as possible the ROM and Inverter chips have no actual package body – the chip internals are mounted directly on to the PCB with the epoxy as a bonding agent.
You can see part of the bottom side of the PCB when you uncover the metal shield to expose the connector’s gold fingers.
Building the Interface Adaptor
There are four issues to note about interfacing the card to the programmer:
The EPROM programmer needs to support the M27C4002 EPROM – all of them should do this. Check your programmer for M27C4002 compatibility.
The Waveform Card ROM’s ‘ChipSelect‘ signal is a non-standard ‘active-high‘ type. A normal EPROM has an ‘active-low‘ signal. This can be fixed by using a small inverter chip in the adaptor circuit. This can be a regular 74HC04 inverter, or a single gate 5v TinyLogic chip. If you use the 74HC04 ensure the unused inputs are tied to GND.
Almost all EPROM programmers will send a high voltage (+12V) down one of the address signals (A09) to trigger an EPROM to send out data indicating its manufacturer and device type. This could kill the Waveform Card ROM so we need to prevent that happening. Don’t assume that your EPROM programmer’s software will disable the +12V EPROM Identification feature even if there is an option to do so. Some may send the +12V anyway and simply ignore the number that gets sent back. By putting a resistor inline and using a BZX79-C5V1 Zener Diode at the Waveform Card we can clamp the +12V pulse to +5V so the card does not get damaged.
If you decide to create an interface adaptor from the information in this article then accept that I am not to blame if you damage your Waveform Card!
The photo below shows the connections needed to interface the card to the programmer. The PDF of this document can be downloaded here: Wavecard Interface
There are two additional switches shown in the schematic. These were added to enable read-out of the of 1MB and 2MB cards. The only Yamaha cards that are 1MB are the SY85 / TG500 cards. No other card (except the Waveblade) has the 2MB capacity.
If you are interfacing regular 512KB cards then leave the switch part out and do not connect anything to Pin 20 & Pin 21 on the Wavecard.
Once the interface is complete the Waveform ROM can be extracted. For this I am using the MiniPro TL866 programmer.
In the screenshot below I have selected M27C4002 as the device, and un-checked the ‘Check ID‘ option to disable the +12V identification signal.
After clicking on the [R] button the Waveform Card’s data is read-out and then shown in the main window.
Now save the data block as a normal binary BIN file. This can now be uploaded into the Waveblade without any modification.
You can also edit the BIN file in sy.factory to add or remove samples from the image, or to create a new custom image from several Waveform Card BIN files.
Auditioning the Wavecard Samples
After the data block has been read from the Wavecard you can listen to the samples stored within it.
The data block will have other information contained within it like the sample names, sample pointers, looping information, and tuning.
To listen to the samples you will need a sample editor that can load in a RAW data file and allow you to edit the import parameters. For this I used Soundforge V10.
1. Go to the File Open menu. Select Raw Audio as the file type. Select the BIN file you want to import. For this example I have picked the BIN image from the SAX 1 card.
Now click the Custom button to set the import parameters:
2. In the Custom Settings select the following parameters:
Sample Type: 16 Bit, PCM
Byte Order: Little-Endian (Intel)
Header & Trailer Bytes: 0
The Sample Rate will depend on the rate of the samples in the card. This may differ across cards. For the SAX 1 card 32,000 Hz sounded more or less correct.
3. Once the BIN image is loaded the samples will appear in the edit screen.
Note the Header information at the far left of the window. This will sound like electronic garbage. Also there is a small spike at the far right of the window – this is a small chunk of Trailer data.
4. Select the Header and Trailer information and delete it:
5. Now the BIN file can be edited to extract each raw sample. Note that the looping information and any tuning data has been lost so you will need to adjust individual samples to suit.
You can listen to extracted Wavecard Samples and Waveform ROM samples from the SY / TG series on my Soundcloud Account.
A collection of Wavecard BIN Images is also available.