ELECTONE

The following information is lifted from []http://serge45.free.fr/electone/] a website last update in 1999!!

=Files on a MDR Floppy disk (serge45@free.fr)=

See the MDR disk format.

The MDR disk format is very close to a standard MS-DOS format. Some OS or computers refuse to read these disks when they have been formatted on the MDR, because the format is not exactly one of the standard DOS formats. This is not a problem: format a floppy disk on your computer and then record it with your MDR. Such a floppy disk is readable on your computer.

The 40 songs are recorded in files named MDR_00 to MDR_39. Each song has two data files (or only one of them) with this name:

=Overview=

.B00 -> the B00 file containing the registrations and other settings .EVT -> the EVT file which is a kind of MIDI file, containing events like key pressed, key released, expression pedal,... The B00 file is written on the floppy disk when you press "M" and "Record" keys. It is also written when you record your performance with "Record" and then "Play" (not "Custom Play").

When the B00 file is read, the MDR displays a dash moving from rightto left. The dash moves from left to right when the file is written.

When you use the "Custom Play" button to read a song, the B00 file of the song is not read, only the EVT file is read.

The EVT file IS NOT A MIDI file, you can't read it with your MIDI software.I'm writing a program to convert EVT file to MIDI file, I hope it will be ready soon (1999!).

I spend a lot of hours on my hex editor to discover this information. I only examined files from EL40 (my Electone) and EL60/EL70/EL90 (at my Yamaha music school). The files have the same format, some part of them are simply not used on the "small" models.

=What is a BOO file?=

The BOO file contains all the settings of the Electone:


 * the registrations (8 or 16 depending on EL)
 * the order of registration shifts (EL70 and above)
 * the user voices (4 or 16 depending on EL)
 * the user flutes settings (EL70 and above)
 * the drum sequences (EL60 and above)
 * the drum patterns (EL60 and above)
 * The file contains a MIDI message called System Exclusive (SysEx) which begins with the hex bytes : "F0 43 70 78 00" or "F0 43 70 70 00" and ends with "F7". This message is listed at the end of the Electone manual as "BULK DUMP DATA".

The MIDI SysEx messages are just containers for data. The structure of the data inside these messages is not described in the MIDI standards, it depends on the MIDI instrument that sends it.

Structure of a BULK DUMP DATA:
1 byte coding the Electone model
 * 3B->EL40
 * 3E->EL60
 * 35->EL70
 * 36->EL90
 * data blocks (2 blocks to 5 blocks depending on the Electone model)

All the data blocks have the same layout:


 * a block header of 6 bytes
 * the data bytes
 * a block checksum of 1 byte (sum of data bytes + checksum = 127 computed with only 7 bits per byte )

The block header bytes are:


 * 1 byte is the type of the block
 * BLOC TYPE 0 contains the REGISTRATIONS
 * BLOC TYPE 1 contains the USER VOICES
 * BLOC TYPE 2 contains the USER FLUTES (EL70 and above)
 * BLOC TYPE 3 contains the USER PATTERNS (EL60 and above)
 * BLOC TYPE 4 contains the SEQUENCES (EL60 and above)
 * 1 byte (unknown signification ?)
 * 2 bytes coding the length of the data: length = first byte + ( 128 * second bye )
 * 2 bytes (always zero, unknown signification ?)

REGISTRATIONS DATA BLOCK
It always contains 16 registrations. It also contains the registration sequence that you can use with the "User shift" mode.

For each registration, the following settings are recorded:


 * settings of UK1, LK1, UK2, LK2, LEAD, PED1 and PED2
 * settings of rhythm
 * settings of sustain
 * settings of foot switch
 * settings of reverb and tremolo effect
 * settings of upper and lower flutes
 * selected instrument in each section of each keyboard (for instance, which strings instrument is selected when you press the "Strings" button, which brass is selected when you press the "Brass" button,...)

USER VOICES DATA BLOCK
Depending on the Electone model, 4 or 16 user voices are recorded. All the settings you can do are recorded, a voice name is also recorded.

