ASM Hydrasynth

Single Patch Editor

This editor should work properly with the Hydrasynth Keyboard, Deluxe, Desktop, and Explorer. It can read 1.5.5 and 2.0.0 sysex dumps and can write 2.0.0.

Communicating with Edisyn
If you're connecting via USB, set Edisyn's incoming and outgoing MIDI devices to HYDRASYNTH KB. Set Edisyn's MIDI channel to the same as the synth's RX and TX MIDI channels. You can set the synth's RX MIDI channel to OMNI if you liked. Set up Parameter RX and TX both to be NRPN. Turn on Program Change RX (it's particularly important).

Current Editor Status
The Hydrasynth's sysex spec is closed and ASM has not been forthcoming: developing Edisyn required reverse engineering it. As such Edisyn can do most things you'd need, but a few items (such as requesting current memory) are still out of reach.

Edisyn does not yet support the Deluxe's multimode, though I would like to ultimately. But it may be quite a while as I do not have access to a Deluxe.

Warning about Send to Current Patch and Flash RAM
Edisyn performs Send to Current Patch, and Undo/Redo, and Hill-Climbing, and Morphing, etc. using a sysex command which writes to current working memory of the synth, but does not save the patch permanently. This is the same strategy employed by Sigabort MIDISynth. This isn't very problematic for Send to Current Patch or for Undo/Redo, but Hill-climbing and Morphing audition sounds many times in sequence, so it'd be good to make sure that this procedure not save to Flash RAM, which has a limited number of write cycles (perhaps 100,000) before it fails. I'm pretty certain that this procedure does not write to Flash for two main reasons. (1) Writing to Flash generally takes a long time (see how long Write to Patch... takes), but this sysex command is quite fast. (2) The operation is not permanent: reboot your Hydrasynth and the results are gone (that wouldn't happen with Flash of course, which is permanent). However ASM will not verify it. So you have been warned just in case. Hopefully ASM will fess up soon.

Windows Warning
Java MIDI on Windows does not play nicely with the Hydrasynth, either through its USB port or through another USB device's USB port:

Edisyn uses Patch H 128 to Send to Current Patch
The Hydrasynth is a very strange syntheszier in that it doesn't have a patch in current memory: it has all patches stored in current memory. When you write a patch to Flash RAM, what the Hydrasynth does is write all of them. That's why it takes so long.

However the Hydrasynth has no way to Send to Current Patch: it can only send to a specific patch. As a result, Edisyn is forced to use Patch H 128 as a “scratch pad”. When you Send to Current Patch (or undo/redo/nudge/randomize/hill-climb/morph/etc.), it actually gets sent to Patch H 128, which is then loaded so you can hear the sound. If you Write to Patch, it'll get written to the patch you expect.

This works but can be very confusing, for two reasons. First, the patch name of H 128 won't change: the Hydrasynth only shows the name of the patch that's currently written to Flash. Second, that if you write a patch (say, A 32), it will also write H 128 -- it writes everything, remember -- and so whatever had been sent to H128 in the past (including the name) will get written to Flash. After that, H 128 will show the newly written name.

It's probably best to just ignore the fact that the Hydrasynth is switching to Patch H 128, and that it's sometimes seemingly displaying the wrong name. Just trust that the sound is getting sent to the machine and you can now audition it. Also this means that you can't really store things in Patch H 128: Edisyn will eventually overwrite it. Treat H 128 as a scratch pad for Edisyn.

To make it clear that Edisyn is sending to H 128, Edisyn will display a little “Sent -> H 128” underneath its Patch Number.

About the Menu

Issues Sending Parameters in Real-Time
There are a number of parameters that can't be sent via NRPN to the Hydrasynth in real-time. These are:

By default Edisyn doesn't try to send these in real-time at all: you can manually send them with Send to Current Patch. But if you turn on Auto-Sends Patches in the MIDI menu, then Edisyn will send the whole patch automatically exactly one second after you have made your most recent change to reflect these parameters (except Name, Category, and Color, which can't be set unless you Write the patch).

