ELECTONE

From Just Solve the File Format Problem
Revision as of 12:44, 7 April 2015 by Dan Tobias (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
File Format
Name ELECTONE
Ontology
Extension(s) .b00, .evt

The following information is lifted from [[1]] a website last updated in 1999!!

Contents

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 the guide (1999) >>>

Programmes are available [2] and [3]

Source code is available [4] and [5]

GEN.EXE

<<< I have to write the guide (1999) >>>

Programmes are available [6] and [7]

Source code is available [8] and [9]

MEVT.EXE

Programmes are available [10] and [11]

Source code is available [12] and [13]

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* .
Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox