MDR Emulator+ Alpha v.0.3.4 – The MDR-3 Emulator for Yamaha Electone HS Series (English version)
The latest version of the Free/Libre MDR-E+ project, the Alpha v.0.3.4, is now available to download for being tested by Yamaha Electone HS Series‘ performers
MDR Emulator+ = An improved, Free/Libre and multi-platform (GNU/Linux, macOS & Windows) software emulator of the Yamaha MDR-3 (Music Disk Recorder) expander built with Purr Data (an improved version of Pure Data Vanilla).
To have a global vision of the project, consult the previous articles about MDR-E+ (only in French):
- MDR Emulator+ Alpha v.0.3.4 – L’émulateur de MDR-3 pour Yamaha Electone HS Series – 2019/11/27 (the French version of this article!)
- MDR Emulator+ Alpha v.0.3 – L’émulateur de MDR-3 pour Yamaha Electone – 2019/09/22
- MDR Emulator Alpha v.0.2 – L’émulateur de MDR-3 pour Yamaha Electone – 2019/09/11
- MDR Emulator Alpha v.0.1 – L’émulateur de MDR-3 pour Yamaha Electone – 2019/08/29
Content of this article:
- Yamaha MDR-3 – Outline
- MDR-E+ Alpha v.0.3.4 – Enhancements
- Simplified diagram
- New Control Panel
- General Purpose MIDI Sequencer
- Live Performance Sequencers
- SysEx Bulk Data Sequencer (System Exclusive)
- Pseudo HS Keyboards vs. VMPK (Virtual MIDI Piano Keyboards)
- MDR-E+ Alpha v.0.3.4 – Download
- MDR-E+ – First βeta or Next αlpha?
Before using MDR-E+ under GNU/Linux, macOS or Windows, Purr Data v.2.9.0 or higher must be installed on your computer. The project consists of 2 files: the program itself (which consists of a main module with about 20 integrated sub-modules) and an Electone HS image. The whole thing weighs only about 275 KB, of which 1/4 is for the image. These 2 files are to be deposited in the folder of your choice on your computer. See the Download section at the end of this article.
Once on your computer, to launch MDR-E+, simply double-click on its file (currently mdr-emulator034.pd), which will first launch Purr Data and then the program itself. Depending on the operating system used, it will be necessary to configure on your computer the management of the MIDI interface between this one and the Electone HS Series.
MDR-E+ has been successfully tested under GNU/Linux (Linux Mint 19.2 Cinnamon) and Windows 10 (v.1903 & v.1909) connected to a Yamaha Electone HS-6 using a MIDI/USB interface (here M-Audio MidiSport Uno or M-Audio MidiSport 2×2). Above all, do not use any entry-level or unbranded interface that does not scrupulously respect the MIDI standard specifications.
Not having a Mac, I could not test this project under macOS. Nevertheless, it should work worry-free under the Apple brand.
The MDR-E+ project (under Purr Data) no longer guarantees full compatibility with Pure Data Vanilla because of differences in the management of the graphical user interface (GUI) between these two Free/Libre real-time multimedia development environments.
♦ Yamaha MDR-3 – Outline
The following is a reminder of the features of the Yamaha MDR-3 hardware expander, to be compared to the free/libre MDR-E+ project that explodes the possibilities made available to Yamaha’s Electones HS Series organ owners.
The MDR-3 – MIDI music recorder/player on diskette – offers to Yamaha’s Electone owners digital music recording (real-time performance on the upper (UK) – lower (LK) and pedal (PK) keyboards), voice and registration, overprinting, full or partial playback, repetition and much more.
The MDR-3 supports only the very old 3.5-inch dual-sided dual density diskettes (MSX-DOS 1.25 proprietary format) with a capacity of 634 KB and may contain up to 16 songs and/or registrations (MDR_00.EVT to MDR_15.EVT and/or MDR_00.R00 to MDR_15.R00) depending on the remaining space available on the floppy disk. The MSX-DOS 1.25 format does not use a ‘boot sector’ on the floppy disk, unlike MS-DOS 2.0 and later, which makes it impossible to read these MDR-3 floppy disks directly under Windows or other operating systems.
There are a few possibilities under Windows, as Root-A-Ripper, for reading these ‘protected’ MDR-3 diskettes.
♦ MDR-E+ Alpha v.0.3.4 – Enhancements
For the record, the MDR-E+ is at least:
- A MIDI (Musical Instrument Digital Interface) plus a SYSEX (System Exclusive) Sequencer dedicated to the Electone Hi-Style (HS) Series of Yamaha organs, and
- An Universal MIDI Sequencer for General Purpose usage,
- having for main characteristics:
- 16 individual MIDI tracks (1 channel per track) + SYSEX (Current Registration + Bulk Data) + SMF (Standard MIDI File)
- Reads/Writes MIDI files (.mid/.kar & .txt (Purr Data – Pure Data format)) to/from HDD-SSD-USB media
- with a flexible architecture so that it can be adapted to other Yamaha Electone Series
- Compatible with the following operating systems – Free/Libre GNU/Linux and Proprietary macOS + Windows
List of main developments:
- Optimization of the Control panel ergonomics which is always flexible, zoomable (16 levels) as well as full screen
- Added contextual messages for the performer in most modules
- Added HS – All and None (Tracks) choices to the Individual Tracks Performance Sequencer
- The File Manager is now fully integrated directly into the two concerned modules (General Purpose Sequencer & SysEx Bulk Data Sequencer)
- Fixed known bugs
- Improvement and optimization of the different modules operation
- Addition of flow control mechanisms (SysEx-In/Out and Midi-In/Out)
- Strengthening mechanisms against crashes
- Improved documentation in the different modules (for easy reuse)
- The rest of the (invisible) work was essentially done under the hood
Convert MIDI files from GM/XG format to Electone HS format
As mentioned earlier, the Yamaha Electone HS Series are not in the GM/XG format of the MIDI standard because they were released a few years before this standard was finalized.
To Do List: It is planned in the list of things To Do that by the time of the publication of the first final version of MDR-E+ a new module will be integrated in the project in order to be able to convert-transpose GM/XG format MIDI files to the Electone HS MIDI format. This will allow the playback-modification of standard MIDI files (SMF) on the Electones HS with more realism but still with some limitations.
This integration will be done step by step and the performer can decide what he/she wants to convert-transpose, with first the conversion of the Channel numbers (source 1-16 -> target 1-16), then the Program Change -PC- numbers (source 1-128 -> target only 1-8 or 1-16), and finally a few other parameters.
Summary for the Alpha 0.3.4 version of MDR-E+.
|CONTROL PANEL||General Purpose Sequencer||Performance + Cur-Reg Sequencers||SysEx Bulk Sequencer||Comment|
|SEQUENCER||1 TRACK||16 + 1 TRACKS||1 TRACK|
||[seq MIDI Type 0]||[seq T1] to [seq T16] + [seq TREG]||[seq BULK]||i.e. 19 [seq] in total|
|FEATURES||MIDI Recorder-Player + Conversion 1xTK => 16+1xTK||Electone MIDI Performance + Cur-Reg SysEx + Conversion 16+1xTK => 1xTK||HS ALL RAM SYSEX||Much more than the original MDR-3|
|MIDI IN/OUT||√ [midiin] + [midiout]||√ [midiin] + [midiout]
|MIDI THRU||√||√||Built-in loopback|
|Channel/Track||16×1||1×16 + 1xSysEx||1xSYSEX|
|RT RECORD||√||√ track by track or all||√||Real Time|
|Write SMF||√ Format 0||Std MIDi File|
|PLAYBACK||√||√ track by track or all||√||[bang) [start)|
|Read SMF||√ Format 0 & 1||Std MIDi File|
|Conversion||√ [seq0] <=>||√ <=> [seq1-to-16 + cur-reg]||Mono/Multi TKs|
|File disk Read/Write||√
.txt + .mid
|Use System File Manager|
|Chrono display||√ mm:ss||√ mm:ss||[clock]|
|Play Tempo||√ +/- 40-240 bpm||√ +/- 40-240 bpm||[start) [metro]|
|Full Music Programmer
||√ Separate Playback||commands for CSP/RSP + FMP||Electone HS Series|
|Synchro Tempo||√ internal/external||Auto / Manual|
|MIDI Channels Transposition
||in future release
|in future release
|forecasted for 1st Beta|
|HS Voices Volume + Balance
||√ UK + LK + Arp. Chord + Rhythm||√ UK + LK + Arp.Chord + Rhythm||forecasted for 1st Beta|
Note: A number of Purr Data objects and glue are not really required for the good operation of the MDR Emulator+. They are only present to check the smooth running of the project and facilitate its debugging.
♦ Simplified diagram
This diagram, accessible from the MDR-E+ Control Panel by clicking on [pd diagram], provides a synthetic view of the project. It allows the performer to better understand how the project works for easy use and appropriation.
Note: MDR-E+ has a built-in LoopBack (MIDI-THRU) function that automatically connects, when necessary, the MIDI Inputs/Outputs of the Performance Sequencer and the General Purpose Sequencer during the Play/Convert operations (P+C – Play/Conversion) .
♦ New Control Panel
The new MDR-E+ Control Panel (Alpha v.0.3.4) has been optimized, new instructions have been added, and it remains entirely in English to make easier its international use.
The Control Panel of the MDR-E+ is zoomable on 16 levels without any loss of the visual quality. Everyone can thus find their best level of visual comfort according to their need to focus on such or such module. See the screenshots below.
The appearance and content of the Control Panel are identical, regardless of the operating system in service.
Whether under GNU/Linux, macOS or Windows, the user interface is always the same. The performer can easily switch from one system to another and always be in known terrain. These are the beauty and effectiveness of a Free/Libre, open source and multi-platform project.
On the other hand, the use of a MIDI/USB physical interface differs from one operating system to another. It will be necessary to refer to the documentation specific to each system. You can also consult the integrated documentation (work in progress) to MDR-E+, accessible from its Control Panel by clicking on [pd help-aide] (English and French), and read more particularly the end of it .
♦ General Purpose MIDI Sequencer
The General Purpose MIDI Sequencer (GPMSeq) is universal multi-purpose sequencer (RAM/Disk). It can be used for:
- Play/Record MIDI files (single-track / 16-channels) with playback tempo variation.
- Save records to disk in .mid format (SMF Type 0) or .txt (Purr Data format).
- Read files from disk in .mid/.kar format (SMF Type 0 and 1) or .txt format (Purr Data format).
- Serve as a gateway to the Performance Sequencer (16 tracks / 16 channels) when we want to edit such or such track.
- Also convert a previously recorded HS Performance file with the current registration of the Electone (Custom Record).
Note: The General Purpose MIDI Sequencer can be used in place of the Performance Sequencer as long as the performer does not need to work on a specific track/channel or does not record the current Registration on the Electone.
♦ Live Performance Sequencers
Live Performance Sequencers break down as follows:
- The Live Performance Sequencer (LPSeq) with 16 tracks / 16 MIDI channels whose controls operate all tracks.
- The Individual Tracks Performance Sequencer (ITPSeq) uses the MIDI engine of the LPSeq but its commands allow you to act directly on each Track/Channel.
- The Cur-Reg Sequencer (CRSeq) is coupled to the LPSeq and allows recording, or not, the registration memory currently placed on the Electone HS at the beginning of a new performance – of a new recording.
- LPSeq + ITPSeq + CRSeq work only in the computer’s RAM (limitation due to objects currently available in Purr Data + extensions). To save an HS Live Performance, the performer must first convert it (P+C) to the GPMSeq and then save the file on disk with this sequencer.
Live Performance Sequencer / Cur-Reg Sequencer
Unlike the General Purpose MIDI Sequencer (GPMSeq), the Live Performance Sequencer (LPSeq) is multi-track (16 tracks synchronized with 1 channel/track). It is associated with it the Cur-Reg Sequencer (CRSeq) which is a SysEx mini-sequencer. LPSeq has the same commands as GPMSeq, but it can not directly record the HS Performance to disk, it must first be passed to GPMSeq.
Individual Tracks Performance Sequencer
ITPSeq uses the MIDI engine of LPSeq. Its controls allow you to manage the HS Performance track by track in both recording and playback or a combination of both.
It’s with this sequencer that I spend most of my time when performing live recordings on my Electone HS-6.
3 other modules are visible in the above screenshot:
Electone HS Model ID lets you know the exact model of your connected Yamaha Electone (HS-4, HS-5, HS-6, HS-7 or HS-8). This information is SysEx (messages and data).
Electone Registration Memory allows you to either control (Send) the registration memory on the Electone HS or to display (Receive) the changes made to that memory on the Electone HS or from the HS Performance during playback. This information is MIDI Program Change (PC messages).
HS Expr. Pedal is used to control the expression pedal of the Electone HS Series. To enable this action, you must first validate it on the Electone HS: Multi-Menu # 10 -> Ext. Midi. Cont. -> +3. This information is MIDI Control Change (CC messages).
♦ SysEx Bulk Data Sequencer
This SYSEX Sequencer (SXSeq) is exclusively for Yamaha’s Electone HS Series.
Nevertheless, this module can be easily modified to adapt it to other MIDI equipment using SysEx, provided to have access to the list of SysEx messages of the concerned equipment.
SXSeq allows you to save all or part of the RAM of the Electone HS to disk (regardless of the HS Performance). Electone HS ALL-RAM = REG.MEM + CSP/RSP + FMP + User Rhythm Patterns & Voices + CUR.REG.
Among the possible choices, I have selected 4 that seem the most useful: ALL RAM – REG.MEM – CSP/RSP and FMP. See the Electone HS Series documentation for more information.
SysEx files are saved in .TXT format (Purr Data). The name of the file extensions is free, but I strongly suggest that you have a structured name so you can navigate easily among them, as in the above screenshot.
♦ Pseudo Keyboards vs. VMPK (Virtual MIDI Piano Keyboards)
MDR-E+ integrates two modules: Display and Pseudo 5 octaves Keyboards.
Display allows, after selecting the MIDI source, to display the channel number, octave number, name and velocity of each musical note. Pseudo 5 octave Keyboards display each musical note on a ‘Pseudo’ Electone HS Series keyboard based on the channel number used.
It is also possible to use virtual keyboards, like VMPK (Virtual MIDI Piano Keyboard) which is compatible GNU/Linux, macOS and Windows.
VMPK is a MIDI event generator and receiver. It does not produce any sound by itself, but can be used to control a MIDI synthesizer (hardware or software, internal or external), here the Yamaha Electone HS Series. You can use the computer keyboard to play notes, but also the mouse and/or a touch screen. You can use the virtual keyboard to view the notes played by an instrument such as the Electone HS or a MIDI file player such as the MDR-E+. To do this, connect the MIDI output port of your Electone HS and/or MDR-E+ to the MIDI input port of VMPK.
In the example above, I use 3 instances of VMPK in parallel which I have set:
- the number of keys -> UK = 61, LK = 61 and PK = 20,
- the height of the start key -> C / Do for the 3 keyboards,
- the number of the basic octave -> 3 for the 3 keyboards, and
- the MIDI channel used -> UK = 1, LK = 2 and PK = 3.
These 3 virtual keyboards work as well:
- in MIDI-IN <- Perform-OUT / General-OUT of the MDR-E+ and Midi-OUT of the Electone HS
- than MIDI-OUT -> Midi-IN of the MDR-E+ and Midi-IN of the Electone HS-6.
Under GNU/Linux, connection management is easily handled by Patchage, a user-friendly MIDI patching bay (ALSA / JACK).
♦ MDR-E+ Alpha v.0.3.4 – Download
• Purr Data (Pd-l2ork) / An improved version of Pure Data Vanilla
To use this Free/Libre MDR-E+ project, ‘PURR DATA’ must be first installed on your computer!
The current version is 2.10.0 of November 2019 which is compatible with GNU/Linux, macOS and Windows operating systems.
See the following links to discover and install Purr Data:
- Introducing Purr Data (Pd-l2ork) – Object-Oriented Graphics Programming (in French!)
NB: Among other developments, the installation of JGU Packages under GNU/Linux has changed since late August 2019 from PPA (Personal Package Archives – Ubuntu) to OBS (Open Build System – openSUSE). See details in the following links.
- Purr Data – Jonathan Wilkes cross-platform Pd-l2ork version
For the record: Jonathan Wilkes’ Purr Data, also known as Pd-l2ork v.2, is an improved version of Miller Puckette’s Pure Data (Vanilla). It is based on Pd-lork by Ico Bukvic, which is in turn a derivative of Pd-extended (obsolete) by Hans-Christoph Steiner.
- Download JGU packages – for recent versions of GNU/Linux distributions (Arch, Debian, openSUSE, Ubuntu, and their variant-derivatives)
- Installation instructions – JGU (Johannes Gutenberg University) packages
- Downloads – for macOS and Windows, with older versions of GNU/Linux
• Free/Libre MDR-E+ Project (Music Disk Recorder Emulator+)
Once Purr Data v.2.9.0 or higher is installed on your computer and tested (at least MIDI), you can download the MDR-E+ project below. Unzip the folder and put its 2 files (program + image) in the directory of your choice on your computer under GNU/Linux, macOS or Windows.
Music Disk Recorder Emulator+ / αlpha v.0.3.4
||mdr-emulator034.zip||Build.20191124||File size ~ 130 KB|
• Bugs Tracker / Wish List
Feel free to report about your installation and usage concerns, the bugs you may encounter and suggestions for improving the MDR-E+ project. My email address is inside the program. If you have any questions before that, go through the form on the Contact page of this site.
♦ MDR-E+ – First βeta or Next αlpha?
This βeta has fallen behind, which is why the publication of this αlpha v.0.3.4.
Before publishing the 1st βeta of the project, I’m waiting for some changes-modifications that the Development Team of Purr Data must bring to their graphical data-flow programming environment that is geared towards real-time interactive computer music and multimedia applications.
Purr Data is a full-featured open-source alternative to its commercial sibling, Cycling74’s Max (Ableton).