YesXR (Yamaha Electone SYSEX Recorder) built with Purr Data / Pd-L2Ork (Pd)

YesXR (Yamaha Electone SysEX Recorder) is a free/libre and open source Project (GNU GPL v.3) which targets the owners of ‘vintage’ Electone Series


Yamaha Electone ‘vintage’ Series

These are the Yamaha Electone CHX/HX, HS/US, EL-90s and EL-900s Series (MIDI organs) marketed worldwide between ~ 1986 and ~ 2001, associated with
the Yamaha Music Disk Recorder (MDR-x) device peripherals marketed worldwide between ~ 1986 and ~ 1996.

Currently out-of-the-box, YesXR can recognize and communicate with about 32 different ‘vintage’ MIDI Electone models.

Other Electone models could be added upon enough interest and requests from users.


  • Last Update: June 26th, 2022 — YesXR version 0.3.0

◊ Table of Contents

♦ YesXR Presentation

YesXR (Yamaha Electone SysEX Recorder) allows you to easily SAVE your Electone MIDI Data as Bulk Dump (System Exclusive) on any type of media (HDD, SSD, USB…). All files are saved as ‘Timed Text’, so expert users can analyze / edit / modify them using a simple text editor.
Accordingly to your needs, you can either save ALL-RAM*** (i.e. All MIDI RAMs Data) or only a part of it, currently REGISTRATION MEMORY, USER DEFINED VOICE or specific ‘HX’ SEQUENCER / ‘HS’ FULL MUSIC PROGRAMMER / ‘EL’ RHYTHM SEQUENCE PROGRAMMER. Then you can LOAD back your MIDI savings to your Electone.

YesXR displays in real time on its Control Panel both SysEx Data-In and SysEx Data-Out traffics in decimal format (base 10): 240d, …, …, …, …, 247d; i.e. F0h, …, …, …, …, F7h in hexadecimal format (base 16). The length of both SysEx Messages (commands) and SysEx Data (RAMs content) are very variable. The longest ones are usually SEQ | FMP | RSP Data which could take up to several tens of seconds to be transferred from the Electone to YesXR and vice and versa.
Note: All SysEx Messages & Data are received and sent in hexadecimal format at the MIDI standard baud-rate of 31,250 baud +/- 1%. Consult The Complete MIDI v.1.0 Detailed Specification or this short summary.

YesXR can be  zoomed-in (+) / zoomed-out (-) on 15 levels for adapting its Control Panel to your taste and the size of your screen (from Smartphone to TV set). Even at the maximum zoom level on a TV set screen, there is no resolution loss, thanks to its modern HTML5 GUI.

Once your computer is connected to your Yamaha Electone MIDI organ with a class compliant MIDI/USB Interface (Yamaha, Roland, M-Audio or other high quality I/Fs which are needed for heavy SysEx Data transmission), you can launch Purr Data or Pd-L2Ork and then YesXR within it.

—  Hardware  &  Software  MIDI  Connections  —
<=>  USB  <=>
PC Linux
<=>  MIDI  <=>

Purr Data
(Not Pd)
<=>  YesXR  <=>

Depending on the Operating System you are using, you will have also to use a software MIDI Patchbay to connect Purr Data / Pd-L2Ork to the MIDI/USB I/F:
– under GNU/Linux, you can use Aconnectgui or QjackCtl (see the Packages / Software Library of your distribution),
– under macOS, you can use the build-in IAC Driver with midi_patchbay, and
– under Windows, you can use loopMIDI, MIDI-OX or QjackCtl.

YESXR (Purr Data / Pd-L2Ork version) — Yamaha Electone SysEX Recorder — Control Panel

YesXR was written with Purr Data / Pd-L2Ork, an interactive visual computer music and multimedia programming language. They are improved forks of Pure Data Vanilla (Pd in short), with a modern HTML5 GUI written in JavaScript using NW.js & Chromium engine. The GUI of Purr Data / Pd-L2Ork are currently available in 3 languages: English (default), German and French.

