Mercury7 editor v1.0
Control your Meris Mercury7 pedal with your web browser. View all the pedal's settings at once.
Click here to open the application
Note: some screenshots are from the Enzo editor. The Mercury7 and Enzo editors share the same features.
Requirements
- A browser that supports the WebMIDI standard. Currently, only Chrome and Opera support this standard.
- A Meris MIDI I/O interface.
- A MIDI interface in your computer. This can be a homestudio audio interface or, if your computer support Bluetooth, a MIDI Bluetooth adapter plugged into the Meris MIDI I/O interface.
Setup
- Set the Mercury7's EXP/MIDI connector for MIDI communication.
- Set the Mercury7's MIDI mode to MIDI OUT.
- Set the Mercury7's MIDI PORT.
- Connect the Mercury7 with the MIDI I/O interface. Use a stereo (TRS) jack cable.
- Connect the MIDI I/O interface to your computer.
- Open https://studiocode.dev/mercury7/editor
- Allow the browser to access your MIDI devices.
- In the top-right of the editor, select the MIDI input and output devices corresponding to the MIDI I/O and the MIDI port corresponding to your Mercury7 MIDI port setting.
- Move a knob on your Mercury7, the corresponding control in the editor must react accordingly.
- Play some sound through the Mercury7 and move a knob in the editor. The sound should change as if you have moved the same control on the Mercury7.
- Enjoy your Mercury7!
Note: if you can switch presets from the editor but nothing happens when you move a control, that means the input and output devices are correct but that the MIDI channel is incorrect.
MIDI on the Mercury7
If you can't get the MIDI communication working, check the following on the Mercury7:
- The Global Settings EXP MODE is set to MIDI
- The Global Settings MIDI is set to MIDI OUT
- Choose a Global Settings MIDI CHANNEL.
- The cable between the Mercury7 and the MIDI I/O interface is TRS (stereo).
- The MIDI I/O interface is powered on.
- The Mercury7 is powered on.
- The TSR cable is connected between one of the 4 MIDI I/O jack and the Mercury7's EXP/MIDI connector.
- The MIDI I/O interface is connected to your PC.
- The MIDI editor uses the same channel as the Mercury7's MIDI channel defined in the Global Settings.
Check the Meris Mercury7 User Manual and the Meris MIDI I/O User Manual for more informations and instructions about how to set the Mercury7's Global Settings.
MIDI in the editor
Once you have your Mercury7 connected to the MIDI I/O interface, you must configure the editor:
- Select the input device
- Select the output device
- Select the MIDI channel
The editor's preferences (settings) are saved in your browser's Local Storage.
If you refuse access to MIDI, the editor will display the following message:
Waiting for MIDI interface access...
ERROR: WebMidi could not be enabled.
See the WebMIDI page for instructions about how to enable WebMIDI.
Presets
Preset selection
The square buttons 1 to 16 on the top left of the editor allow you to directly select one of the sixteen editor settings.
No communication with the Mercury7. Preset not modified since loaded. | |
No communication with the Mercury7. Preset has been modified since loaded. | |
Communication with the Mercury7 OK. Preset not modified since received. | |
Communication with the Mercury7 OK. Preset has been modified since received. |
A normal (or slightly dark) background indicates that the editor is not able to communicate with the Mercury7.
A yellow background indicates that the editor is able to communicate with the Mercury7.
No dot in the preset selector means that the preset has not been modified since it has been loaded from a file or received from the Mercury7.
A dot in the preset selector means that the preset has been modified since it has been loaded from a file or received from the Mercury7. In that case the dot means that the values in the editor (and in Mercury7 when communication is working) are different from the values stored in Mercury7 memory (or saved in the preset file, when loaded from a file).
If you want to keep your current values and store them in the Mercury7 memory then you have to use the SAVE command from the menu. See next chapter.
Saving presets
- Select a preset,
- Twist the knobs, have fun, make a great sound,
- Save the preset
From the Meris online FAQ:
To save a preset, press one of the footswitches on the preset switch, modify your sound, then hold ALT to save."
Note: you can not save to preset number different than the current number.
To save the preset, use the SAVE menu option in the editor or press and hold the ALT button on the Mercury7.
Note: if you save the preset on the Mercury7 (with ALT button), then you have to select the preset again in the editor to make sure it remains in sync with the Mercury7.
Loading presets
Presets can be stored in files (binary .syx files) and, with this editor, presets can also be stored as URLs.
When you load a preset, it is sent to the Mercury7 and replace the current live values. It does not replace the preset stored in memory. If you want to keep the preset you loaded in the Mercury7, then you need to store it, either by using the menu SAVE command of this editor or by pressing and holding the ALT button on the Mercury7.
Expression pedal
Press the Tab key on your keyboard or click "down" near the EXP slider in the editor to toggle between the two sets of values stored in a preset.
When you edit the second set of values, the control's name are written in lowercase. They are written in uppercase when you edit the default set of value.
EXP slider
The EXP slider allows you to simulate an expression pedal connected to the Mercury7.
- The slider's toe up position (slider at 0) corresponds to a opened (toe up) expression pedal.
- The slider's down position (slider at 127) corresponds to a closed (toe down) expression pedal.
The value displayed next to the slider is:
- 0 : corresponds to an expression pedal in the toe up position (default position)
- 100 : corresponds to an expression pedal in the toe down position.
How to set the values for the EXP pedal
- Set the normal values, for the toe up position of the pedal.
- Click the "down" button next to the EXP slider to enter the EXP edit mode
- Click the "copy" button next to the EXP slider (this button is only displayed when "down" is pressed)
- Set the second values, those used for the toe down position of the pedal.
- Click the "down"" button next to the EXP slider to quit the EXP edit mode
Now, when you move the EXP slider you must see the controls' values morph between the normal and second values you set.
Do not forget to save these values in Mercury7 preset memory if you like them. Use the menu SAVE command.
EXP in detail
For each of its knobs, the Mercury7 stores two values:
- the first one is the default one and is used when the expression pedal is at 0 or when no expression pedal is connected.
- the second value is the one ued when the expression pedal is at its maximum.
When you move the expression pedal between its min and max position, the Mercury7 will morph the values between those two sets of values.
Please read the Meris Mercury7 User Manual, section 3, for more informations.
This editor lets you define the values for the two positions of the expression pedal.
By default, the first set of values is always used. To edit the second sets of values you have to click on EXP down button:
The down text will be highlighted and also all the knobs names will change to lowercase. This shows you that you are now editing the second set of values.
Note: you can also use your keyboard TAB key to toggle between the two sets of values.
When you are editing the second set of of values, you can use the copy button to copy the first set of value to the second set.
To switch back to the default set of value, simply click down again. The down text must change back to black and the knobs names must change back to uppercase.
You can now use the EXP slider to smoothly morph between the two sets of values. The editor will interpolate the values to show you what the Mercury7 is probably doing. But there is no guarantee about that. The editor does a linear interpolation. Maybe Mercury7 does a different kind of interpolation.
If you want to use this with a real expression pedal connected to the Enzo (and thus without MIDI), do not forget to save your preset with the menu's SAVE command.
MIDI Input 2
You can enable a second MIDI input in the editor's preferences.
When enabled, this second input can be very useful to test the pedal's configuration with an external MIDI controler.
All messages received by this second input are forwarded to the selected MIDI output if the message if supported by the pedal.
You can also use this second input to check the configuration of an external MIDI controler even without a pedal connected to the editor. The received messages will update the editor's controls and thus you'll be able to check that your external controler send valid messages.
URL update
The editor can update its URL to include a representation of the current settings. This is like appending a hexadecimal SysEx to the URL.
When you access an URL containing such a parameter, the editor will use it to set the value of the knobs and switches. It will also send these values to the Mercury7.
So you can use URLs as preset bookmarks!
Opening the editor with a URL containing a preset
If you already have the Mercury7 running with a nice preset and you connect it to the editor, maybe you don't want the editor to overwrite this preset because you open it with such a URL. To avoid this case, in the editor preferences, you can choose the behavior you prefer:
Automatic update of the URL
You can manually update the URL with the URL command in the menu or you can let the editor automatically update it. You can set this in the editor preferences:
The REC button also lets you start at will the auto-updating of the URL.
REC is automatically stopped if you use your browser's history.
Use REC to record all your changes and later on travel back in time!
Menu commands
icon | command | direction | description |
---|---|---|---|
Init | editor --> Mercury7 | Set convenient "default" values. | |
Randomize | editor --> Mercury7 | Set random values for all controls. | |
Send | editor --> Mercury7 | Send the editor's current values to Mercury7 (does not save in Mercury7's memory). | |
Save | editor --> Mercury7 | Tell the Mercury7 to save in its memory the editor's current values (updates the current stored preset). | |
URL | editor only | Update the editor's URL with the current values. This makes a "bookmarkable preset". | |
editor only | Open a popup window with the currents settings displayed for printing (or saving as PDF). | ||
Load | editor --> Mercury7 | Load a preset from a sysex file and send the values to the Mercury7. | |
Download | editor only | Download the current editor's values as a sysex file. | |
Midi | editor <--> Mercury7 | Open a popup displaying all the MIDI messages exchanged between the editor and the Mercury7. | |
Global | editor <--> Mercury7 | Display and edit the Global Settings of the Mercury7. | |
Prefs | editor only | Display and edit the editor's preferences. | |
Help | editor only | Display a summary of the editor usage. | |
About | editor only | Display version and credits about the editor. |
Synchronizing Mercury7 and the editor
IMPORTANT: please keep in mind that the editor only has the possibility to read the saved preset from Mercury7. It can not read the current values of the controls. These values may be different from the one saved in memory (saved as a preset).
Also, do not forget that each time you access a "Alt/2nd layer" value, the preset is saved (see Mercury7 User Manual Section 7, page 9).
It is therefore recommended to always select a preset from the editor as first action after having opened it. After that, unless the MIDI connection is interrupted, the Mercury7 and the editor should always remain in sync.
Synchronizing with SysEx messages
The editor can receive SysEx from the Mercury7. You can use this possibility to update the editor with the current preset of the Mercury7. You have two possibilities to synchronize the editor with the Mercury7:
- Select a preset from the editor.
- Or, from the Mercury7, send the preset as Sysex Data (see Mercury7 User Manual 6). To do that, press the Bypass LED switch while holding the ALT button. The editor will tell you when it has received a preset as SysEx.
Note: while you hold the ALT switch, the Mercury7 will save the preset before sending it.
Out of sync
The editor can become out-of-sync with the Mercury7 in that situation:
- The editor is not yet connected to Mercury7.
- On the Mercury7 a preset has been loaded.
- On the Mercury7, some values have been modified.
- The editor is started. a. The editor will read the current preset (from the Mercury7 memory) b. Mercury7 will send the value saved in memory for the current preset. It will not send the current values of the knobs and buttons.
To avoid this problem:
- Option 1: select a preset in the editor. This will select the preset in the Mercury7. Unsaved settings will be lost.
- Option 2: save the current preset (with the WRITE command in the editor or the ALT switch in Mercury7) then select this preset from the editor. No settings will be lost and the editor will be in sync.
Limitations of this editor
This editor will not work in Firefox, Safari, IE or Edge because these browsers do not support the Web MIDI API.
The editor will not work under iOS (iPad, iPhone).
This editor has mainly been tested with Chrome on a MacBook pro running the latest OS release. Some tests have been done with success with Chrome under Linux Mint 17.1 and with Chrome under Windows 10.
Still under active development. Feel free to log bugs/issues.
Known issues
- Selecting a preset with EXP set to max in the editor does not reset EXP when the new setting is loaded.
Thanks
A big thank you to Meris for having provided precious information regarding the SysEx data. This editor could not have been so complete without their support.
Disclaimer and License
This editor is not endorsed by, directly affiliated with, maintained, or sponsored by Meris.
This editor is published under GNU General Public License v3.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You can view and get a copy the license at https://www.gnu.org/licenses/licenses.en.html#GPL.
This editor is an Open Source project. You are welcome to contribute. The code is available at https://github.com/francoisgeorgy/mercury7-web-editor.
To contribute your bug fixes, new features, etc.:
- Fork the project.
- Create a pull-request.