Home

Awesome

Edisyn Splash Banner

Edisyn

Synthesizer Patch Editor and Librarian (Version 34)

By Sean Luke (sean@cs.gmu.edu)

Related projects:

Jump to...

Donations

Donations are welcome via Paypal to my email address (sean@cs.gmu.edu).

What's New

Version 34 has patch editors for the Waldorf M and Dave Smith Instruments Prophet 12, improvements for the Yamaha DX7 and 4-Op FM families, and improvements for accessibility for the blind.

Publications on Edisyn

Stochastic Synthesizer Patch Exploration in Edisyn. Presented at EvoMUSART 2019.

Co-creative Music Synthesizer Patch Exploration. With V. Hoyle. Presented at ICCC 2023.

So You Want to Write a Patch Editor. George Mason University Department of Computer Science Technical Report GMU-CS-TR-2023-1.

Contributors

About Edisyn

Edisyn is a synthesizer patch editor library written in pure Java. It runs on MacOS, Linux, and Windows.

Edisyn is particularly good at exploring the space of patches. It has to my knowledge the most sophisticated set of general-purpose patch-exploration tools of any patch editor available.

<a name="support"/></name>

Edisyn presently supports:

Edisyn has infinite levels of undo, CC and NRPN mapping and learning, offline modes, per-parameter customization, real-time parameter updates, test notes and chords, Pseudo-MPE support, and lots more. Edisyn also has many specialized tools designed to help you explore new patch possibilities without directly programming them. These include:

"Could You Develop a Patch Editor for Synth X for Me?"

Sure! But building a patch editor is a long-term commitment of debugging and maintenance. It can't easily be done with a remote person (you) handling the debugging. So with rare exceptions I only build editors for synths I personally own (I might sell them long after the editor is stable). So if you'd like, say, the Alesis Andromeda to have an editor, all you have to do is gift me an Alesis Andromeda! I'll even pay for shipping.

Why These Synths in Particular?

I have a special interest in hard-to-program synths, either because they have very poor interfaces (or no interface at all), or because their synthesis architecture is difficult to program (FM, Additive). You'll note the high number of 1U rackmounts. :-) Certain other synths (Blofeld, Prophet '08, etc.) are there because I own them and like making stuff for them.

<a name="manual"/></a>

Manual

Edisyn has an extensive manual which describes how to run it, and (if you are so inclined) how to make new patch editors.

Install and Run Edisyn

Edisyn is cross-platform and will run on a variety of platforms (Windows, Linux) but I am personally developing on and for MacOS. I'd appreciate feedback and screenshots of it running on Windows and Linux so I can tweak things.

<a name="mac"/></a>

Installation and Running on MacOS

First install Edisyn from the Edisyn.app.zip file. Sadly, it's a whopping 70MB because it includes the Java VM. :-(

MacOS has lately locked down the ability to run an application that's not from a commercial, paying Apple Developer. And I'm not one. So you will have to instruct MacOS to permit Edisyn to run. Let's try the easy approach first:

Easy Way to Permit Edisyn to Run

On some versions of MacOS, you can CONTROL-Click on Edisyn's App Icon, and while holding Control down, select "Open". Now instead of telling you that Edisyn cannot be opened because it's from an unidentified developer, you'll be given the option to do so. You probably will only have to do this once.

Slightly Harder Way to Permit Edisyn to Run

If this isn't working, try the following. Let's assume you stuck Edisyn in the /Applications directory as usual. Now we have to tell Gatekeeper to allow Edisyn to run on your machine:

  1. Run the Terminal Program (in /Applications/Utilities/)
  2. Type the following command and hit RETURN: sudo spctl --add /Applications/Edisyn.app
  3. Enter your password and hit RETURN.
  4. Quit the Terminal Program

Now you should be able to run Edisyn. Let me know if this all works.

If you want to use Edisyn in combination with a DAW, see the manual's section on building a MIDI Loopback.

You can also run Edisyn from its jar file from the command line: see "Running from the command line" at end of these instructions.

Rosetta and the M1

At present Edisyn only runs under Rosetta on the M1, because its package contains an Intel-only Java VM (because I only own an Intel Mac and am not running Big Sur). It'll work fine. Don't expect things to change until I get an M1. If you have installed Java yourself, you can run Edisyn from the command line (see later below) and it'll probably run natively.

If Edisyn bombs in MacOS on selecting a patch editor...

You may have installed the MMJ (MIDI Java) library in the past, which is now obsolete. This library was required by old applications but no longer works properly and should be removed. Look in /Library/Java/Extensions/ or in [Your Home Directory]/Library/Java/Extensions for the files mmj.jar or libmmj.jnilib. If you find them, remove them from the directory and try again.

<a name="windows"/></a>

Installation and Running on Windows

I believe that the following should work:

  1. Download and install at least Java 11. There are two options. I suggest OpenJDK: Microsoft's OpenJDK installation is the easiest route. An alternative is to install Oracle's JDK, but it has more onerous license restrictions.
  2. Download Edisyn's jar file, called edisyn.jar.
  3. Double-click on edisyn.jar to launch Edisyn.

If you want to use Edisyn in combination with a DAW, see the manual's section on building a MIDI Loopback.

USB connections to synthesizers

Windows USB MIDI Java is very flaky, unlike MacOS or Linux. Many devices don't play nicely with it and may not work properly. If a device doesn't respond, try quitting Edisyn, disconnecting and reconnecting the USB cable, and trying again (no, really). In other cases, particularly with devices with non-class-compliant USB, you'll be out of luck (the Novation SL's USB may be a problem for example). Try Linux.

Casio CZ, Yamaha FB01 and SY22/35/TG33 editors on Windows

These editors require an unusual quirk of MIDI sysex which is not properly supported by Java under Windows. I have failed to find a workaround for it, and so these editors may not work properly under Windows. Notably the CZ editor will definitely not work right. I'm sorry about that.

Java Crashing on Windows

I have reports of Java crashing on Windows if you set Edisyn's "Receive From" or "Send To" devices to the same device as the "Controller" or "Controller 2" devices. So don't do that: there is never a need to do so. If you don't have a dedicated controller, you should leave the "Controller" and "Controller 2" devices blank.

I have occasionally seen hard crashing/hanging on Windows if the USB MIDI device is disconnected while Edisyn is attempting to communicate over MIDI. It appears to be a Windows driver issue. So don't do that.

I have had at least one report that Java 8 on Windows has serious problems with some Edisyn patch editors (probably memory). Install something newer.

Dealing with High-Resolution Displays in Windows

Java doesn't handle high-resolution displays properly in Windows, especially Windows 10. Be sure to have installed at least Java 11 (otherwise you'll have teeny tiny Edisyn windows). You'll still have font issues on 4K monitors. I am told this can help dealing with it:

  1. Find the java.exe file you installed.
  2. Right-click and select "Properties"
  3. Click on the "Compatibility" tab
  4. Click on "Change high DPI settings"
  5. Here you can try checking "Use this setting to fix scaling problems for this program instead of the one in Settings"
  6. If Number 5 above isn't working, you might instead try "Override high DPI scaling behavior. Scaling performed by: System (Enhanced)"

Java Preference Problems

Edisyn makes heavy use of Java preferences to store persistant information: what menu option you chose last time, what should be the default synth editor to pop up, and so on. However there is a longstanding Java/Windows bug which makes Java preferences not work out of the box in Windows for earlier versions of Java. I think this is fixed as of Java 11 but you should check and let me know.

Incorrect Jar Linkage to Java

When you double-click on a jar file, Windows may not launch Java properly because it has jar files associated with the wrong Java instance. It's easy to fix this using JarFix

<a name="linux"/></a>

Installation and Running on Linux

I'm told that Edisyn works if you have installed at least Java 8. After this:

  1. Download Edisyn's jar file.
  2. You'll need to figure out how to make it so that double-clicking on the jar file launches it in java. In Ubuntu, here's what you do: right-click on the jar file icon and choose "Properties". Then select the "Open With" tab, and select your Java VM (for example "Open JDK Java 8 Runtime"). The press "Set as Default". This makes the Java VM the default application to launch jar files.
  3. Thereafter you should be able to just double-click on the file to launch Edisyn.

If you want to use Edisyn in combination with a DAW, see the manual's section on building a MIDI Loopback.

USB connections to synthesizers

Some synthesizer devices, such as the Novation SL, have flaky USB which doesn't play nicely with Linux, and you may have problems working with them over their USB ports. I've had much better success using a dedicated USB interface connected to them over 5-pin DIN [I have a Tascam US2x2].

Dealing with High-Resolution Displays in Linux

Java doesn't work properly with high-resolution displays in Linux, even recent default versions (like JDK 11). On GNOME machines (such as Ubuntu) you can get around this by first setting the GDK_SCALE parameter, such as:

export GDK_SCALE=2
java -jar edisyn.jar

... or you can (for the moment) run Java with internal scaling, such as:

java -Dsun.java2d.uiScale=2.0 -jar edisyn.jar

(though recent versions of Java are complaining that this is illegal)

Problems with Jack

Java has compatibility problems with Jack; disabling Jack will often allow Edisyn to communicate with MIDI devices. See issues #33 and #52.

Running from the command line (OS X, Windows, Linux)

  1. Make sure Java is installed.
  2. Download Edisyn's jar file.
  3. Run Edisyn as: java -jar edisyn.jar