Yamaha Electone Simple SysEx Recorder (YES-XR)

YES-XR (Yamaha Electone Simple SysEx Recorder) is a free/libre and open Project (GNU GPL v.3) which targets the owners of the ‘vintage’:
Yamaha Electone Series (MIDI organs) marketed worldwide between ~ 1986 and 2001, and
– Yamaha Music Disk Recorder (MDR) peripherals marketed worldwide between ~ 1986 and 1996.

This version of YES-XR (a shell script with GUI) ‘should run’ under any GNU/Linux operating systems such as Arch, Debian, Red Hat, Suse, and all their derivatives-flavors (like Manjaro, Endeavour OS, Ubuntu, Linux Mint, MX Linux, Pop!_OS, Elementary, Deepin Linux, Zorin, Fedora, OpenSuse, and surely more).

◊ Table of contents

♦ Presentation

YESXR -a utility software- is handling the ‘All-RAM Data’ –i.e. Registrations & other Non-Performance data- of the compatible Yamaha Electone ‘Vintage’ Series.
It can be used as a partial replacement or substitution of the Yamaha ‘Music Disk Recorder’ peripheral devices (MDR-2 / MDR-3 / MDR-4 / MDR-10) designed exclusively for Electone use, -but their file formats are not compatible-.

Overview of Electone’s All-RAM = Registration & other Non-Performance data
This applies to both  Electone <==> YESXR  -and-  MDR ==> YESXR  transmissions
  • Data memorized at the Registration Memory (#1-to-8 or #1-to-16)
  • Data of the current Registration
  • Internal Sequencer (iSEQ) data or Full Music Programmer (F.M.P.) data
  • Data of the Chord Sequence Programmer (C.S.P.) / Rhythm Sequence Programmer (R.S.P.)
  • Data of the User Rhythm Patterns (U.R.P.1) or User Rhythmic Patterns (U.R.P.2)
  • Data of User defined Voices (U.V.)
  • For the Specific List of All-RAM data which can be recorded, please consult the User’s Guide or Owner’s Manual of your Yamaha Electone Series / Model.

Note: ‘YES-XR’ is not recording (Live) Performance data -but- future ‘YES-MDR’ will do it!

YESXR — Yamaha Electone Simple SysEx Recorder — Control Panel (Yad version)

• YESXR -a GNU/Linux utility software- allows you to easily

  • Record/Save All-MIDI Data from your Yamaha Electone’s RAM to your GNU/Linux PC’s Disk,
  • Load/Send back these All-RAM Data from your PC’s Disk to your Yamaha Electone MIDI organ.
  • Backup/Save All-RAM Data stored on your Yamaha MDR’s floppy disk (song by song) to PC’s Disk.
  • YESXR is compatible with at least the Yamaha Electone CHX / HX / HS / US / HE / HC / EL Series. See the complete list of the ~ 40 Organ Models at the bottom of this article.
  • This is achieved through the handling of dedicated MIDI (Musical Instrument Digital Interface) System Exclusive Messages (Electone common messages — BULK DUMP related messages (F0h, 43h, …, …, …, F7h): Request-Electone-to-Send All-RAM-data & Request-Electone-to-Receive All-RAM-data).

YESXR is a portable software, thus it can be used from either an internal disk (HDD or SSD) and/or an external one (USB stick, USB storage or SD Card).

• To run successfully YESXR

  • The Alsa-utils v. ≥ 1.2.2 -and- Yad v. ≥ 0.40.0 & ≤ 9.1.0 software packages must be installed in your GNU/Linux operating system.
    • If they are not installed yet, depending of your GNU/Linux experience, this can be done from:
      • the Software Center / Manager – a GUI utility for easily exploring, installing and removing software in your preferred distribution (see below screen capture), or
      • the Command Line in a Terminal; e.g.:
        – Debian & derivatives (Linux Mint, Pop!_OS, Ubuntu, etc.): sudo apt install <application_name>
        – Arch Linux & derivatives (Manjaro, Endeavour OS, etc.): sudo pacman -Syu <application_name>
  • The script’s GUI is using the Theme of your Desktop environment. Make sure to use a ‘Dark’ system Theme for allowing a good readability of the messages.
  • The Testing Terminal is now only used on-demand for displaying potential issues when using YESXR.
Yad‘ / Display GTK+ dialogs in shell script — An improved fork of Zenity program
  • YAD is a program that will display GTK+ dialogs, and return (either in the return code or on standard output) the users input.
‘Alsa-utils’ / Advanced Linux Sound Architecture – Utilities
  • This package contains the command line utilities for the ALSA project.

YESXR — Installation of Yad & Alsa-utils from the Software Manager (GNU/Linux)

♦ Future versions (shell script with GUI)

Note: Currently there are no release dates planned for these future versions.

• Yes-XR — Yamaha Electone Simple SysEx Recorder

  • Improve Recording post-process time, especially for Backing up MDR-to-File.

• Yes-MDR — Yamaha Electone Simple Music Disk Recorder

  • Yes-MDR will be an upgrade of Yes-XR (All-RAM Bulk Dump; i.e. Registrations & other Non-Performance data).
  • Add Live Record / Playback Performance data management — SMF ‘Type 0’ -everything is merged into a single track within the sequence- & ‘Type 1’ -individual parts are saved on different tracks within the sequence- for compatibility with other MIDI programs.
  • Add a MIDI Monitor — Capture/Display the In/Out traffic as text (documented and human readable MIDI messages).
  • Yes-MDR could replace (more or less) the Yamaha Music Disk Recorder peripheral devices (MDR-2 / MDR-3 / MDR-4 / MDR-10) designed exclusively for Electone use, -but- their file formats will not be compatible neither for the Bulk Dump (here Binary file) nor for the Live Performance (here Standard Midi File).

♦ Download YESXR — ‘αlpha version’ (GNU/Linux)

• 2021/04/18 — ‘Yad’ versions between 0.40.0 & 9.1.0 (GTK+ v.3.24.20 / 3.24.28)
Download: ==>  YESXR v.0.1.60  (~ 11 KB zipped archive)

Changes vs previous 0.1.52 release:
  • Fixed YAD versions compatibility issue between them and across distributions.
    Now YesXR can be used with Yad versions between at least 0.40.0 (released in November 2017) & 9.1.0 (released in March 2021). This fix is a compromise until the number of active YAD versions in circulation will be much less and only closer to the latest releases. The look of YesXR can be slightly different from one distribution to an other one.
  • Known bug: Random Backing up post-process time for MDR-to-File.

YESXR v.0.1.60 — Control Panel with YAD v.0.40.0 (Linux Mint v.20) & v.9.1.0 (Manjaro Linux v.21)

Note: After a successful download on your GNU/Linux PC, unzip this zipped archive and extract its 2 files YesXR-0160.sh (script) and yesxr_logo-small.png (image) in the folder of your choice somewhere under your /home/user directory.
YesXR being +/- a portable software, you can also put its 2 files on a USB stick and plug it into one of the USB ports (≥ v.2) of your GNU/Linux PC, as long as both ‘Yad’ and ‘Alsa-Utils’ are installed on the host PC.

IMPORTANT: With your System File Manager, verify/change if necessary the ‘Properties’ of ‘YesXR-0xyz.sh’ under the ‘Permissions’ tab (on your distribution this window could look different):
  • Proprietary: Yourself with full access (read/write)
  • Group: Yourself with full access (read/write)
  • Execution: Allow the execution of this file as a program!

• Version / Change History Log

– 2021/04/15 — ‘Yad’ version 0.40.0 (GTK+ v.3.24.20)
    Download: ==>  YESXR v.0.1.52  (~ 11 KB zipped archive)
  • Changes vs previous 0.1.43 release:
    • Added the possibility to Record All-RAM (Bulk Dump data) directly from the physical Yamaha MDR (Music Disk Recorder) vintage devices (MDR-2 / MDR-3 / MDR-4 / MDR-10). This is allowing the performer to reuse his/her existing Electone All-RAM library with YESXR.
      – Today: MDR ⇒ MIDI/USB I/F ⇒ YESXR / YESXR ⇔ USB/MIDI I/F ⇔ ELECTONE
      – Yesterday: MDR ⇔ MIDI I/F ⇔ ELECTONE / ELECTONE ⇔ MIDI/USB I/F ⇔ YESXR
    • Very Hot Issue: YAD versions! YESXR is not fully compatible with YAD versions ≥ 1.0 up to today v.9.x! The Yad developers are just getting me totally crazy!
      Investigations are in progress
      to try to find a viable and long term solution… Wait & see…
– 2021/04/12 — ‘Yad’ version 0.40.0 (GTK+ v.3.24.20)
    Download: ==>  YESXR v.0.1.43  (~ 10 KB zipped archive)
  • Changes vs previous 0.1.40 release:
    • Improved Errors messages for the MIDI/USB Interfaces; i.e. Not detected & Not selected
    • Minor technical and cosmetic tweaks
– 2021/04/08 — ‘Yad’ version 0.40.0 (GTK+ v.3.24.20)
    Download: ==>  YESXR v.0.1.40  (~ 10 KB zipped archive)
  • Changes vs previous 0.1.33 release:
    • Added a MIDI/USB I/F Selection window — Choose a specific pair of In/Out ports among multiple MIDI/USB Interfaces/Ports (rather than being limited to the 1st listed one)
    • Fine tuned Progress Bar/Window for both Recording and Sending
    • Fine tuned the program reactivity
– 2021/04/01 — Yad’ version 0.40.0 (GTK+ v.3.24.20)
    Download: ==> YESXR v.0.1.33 (~ 23 KB zipped archive)
  • Changes vs previous 0.1.24 release:
    • Major change from GxMessage to Yad dialogs
    • Terminal is not used anymore for normal operation (just for testing and debugging purpose)
    • Added File Selection Window for both Recording and Sending
    • Added Progress Bars for both Recording and Sending
    • Fine tuned the errors handling
– 2021/03/21 — ‘Gxmsg’ version — Download: ==> YESXR v.0.1.24 (~ 2.1 KB zipped archive)
  • Changes vs previous 0.1.20 & 0.1.23 releases:
    • Minor GUI and names updates
    • Minor technical tweaks
    • Timing adjustments for older MIDI/USB I/Fs (based on users’ feedback)

♦ YESXR OPERATION — new ‘Yad’ version

To make the use of YESXR (Yamaha Electone Simple SysEx Recorder) as easy as possible its operation is automated as much as doable.

• CONNECTING your DEVICES together
  • First, you must properly connect your compatible Yamaha ELECTONE and/or your Yamaha MDR to your MIDI/USB Interface (Class Compliant) to your GNU/Linux PC.
  • Note: Without a MIDI/USB I/F connected to and recognized by your PC, you will not be able to use – explore the functionalities of YESXR.
YAMAHA Device
Cables INTERFACE Cable Personal Computer
ELECTONE Organ <===> MIDI / USBa <===> GNU/Linux
M.D.R. Peripheral ===> MIDI / USBb ===> GNU/Linux
Note: Since YESXR v.0.1.40, you can now freely select the connected MIDI/USB Interface of your choice !

Yamaha Electone Organ connected to PC thru MIDI/USB I/F

• RUNNING ‘yesxr-0xyy.sh’ script (0.x.yy = version number)
  • From within your File Manager, double-click on YESXR-0xxx.SH file, a window opens and then click on the Run button.
  • This will open the script’s GUI Control Panel.
    Since YESXR v.0.1.33, the Terminal is not used anymore, except if needed for testing and debugging purpose of the [too] many (dozens – hundreds) different possible GNU/Linux distributions.
• QUITTING the Script
  • Click on the –QUIT– button.
  • The YESXR — QUIT window is displayed and the program is quitting after a 2 seconds countdown progress bar.
• SCANNING & SELECTING MIDI/USB I/Fs
  • Note: Without a MIDI/USB I/F connected to and recognized by your PC, you will not be able to explore the functionalities of YESXR and appropriate Error windows will show up when necessary.
  • Click on the MIDI/USB button for scanning all available ALSA MIDI/USB Interfaces to YESXR.
  • The YESXR — MIDI/USB I/F Choice window appears.
  • Since v.0.1.40, Select/Click ONE among the available I/O Ports which connects your Electone to your PC. To close this window, click on the Confirm Selection button.
  • A YESXR — Selected MIDI/USB I/F window displays your I/F (I/O ports) choice and will close automatically with a 5 seconds countdown progress bar. You can also close immediately this window by clicking on the Return to Control Panel button.
  • You are back to the Control Panel window.

An example with ‘M-Audio MidiSport’ MIDI/USB Interfaces (GNU/Linux & SysEx compatible).
Note: Devices numbering could/will change depending of the Interfaces connection order, of how many Interfaces are connected to the PC, and of the distribution which is used.

MIDISPORT DIR. DEVICE NAME  (Individual Port) Here used for
UNO (1×1) I/O hw:0,0,0 USB Uno MIDI Interface MIDI 1  
2×2 Anniversary
I/O hw:1,0,0 MIDISPORT 2×2 Anniv MIDI 1 Electone Series
  I/O hw:1,0,1 MIDISPORT 2×2 Anniv MIDI 2 MDR Peripheral
4×4 Anniversary
I/O hw:2,0,0 MIDISPORT 4×4 Anniv MIDI 1  
  I/O hw:2,0,1 MIDISPORT 4×4 Anniv MIDI 2  
  I/O hw:2,0,2 MIDISPORT 4×4 Anniv MIDI 3  
  I/O hw:2,0,3 MIDISPORT 4×4 Anniv MIDI 4  
– And so on… I/O hw:x,y,z    
• MANAGING -Bulk Dump- Files
  • Since v.0.1.33, YESXR integrates a File Manager for both Record-Ram and Send-Ram.
  • Since v.0.1.52, YESXR is also using its File Manager for Backup-MDR.
  • The name of File.ext (binary file) can be freely chosen by the performer. For the .ext, it’s best to use specific extension dedicated to YESXR; e.g. .xram or .yram. This will allow you to easily handle different versions of your *.xram / *.yram files and to build your Electone’s ‘All-RAM’ library with YESXR.

* YESXR v.0.1.52 — Quick presentation — ‘Yad’ version *

• RECORDING -Bulk Dump- from Yamaha Electone to PC
  • Make sure:
    • You have previously selected the right MIDI/USB I/F connected to your Yamaha Electone organ!
  • Click on the RECORD-RAM button.
  • The YESXR — RECORDing Electone-to-File window appears (File Manager), Choose the Folder and Type a new NAME.ext -or- Select a FILE.ext previously recorded with YESXR.
  • Once done, click on the Confirm SAVE File / RECORD the button (at the bottom).
  • The YESXR — RECORDing All-RAM window appears and this window will close automatically once All-RAM will have been recorded.
  • When it’s done, the YESXR — RECORDing CHECK window appears. After having checked the size of the recorded file, click on the Read above Warning / Continue button (at the bottom).
  • When it’s finished, you are back to the Control Panel window.
• SENDING -Bulk Dump- from PC to Yamaha Electone
  • Make sure:
    • You have previously selected the right MIDI/USB I/F connected to your Yamaha Electone organ!
  • Click on the SEND-RAM button.
  • The YESXR — SENDing File-to-Electone windows appears (File Manager), Choose the Folder and Select an existing FILE.ext recorded with YESXR.
  • Once done, click on the Confirm LOAD File / SEND button (at the bottom).
  • The YESXR — SENDing All-RAM windows appears with a countdown progress bar (its timing is proportional to the size of the chosen file).
  • When it’s finished, you are back to the Control Panel window.
• BACKING Up -Bulk Dump- from Yamaha MDR to PC
  • Make sure:
    • You have previously selected the right MIDI/USB I/F connected to your Yamaha Music Disk Recorder peripheral!
    • A recorded Floppy disk is introduced into your M.D.R. -and- the desired Song number to be red is selected too! YESXR is automatically managing the PLAY/STOP commands of your MDR device.
  • Click on the BACKUP-MDR button.
  • The YESXR — BACKing Up MDR-to-FIle window appears (File Manager), Choose the Folder and Type a new NAME.ext -or- Select a FILE.ext previously recorded with YESXR.
  • Once done, click on the Confirm SAVE File / RECORD the button (at the bottom).
  • The YESXR — BACKing Up All-RAM window appears and this window will close automatically once All-RAM will have been recorded.
  • When it’s done, the YESXR — BACKing up CHECK window appears. After having checked the size of the recorded file, click on the Read above Warning / Continue button (at the bottom).
  • When it’s finished, you are back to the Control Panel window.
• ERRORs Handling

YESXR — Yamaha Electone Simple SysEx Recorder — Errors windows (Yad version)

  • No MIDI/USB Interface ‘detected’ or ‘selected’!
    The above YESXR — ERRORS! windows can be displayed after having clicked on the [MIDI/USB], [RECORD-RAM], [SEND-RAM] or [BACKUP-MDR] button. See above Scanning & Selecting MIDI/USB I/Fs.
  • No CHOICE -or- Unexpected ERROR!
    If No CHOICE was confirmed by the Performer or a Dysfunction has occurred, the above YESXR — Oops! window is displayed and the program is quitting after a 5 seconds countdown progress bar.
* YESXR v.0.1.52 — Errors windows — ‘Yad’ version *
• TESTING/DEBUGGING YESXR
  • From within your File Manager, double-click on YESXR-0xxx.SH file, a window opens and then click on Run in a Terminal button (instead of just Run for normal operation).
  • This will open a dedicated Testing Terminal indicating YESXR’s version as well as the script’s GUI Control Panel on top of it.
  • Proceed as per above for [MIDI/USB], [RECORD-RAM], [SEND-RAM] or [BACKUP-MDR] operation.
  • Report any issue (well documented) you could face to when using YESXR with your preferred GNU/Linux distribution.

YESXR — Yamaha Electone Simple SysEx Recorder — Testing & Debugging Terminal (Yad version)

⇒ For reporting issues:
In the Control Panel window, click on the Contact URL under ⇒ About YESXR under GNU GPL 3 and fill in the Contact form on the web site.

♦ It’s MANDATORY!

For reliable MIDI SysEx (System Exclusive) Data & Messages Transfer:
 – Use only very good quality MIDI/USB I/F from well-known brands.
 – Avoid all CHEAP and DIRTY Interfaces!

MIDI Tutorial — to learn more about this magical thing.

♦ Compatible YAMAHA ELECTONE
‘Vintage’ Series: ~ 40 Models (1986-to-2001)

Accordingly to their technical specifications, the Yamaha Electone ‘Vintage’ Series hereafter are fully compatible with YESXR. It has been fully tested -but only- with the Electone HX, HS & US Series.
Please, consult the User’s Guide or Owner’s Manual of your Yamaha Electone Series for the detail of the recordable All-RAM Bulk Dump.
⇒ Should you have any question, feedback and/or suggestion, please feel free to contact me through the Contact Form.

Note: Not All Electone Series/Models were marketed in All Countries.
The (Date) is the date of the 1st Release accordingly to Yamaha’s official documentation.

– ELECTONE ‘CHX’ Series: CHX-1 (1986)

– ELECTONE ‘HX’ Series: HX-1 / HX-3 / HX-5 (1986)

– ELECTONE ‘HS’ Series: HS-8 / HS-7 /HS-6 / HS-5 / HS-4 (1987)

– ELECTONE ‘US’ Series: US-1 / US-xyz (1988/89)

– ELECTONE ‘HE’ Series: HE8 / HE6 / HE4 / HE3 (1989)

– ELECTONE ‘HC’ Series: HC4 / HC2 (1989)

– ELECTONE ‘ELxx’ Series:
  • EL-90 / EL-70 (1991) ⇒ EL-87 (1995)
  • EL-60 / EL-40 (1991)
  • EL-50 (1991) ⇒ EL-57 / EL-37 (1998/96)
  • EL-28 / EL-25 (1993/92)
  • EL-27 / EL-20 (1993/92)
  • EL-15 / EL-7 (1992)
– ELECTONE ‘ELxxx’ Series:
  • EL-900 / EL-900m (1998/2000)
  • EL-700 / EL-500 (1999)
  • EL-400 / EL-200 / EL-100 (2000/2001)

– ELECTONE ‘OTHER’ Series: To Be Defined…

One example: YESXR (Yamaha Electone Simple SysEx Recorder) is fully compatible with the Electone HS Series

♦ YESXR.sh OPERATION — old ‘Gxmsg’ version

To run successfully this version of YESXR.sh ‘which is obsolete’!

  • The Gxmessage v. ≥ 3.4.3 and Alsa-utils v. ≥ 1.2.2 software packages must be installed in your GNU/Linux operating system.
• RUNNING ‘yesxr-0xyy.sh’ file (0.x.yy = version number)
  • From within your File Manager, double-click on YESXR-0xxx.SH file and then click on Run in a Terminal button.
  • This will open a dedicated Terminal as well as the script GUI on top of it.
  • In this article I’m using a Terminal with width = 90 x height = 30. Feel free to change these dimensions as you want.
• QUITTING the Script or CANCELLING Record/Send (before Start)
  • Click on the QUIT-Test button.
  • Confirm your choice by clicking again on QUIT-Test.
  • You can also cancel your RECORD or SEND choice by clicking on QUIT-Test when on the second screen you are asked to confirm your Previous CHOICE.

Note: QUIT-Test is also useful for testing the connected MIDI/USB Interfaces to your PC without having to use neither the RECORD-Bulk-Dump nor the SEND-Bulk-Dump buttons. The recognized MIDI/USB I/Fs will be displayed after having clicked twice on QUIT-Test or when on the second screen you are asked to confirm your Previous CHOICE.

• MANAGING Files

The default used file is ‘electone.xram’ (binary file) and it’s automatically saved in the same ‘folder’ than the YESXR.sh script. As its ‘name.ext’ and ‘folder’ are hard-coded into the script, they cannot be changed with YESXR.sh. You will have to use your System File Manager for handling different versions of your *.xram files and for building your Electone ‘All-RAM’ library.

• RECORDING -Bulk Dump- from your Electone
  • Click on the RECORD-Bulk-Dump button.
  • Confirm your choice by clicking again on this button (or on QUIT-Test to exit).

YESXR — Yamaha Electone Simple SysEx Recorder — ‘RECORD’ All-RAM Bulk Dump (animated)

– Your are DONE!
• SENDING -Bulk Dump- to your Electone
  • Click on the SEND-Bulk-Dump button.
  • Confirm your choice by clicking again on this button (or on QUIT-Test).

YESXR — Yamaha Electone Simple SysEx Recorder — ‘SEND’ All-RAM Bulk Dump (animated)

– Your are DONE!
• Managing ERRORS
  • YESXR.sh is able to detect blocking issues.
  • Note: Each time you connect or disconnect MIDI/USB Interface·s to/from your GNU/Linux computer, you will have to run YESXR.sh again.
    Keep in mind that the Device MIDI ports numbers (hw:x,y,z) could/will change from one user’s session to an other one.

YESXR — Yamaha Electone Simple SysEx Recorder — ‘RECORD/SEND’ Error – NO MIDI/USB I/F! (animated)

– If NO MIDI/USB I/F is connected to your PC or recognized by YES-XR either during RECORDING or SENDING or QUITTING
  • The Terminal will display:

    • => ERROR! NO MIDI/USB I/F detected!
      Please, verify All your MIDI connections!
      Now, press [Enter] to QUIT!
– If during RECORDING the received ‘ALL-RAM Bulk Dump’ flow is empty:
  • The Terminal will display under:
    • >>>>>>>>>>>> PLEASE…. WAIT….. >>>>>>>>>>>>
      The MIDI Bulk Dump transfer can take a while…
      ⇒ ‘0 bytes read’
– If during SENDING the ‘electone.xram’ file is not present in the YESXR.sh folder:
  • The Terminal will display under:
    • >>>>>>>>>>>> PLEASE…. WAIT….. >>>>>>>>>>>>
      The MIDI Bulk Dump transfer can take a while…
      ⇒ ‘cannot open electone.xram – No such file or directory’