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):

The MDR-E+ project is now in STAND-BY!

23-03-2019 — Why that? To make it short…
Purr Data (currently version 2.10.1) has still serious ongoing issues with the proper management of real-time MIDI and Audio data. So, in these conditions it’s making no sense to pursue further the development of this project. It should return to life when the developers of Purr Data will have fixed these major issues, sooner or later.
To date, there is no plan from their side…

• Content of this article:

  • Foreword
  • Yamaha MDR-3 – Outline
  • MDR-E+ Alpha v.0.3.4 – Enhancements
  • Features
  • 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?

♦ Foreword

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.

Yamaha MDR-3 | A Music Disk Recorder for Yamaha Electones Organs with its 2 Control Panels

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.

Yamaha MDR-3 Specifications

♦ MDR-E+ Alpha v.0.3.4 – Enhancements

MDR Emulator+ | An improved MDR-3 software emulator (Music Disk Recorder) for Yamaha Electone HS Series Organs

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.

♦ Features

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 NAME
[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] + [sysexin] √ [sysexin] + [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
N/A
.txt
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
CH1-to-16 <=>
in future release
<=> CH1-to-16
  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.

Yamaha MDR Emulator+ – Alpha v.0.3.4 | Project Simplified Diagram

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.

Yamaha MDR Emulator+ – Alpha v.0.3.4 | The last version of the improved Control Panel under GNU/Linux

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.

Yamaha MDR Emulator+ – Alpha v.0.3.4 | The last version of the improved Control Panel under Windows

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).

Yamaha MDR Emulator+ – Alpha v.0.3.4 | Universal MIDI Sequencer in zoomed mode

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.

Yamaha MDR Emulator+ – Alpha v.0.3.4 | The Live Performance Sequencer in zoomed mode

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.

Yamaha MDR Emulator+ – Alpha v.0.3.4 | The Live Performance Sequencers in zoomed mode

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.

Yamaha MDR Emulator+ – Alpha v.0.3.4 | The SysEx Bulk Data Sequencer in zoomed mode

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.

Yamaha MDR Emulator+ | Pseudo Keyboards vs VMPK (Virtual MIDI Piano Keyboards) under GNU/Linux

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:

• 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

DOWNLOAD ===>
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 major changes-modifications that the Development Team of Purr Data must bring to their graphical data-flow programming environment that is geared towards real-time (which is not the case currently!) interactive computer music and multimedia applications.

Purr Data is a full-featured open-source alternative to its commercial sibling, Cycling74’s Max (Ableton).

♦ Visit MDR-E+ dedicated page

for following the evolution of this MIDI/Audio project.

Music Disk Recorder Emulator+ (MDR-E+) is a Work in Progress…

MDR-E+ project could be also adapted
to other Yamaha Electone Series
by anyone who is interested!

MDR Emulator+ | An improved, Free/Libre and multi-platform S/W emulator of the Yamaha MDR-3 expander