USER FLUTES DATA BLOCK
All settings of 16 user flutes are recorded here.

USER PATTERNS DATA BLOCK
All settings of the user patterns: U1A, U1B, U1C, U1D, U2A, U2B ... U8D, U1F, U2F ... U8F

SEQUENCES DATA BLOCKS
This block contains 4 sequences of rhythm. Each steps of a sequence refers to a user or preset rhythm, in normal or fill-in mode.

=Detailed format of a B00 file=

****************************************************************************** *****                      FORMAT DES FICHIERS .B00                      ***** ****************************************************************************** FORMAT GENERAL DU FICHIER: 0000	ENTETE MIDI: 0xf0 0x43 0x70 0x78 0x00 (Bulk Dump Data) 0005	MODELE: 0x3b-EL40 0x3e-EL60  0x35-EL70  0x36-EL90 0006	BLOC TYPE 0 (REGISTRATIONS) 0D01	BLOC TYPE 1 (USER VOICES) 29C8	BLOC TYPE 2 (USER FLUTES) (sauf EL40/60) 2ACF	BLOC TYPE 4 (SEQUENCES) (sauf EL40) 2E96	BLOC TYPE 3 (USER PATTERNS) (sauf EL40) ....	FIN MESSAGE MIDI: 0xf7 -- FORMAT D'UN BLOC: -- +0000	Entete de bloc X0=type de bloc X1=0x?? X2,X3= taille des donnees du bloc ( X2 + 128*X3 ) X4=0x00 X5=0x00 +0006	Donnees du bloc +....	Checksum des donnees du bloc (complement a 7F de la somme modulo 128) -- FORMAT BLOC TYPE 0: REGISTRATIONS -- +0000	16 REGISTRATIONS UK1,LK1,UK2,LK2,LEAD,PED1,PED2: X0=T???SSSS : Tone Vib + Section X1=?VVVVVVV : volume 0x7f- 0 0x2c- 1  0x28- 2  0x24- 3  0x20- 4 0x1d- 5 0x1a- 6  0x17- 7  0x14- 8  0x12- 9 0x10-10 0x0e-11  0x0c-12  0x0b-13  0x0a-14 0x09-15 0x08-16  0x07-17  0x06-18  0x05-19 0x04-20 0x03-21  0x02-22  0x01-23  0x00-24 X2=??EEEEFF : Effet + Feet 0x0-PRE 0x0-PRE 0x1-OFF 0x1-16' 0x2-TRM 0x2-8' 0x3-CEL 0x3-4' X3=VL???DDD : user Vib + to Lower + vib Depth X4=?????TTT : Tone 0x0- 0 0x1-+1  0x2-+2  0x3-+3 0x4-?? 0x5--3 0x6--2  0x7--1 X5=??SSSDDD : vib Speed + vib Delay (sauf PED1 et PED2) X6=???????? (LEAD seulement): ? RYTH: X0=PL??SSSS : perc Ped + perc Lower + Section X1=?VVVVVVV : volume X2=AVVVVVVV : Auto var. + Volume accomp. X3=?VVVVVVV : ? X4=??TT???? : Type accomp (1,2,3 ou 4) X5=TTTTTTTT : Tempo - 40 X6=S??????? : Solostyle X7=K?MMAAPL : Knee + MOC (OFF,1,2,3) + ABC (OFF,single,fing.,cust.) + mem SUSTAIN: X0=ULP?UUUU : on/off U,L,P + U.sustain X1=PPPPLLLL : P.sustain + L.sustain X2=???????? : ? 	FOOT SWITCH: X0=???RR?FF : Rythm + Foot swtich 0x0-???? 0x0-OFF 0x1-STOP 0x1-RYTHM 0x2-END  0x2-GLIDE 0x3-FILL 0x3-???? X1=???D?L?U : Foot switch Glide: Lead + Lower + Upper X2=???????? : ? 	REVERB: X0=?RRRRRRR : reverb generale (volume) TREMOLO:X0=T???????: FAST ON/OFF YY2: (24 octets) UPPER FLUTE, LOWER FLUTE: X0=?FXXXYYY : ON/OFF + 8' + 16' X1=??XXXYYY : 4' + 5'1/3 X2=??XXXYYY : 2' + 2'2/3 X3=??XXXYYY : 1' + 1'3/5 X4=??XXXYYY : attack 2'2/3 + 4' X5=??CCCYYY : click + attack 2' X6=??RRRLLL : Rsp (6,5,...,1,0) + Lng X7=TVVVVVVV : TRM + Volume SECTIONS UK1, LK1, UK2, LK2: 14 * IIIIIIII : instrument de chacune des 14 sections section 0: (2)		section 1: (1) section ... section D: Strings SECTIONS LEAD: 5 * IIIIIIII : instrument de chacune des 5 sections section 0: (1)		section 1: Trumpet section 2: Oboe		section 3: Flute section 4: Violin SECTIONS PED1, PED2: 5 * IIIIIIII : instrument de chacune des 5 sections section 0: (1)		section 1: Tuba section 2: OrganBass	section 3: E.Bass section 4: ContBass SECTIONS RYTHME: 12 * RRRRRRRR : rythme de chacune des 12 sections section 0: (2)		section 1: (1) section 2:   		section 3: section 4:   		section 5: section 6:   		section 7: section 8:   		section 9: section A: March	section B: Waltz YY3: (23 octets) +0CA0	YY4: (3 octets) +0CA3	REG SEQUENCE : 80 * RRRRRRRR : liste des registration (numero - 1) +0CF3	YY5: (1 octet) -- FORMAT BLOC TYPE 1: USER VOICES -- +0000	USER 1 a 4 (16 pour EL70/90): (0x1cc=460 octets) X0= numero X1-X17: nom -- FORMAT BLOC TYPE 2: USER FLUTES -- +0000	USER FLUTE 1 a 8 +0040 +0080	USER FLUTE 9 a 16 +00C0 -- FORMAT BLOC TYPE 4: SEQUENCES -- +0000	SEQUENCES 1 a 4: 120 * ( XX YY ) XX : PNNNNNNN: user/Preset, Numero YY : ???SSSSF: Section Preset, Fill -- FORMAT BLOC TYPE 3: USER PATTERN -- +0000	Description des instruments (pistes) des pattern: U1A, U1B, U1C, U1D, U2A, U2B ... U8D, U1F, U2F ... U8F: TTTTTTTT : nombre de temps (-1) dans la mesure 16 * ?IIIIIII : instrument par piste X0=OFFSETLO : offset premiere mesure par rapport au debut X1=OFFSETHI : de la zone USER PATTERN X2=OFFSETM2 : offset mesure 2 par rapport au debut de la 1 X3=???????? : ? 	LONG:	X0,X1= taille de la description des mesures (X0+256*X1) YY10: (0x28 octets) MESURES: [temps] [instrument] [instrument] ... 0xff temps:	0x80=1er temps 0x81=1er temps + 1/24 temps ... 				0x98=2eme temps ... 				0xb0=3eme temps ... 				0xc8=4eme temps ... 				0xff=fin de la mesure instrument: 0AAAPPPP = Accent + Piste Y11: (2 octets) = Detailed format of a EVT file=