Note that YesXR is not compatible with Pure Data Vanilla, at least because Pd is using the old fashion Tcl/Tk graphical user interface versus the modern HTML5 one used by both Purr Data and Pd-L2Ork. There are also many other significant differences between them. If you wish, consult their respective documentation.

YesXR is a free/libre cross-platform project which is working with the same features under at least free/libre GNU/Linux including Raspberry Pi OS (ARM), and proprietary macOS & Windows operating systems.

Remember, prior launching YesXR, either Purr Data v.2.17+ or Pd-L2Ork v.2.16+ must be installed and running on your computer.

♦ Electone Series Selection

There are 4 possible choices for the Yamaha Electone Series: HX/CHX, HS/US, EL1 and EL2. Each Series has a given number of recognized Models. Currently, YesXR can dialog with about 32 different models. See below YesXR Help file for the complete list of supported Yamaha Electone Series / Models.

YESXR (Purr Data / Pd-L2Ork version) — Control Panel with Yamaha Electone C/HX – HS/US – EL1 – EL2 Series selection

Before being able to receive from the Electone / send to the Electone Bulk Dump (SysEx) data, YesXR must know the exact Model of your Electone. If this is not the case, for compatibility and security purposes you cannot use the Steps (2) and (3).

♦ Electone HS/US Series Example

I’m owning a ‘vintage’ Yamaha Electone HS-6.

STEP (1): Click on the red [HSU] selector, then on the green [GET] button (left on here below picture). YesXR and the Electone are talking together and when the hand-check is okay, YesXR is displaying ->Electone HS-6<- under -Connected Organ- and HS/US-Series under the red (S) LED (right on here below picture).
Only now, we can pursue further with the Steps (2) and (3).

STEP (2): Choose the BULK Dump DATA Type you want to handle: ALL RAM, REG-MEMORY, USER-VOICE or SEQ (C/HX) / FMP (HS/US) / RSP (EL-1/EL-2). Don’t jump this step as the choice made here will have a direct impact on YesXR’s behavior!

STEP (3): The procedure will depend on the chosen [REC] (RECord) or [SD] (SenD) action.
REC: Click twice (security) on the red [REC] button, then when the OK…SYSEX_WELL_RECEIVED_from_ELECTONE message is displayed on the Control Panel, Save the File on your computer by clicking on the red [S] button which is opening the File Manager. Navigate to the desired folder, give a ‘name.ext’ to the file and click on the [Save] or [OK] button. You are done.
SD: Load the appropriate File by clicking on the green [L] button which is opening the File Manager. Navigate to the desired folder, choose a file ‘name.ext’ and click on the [Open] or [OK] button. Click twice (security) on the green [SD] button, then when the OK…SYSEX_WELL_SENT_to_ELECTONE message is displayed on the Control Panel, you are done.

After having clicked only once on either the [REC] or [SD] button you decide to change your mind, click on the white [ST/rst] button for stopping either transaction. Be careful not to stop either [REC] or [SD] once the transaction has began as this could have an unpredictable result.
If you want to reset the Control Panel, click also on the white [ST/rst] button.

Other messages can be displayed on the Control Panel to inform the performer / user about what is going on during the RECord, SenD or other transactions.

YESXR (Purr Data / Pd-L2Ork version) — Control Panel with Yamaha Electone HS/US Series selection

The File extensions .xram, .xreg, .xvoi and .xseq can be freely changed by the performer / user as long as you keep them coherent with the Data Type you want to record from your Electone. Avoid to use file extensions which are already linked to other applications.

For the users’ convenience, I have added:
– The possibility to test the Upper (UK) and Lower (LK) Keyboards of the Yamaha Electone Series. Clicking on the Auto [T]EST MIDI Check-box, YesXR will send in loop a burst of notes on 3 octaves, with Notes scaling up (pitch 48->84) on Channel 1 (UK) and with Notes scaling down (pitch 84->48) on Channel 2 (LK). To stop the burst loop, click again on the Auto [T]EST MIDI Check-box or on the white [ST/rst] button.
– The availability to reset the Electone system with the [E]RST! button in the case where the MIDI organ becomes unresponsive.