Gotchas and Hydrasynth Bugs to Be Aware Of
The Hydrasynth has a great many bugs and oddities: but Edisyn tries to work around them and hide them as best it can. A few are still exposed and mentioned here, plus some general gotchas.

  • Yes, Envelope 2 really doesn't have modifiable a Trigger Source 1.

  • If TempoLck is ON then the Hydrasynth will ignore all Arp Tempo changes made by Edisyn. You might want to turn that OFF at least for editing.

  • The Hydrasynth handles custom scale notes oddly. If you create notes in Edisyn that are out of order, and write them to the Hydrasynth, the synth will store them internally as you wrote them, but will sort them before displaying them on-screen for you to modify. Thus they will appear in different order on the front panel than in Edisyn.

  • In 2.0.0, the Hydrasynth does not emit Voice Vibrato Amount values less than 1.3 via NRPN. It's a bug.

  • The Envelope's Attack Curve labeling is incorrect: negative values are actually LOG and positive values are actually EXP. Edisyn follows the Hydrasynth's incorrect labelling. I do not know if ASM mislabeled the attack knob by accident or intentionally because they imagined people wouldn't understand exponential curves: but it is wrong. An exponential envelope curve doesn't mean it's increasing with an exponential rate of speed. It means that there is an exponential dropoff in the absolute rate of change. For the decay/release, we start by moving very fast, and then as we approach the target we exponentially slow down (go horizontal). Similarly for attack, we start by moving very fast (this time upwards), then as we approach the target we again slow down (go horizontal). The Attack Curve knob behavior is identical to the Decay and Release knobs and should have been labelled the same.

  • Certain individual parameter changes will cause the Hydrasynth to foolishly respond with its current settings for a set of parameters. This in turn will cause Edisyn to update those parameters, erasing any changes you may have made but not yet sent. This is unlikely to bite you, but you should be aware of it. You can prevent this entirely by selecting Ignore Parameters from Synth in the Hydrasynth menu.

  • Sometimes when the Hydrasynth wakes up from going to sleep, sending it parameter values from Edisyn will cause it to update those values with an offset (and thus incorrectly).

  • The Hydrasynth has repurposed the very important CC 120 (All Sounds Off) to be used as Arp Octave.

  • When you update the Mod Matrix or any Macro Assignments in Edisyn, the Hydrasynth does not update its display to reflect this. You have to page away and come back to see the updates properly displayed.

  • The first WaveScan wave goes Sin...Harmon23. The other waves go Off, Silence, Sin, ... Harmon23. This means that when you use the Category's distribute procedure to distribute waves, it won't work right for the first wave.

  • You can't set the LFO Steps parameter unless the corresponding LFO Wave parameter has been first set to “Step”. You can set the individual steps themselves. Also you can set the LFO One Shot to Step even though you're not in Step: but the Hydrasynth will ignore this and set it to On (when you get into Step you'll have to reset LFO One Shot back to Step again). Go figure.

  • Even if you turn OFF a macro destination, a modmatrix destination, or a modmatrix source, you can still set its depth and button depth! Don't ask.

    Hints

    About Hydrasynth Manager Files
    ASM provides a librarian called the ASM Hydrasynth Manager. This software saves patches in proprietary bank file formats with the extension “hydra” or “hydramulti”. Edisyn instead saves as standard sysex files, and does not read these proprietary files. To convert them to Edisyn, you'll have to load them into your Hydrasynth, then dump them out to Edisyn.

    About the NRPN and Sysex Specs
    The Hydrasynth does not have a public sysex spec, and so building Edisyn's editor necessitated completely reverse engineering it. The Hydrasynth does have a public NRPN spec, but it is missing a lot of parameters, lacks a great deal of critical information, and has many errors. You can find a reverse engineered sysex protocol and patch format, along with a heavily revised NRPN spec, in this directory.

    Thanks

    Thanks to Thierry Rochebois Zic for making his stunning Hydrasynth wave and harmonics figures available under Creative Commons CC-BY. Thanks to Robin Chard for going above and beyond in identifying preset values, and in testing assistance. Thanks to Herbert Boland (hboland@ziggo.nl), Andrew Macaulay (andrew@macaulay.me.uk), and Russell Dawson-Butterworth (info@dbentertainments.com) for testing assistance and suggestions. Thanks to Erich Izdepski (mogrifier@gmail.com), Adrian Croft (adriancroft@msn.com), and Tim Burgess (tim@raisedbar.net) for help in reverse engineering.

    By    Sean Luke
    Date    May 22, 2023