<<< I have to write this section >>>

=The B00.EXE program (serge45@free.fr)=

B00.EXE is a program that can read .B00 file. It generates a text listing of all the settings: registrations, flutes, patterns, sequences,...

For EL40/EL28 users (and other models which don't have the rhythm programmer): Most of the songs on Yamaha disks joined with score books can't be used on your Electone because they use programmed rhythm. With B00.EXE, you can convert these songs and play them on your Electone ! --> see bellow "Converting programmed rhythm"

B00.EXE is a very old DOS program that I wrote in 1994, but I'm still using it under Windows 95. It has no graphical user interface, you have to use it at the MS-DOS prompt. Experienced windows users can create a .BAT command file calling B00.EXE with correct parameters, and then create a registry entry for the .B00 files. --> see bellow "Using B00.EXE from Windows Explorer"

=Program setup=

create a directory on your hard disk called C:\ELSOFT (or everything else) put the files B00.EXE and PATTERN.DAT in this directory

How to use it
open an MS-DOS window from Windows go to the ELSOFT directory with: CD \ELSOFT insert your floppy disk launch the program with: B00 A:MDR_00.B00 > MYSONG.TXT choose the good B00 file: MDR_00.B00 is the B00 file of song # 1 and so on in the example above, the listing is recorded in the file MYSONG.TXT in the ELSOFT directory or your hard disk display the result with: notepad MYSONG.TXT or double-click on it in the explorer window (you may need to refresh the list of files with the F5 key) exit the MS-DOS window with: EXIT

Advanced options

The exact syntax is:


 * B00 -xxx b00_file1 b00_file2 ...

where xxx are one or more of the following options: -a display all settings -d debug mode -f dump of User Flutes -s dump of sections -v dump of USER VOICEs -x dump of all bytes -y dump of unknown bytes -4 dump only 4 USER VOICEs -6 dump 16 registrations -8 dump only 8 registrations -o generate drum sequence file -p generate drum pattern data file (don't use it, PATTERN.DAT will be erased !) -? this help text

Converting programmed rhythm
There are two ways of playing drums on the Electone:


 * select a rhythm and press the "Start" button
 * switch on the "keyboard percussion" and play drums on keyboards

When recording on a floppy disk:


 * when you select a rhythm and press "Start", you only record these two actions: rhythm button pressed and "Start" button pressed
 * when you use the keyboard percussion, you record each key you play on keyboards

The user defined drum patterns and sequences are recorded with the registrations in the B00 file. When you use on of these user rhythms, you record only the buttons you press to start the rhythm, not each key.

The EL40 and other ELs without the rhythm programmer ignore the drum patterns and sequences recorded in the B00 files. Then they play the song with a standard "March1" rhythm instead of the programmed rhythm. But these ELs can play percussion on keyboard and record them.

The B00.EXE program can convert the drum patterns and sequences of a B00 file to an EVT file playing keyboard percussion. You just have to start the song on your MDR and play melody and chords on the keyboards.

The program is not very easy to use, so follow carefully the steps:

start an MS-DOS window from Windows go to the ELSOFT directory CD \ELSOFT insert your floppy disk copy the B00 file from you floppy to your hard disk COPY A:MDR_02.B00 MYSONG.B00 launch B00.EXE with the -o option b00 -o MYSONG.B00 > MYSONG.TXT display the listing generated notepad MYSONG.TXT check the drum sequences used and the tempo of the song (example: sequences #1 and #2 are used, tempo is 120) edit the START.TXT file to change the tempo (look for keyword TEMPO) notepad START.TXT save the file and close notepad build the GEN file COPY START.TXT+MYSONG.SQ1+MYSONG.SQ2+END.TXT MYSONG.GEN convert the GEN file to an EVT file GEN MYSONG.GEN rename then EVT and B00 files and copy them to the floppy disk (choose a free song number, remember song #2 is MDR_01 !) COPY MYSONG.EVT A:MDR_01.EVT COPY MYSONG.B00 A:MDR_01.B00 exit the MS-DOS window EXIT take the floppy disk and go to your Electone... load the registration of the new song by pressing "Play" and then "Stop" select the first registration of the song (may be #1) change the rhythm to "Baroque" in the "March" section (it is the only one rhythm which produces no sound at all) save the registration with "M" and registration button light on the "D" button to keep "Baroque" rhythm all song long save the registration to the floppy disk with "M" and "Record"

The song is now ready ! Before playing you had to do an additional setting (do it each time you switch your Electone on):

in the MIDI menu, find the "EXP." setting change from "AUTO" to "IN" (in AUTO mode the expression pedal is inactive) get ready, and press the "Play" button of your MDR ! After a lead-in measure with 4 clicks, the rhythm starts.

If you want to slow down the tempo, don't use the tempo knob, it has no effect. Use instead the tempo adjustment of the MDR: "Shift" and "Tempo+" to speed up "Shift" and "Tempo-" to slow down

With an initial tempo of 120, set the MDR to 80(%) and you'll get a playing tempo of 120*0.8 = 96.

If you are working on a very long piece with two or more sequences, you can build one song per sequence for training, and a song with all sequences for playing.

Example of a song with 3 sequences, use the following DOS commands:

COPY START.TXT+MYSONG.SQ1+END.TXT MYSONG1.GEN COPY START.TXT+MYSONG.SQ2+END.TXT MYSONG2.GEN COPY START.TXT+MYSONG.SQ3+END.TXT MYSONG3.GEN COPY START.TXT+MYSONG.SQ1+MYSONG.SQ2+MYSONG.SQ3+END.TXT MYSONG.GEN GEN MYSONG1.GEN GEN MYSONG2.GEN GEN MYSONG3.GEN GEN MYSONG.GEN COPY MYSONG1.EVT A:MDR_01.EVT COPY MYSONG1.B00 A:MDR_01.B00 COPY MYSONG2.EVT A:MDR_02.EVT COPY MYSONG2.B00 A:MDR_02.B00 COPY MYSONG3.EVT A:MDR_03.EVT COPY MYSONG3.B00 A:MDR_03.B00 COPY MYSONG.EVT A:MDR_04.EVT COPY MYSONG.B00 A:MDR_04.B00 Song # 2 (MDR_01) is for training on the sequence # 1 Song # 3 (MDR_02) is for training on the sequence # 2 Song # 4 (MDR_03) is for training on the sequence # 3 Song # 5 (MDR_04) is the full piece with sequences 1, 2 and 3

The EVT files created here are very simples, you can add a lot a things in the GEN file to enhance the EVT file:


 * automatic registration changes
 * tempo change

See the description of the EVT.EXE and GEN.EXE programs !

Using B00.EXE from Windows Explorer

Put the files B00WIN.BAT and B00.REG in the C:\ELSOFT directory

B00WIN.BAT is a batch file that calls B00.EXE B00.REG adds registry entry (windows 95) for the B00 file extension

Setup:

Double-click on B00.REG to add the registry entry. Open your floppy disk with the windows explorer and right-click on a B00 file and choose "Create listing", or simply double-click on the B00 file. The listing file is created in the same directory as the B00 file, and its name is the name of the B00 file followed by .TXT. This file is automatically opened with notepad.

=EVT.EXE=

<<< I have to write it >>>

=GEN.EXE=

<<< I have to write it >>>

=MEVT.EXE=

This program is easier to use !

start an MS-DOS window from Windows go to the C:\ELSOFT directory CD \ELSOFT insert your floppy disk copy the B00 file from you floppy to your hard disk COPY A:MDR_02.B00 MYSONG.B00 launch MEVT.EXE with the name of the file to convert MEVT MYSONG.EVT a window opens with some informations about the MIDI file generated: tempo, key signature, tracks found, number of converted events,... hit the enter key to close this window you now have a new file in your ELSOFT directory: MYSONG.MID open it with your favorite MIDI player

Please notice:


 * The key signature is not recorded in the EVT file. The MEVT program computes the more suitable key by the mean of statistics on played notes. The key signature may be wrong.
 * The registrations are stored in the BOO file, the MIDI file always starts with strings everywhere. Use your MIDI player to add correct sounds.
 * The MIDI file may sound very bad, I use it to print the score.
 * The velocity and aftertouch are a little bit different in Electone world and MIDI world. MEVT.EXE tries to convert these values. Don't play back the MIDI file on your Electone.
 * Rhythms are not converted to a drum track in the MIDI file, unless drums are recorded as individual notes in the EVT file. If there is a drum track in the EVT file, it will be converted in the MIDI file, but it will be unusable because the note coding of the drums are bit different in Electone world and MIDI world.
 * You can use MEVT.EXE directly from the Windows explorer: drag the icon of the EVT file and drop it on the icon of MEVT.EXE*.