♦ Help file

This is a short description of what YesXR can do for you and your ‘vintage’ Yamaha Electone Series.

YESXR (Purr Data / Pd-L2Ork version) — Help patch

The software MIDI Patchbay used here is Aconnectgui (a GUI for ALSA Sequencer Connection Manager) under GNU/Linux (Raspberry Pi OS 11). For other Patchbays and Operating Systems, see above YesXR Presentation as well as How Do I make MIDI Work? with Pure Data which is also applicable to Purr Data / Pd-L2Ork.

For the MIDI/USB Interfaces, I’m using either the Roland UM-ONE MK2 or the M-Audio MIDISPORT 2×2 Anniversary Edition. Both devices are USB bus-powered and Class Compliant operation (no additional drivers required) under GNU/Linux, macOS and Windows.
Under Raspberry Pi OS 11, I’m also using my own interface: MIDI-ITO-HAT (MIDI In/Thru/Out Hardware-Attached-on-Top of the GPIO port).

• Debugging

In add to my Yamaha Electone HS-6 and the Console of Purr Data  / Pd-L2Ork, I’m also using the ReceiveMIDI (a MIDI-IN Monitor) and SendMIDI (a MIDI-OUT Monitor) utilities for testing and debugging my YesXR project. With these 2x MIDI monitors I can emulate (generate and read) many of the SysEx Bulk Dumps of the 32x Electone models supported by YesXR.

Read more about these 2x MIDI utilities (in French):
ReceiveMIDI & SendMIDI Monitors — Purr Data / Pd-L2Ork [ shell ] object.

⇒ The performers and users who are willing
to test my YesXR project and give feedback
are the welcome!

♦ Visual Program Patches

The following graphical patches are for people who could be interested by modifying / adapting my YesXR project to their particular needs. Remember you will need to use Purr Data v.2.17+ and/or Pd-L2Ork v.2.16+ for doing so under GNU/Linux, macOS or Windows operating systems.

—  YesXR  HTML5  Graphical User Interface   /   Top Level  Canvas  —
‘Bulk-Seq’ patch with GOP
‘Get’ patch with GOP
‘Help’ patch
   ‘Bulk-Seq-Prog’ sub-patch    ‘Sx-Notes’ sub-patch  
   ‘FileMgr’ sub-patch    

Note: Keep in mind that the here-below graphical patches are representative of a given revision number and could change / evolve over time. For getting the latest ones, consult the most recent update of the YesXR project.

• The Bulk-Seq patch is about the Control Panel of YesXR with its GOP (Graph on Parent), the MIDI Notes Burst generator, the Electone System Reset and the access to its 2x sub-patches Bulk-Seq-Prog and FileMgr.

YESXR (Purr Data / Pd-L2Ork version) — Bulk-Seq patch

• The Bulk-Seq-Prog sub-patch contains the Bulk Dump (SysEx) Data Sequencer and the necessary circuitry.

YESXR (Purr Data / Pd-L2Ork version) — Bulk-Seq-Prog patch

• The FileMgr sub-patch contains the File Manager program.

YESXR (Purr Data / Pd-L2Ork version) — FileMgr patch

• The Get patch contains the program for handling the Model IDs within a given Yamaha Electone Series with its GOP (Graph on Parent).

YESXR (Purr Data / Pd-L2Ork version) — Get patch (Model IDs & Electone Series)

• The Sx-Notes sub-patch summarizes the System Exclusive (SysEx) Messages used by YesXR. Consult the User’s Guide or Owner’s Manual of your Yamaha Electone Series for more details about them.

YESXR (Purr Data / Pd-L2Ork version) — SX-Notes patch