Giter VIP home page Giter VIP logo

edisyn's Introduction

Edisyn Splash Banner

Edisyn

Synthesizer Patch Editor and Librarian (Version 34)

By Sean Luke ([email protected])

Related projects:

  • Flow, a fully-modular, polyphonic, additive software synthesizer.
  • Gizmo, an Arduino-based MIDI Swiss Army knife.
  • Computational Music Synthesis, an open-content book on building software synthesizers.

Jump to...

Donations

Donations are welcome via Paypal to my email address ([email protected]).

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

  • V. Hoyle collaborated on the Red Sound DarkStar and Microtuning editors, and cooked the deep-learned variational autoencoder for the DX7
  • Wim Verheyen wrote the Prophet Rev2 editor
  • Special thanks to Derek Cook's CoreMidi4J, which Edisyn uses to fix critical bugs in MacOS's sysex handling.
  • Thanks to the many beta testers and bug report submitters for various editors. Many of these people are thanked in the individual About panels for different synth editors.

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.

Edisyn presently supports:

  • Alesis D4 and DM5
  • ASM Hydrasynth Family (Single mode only)
  • Audiothingies Micromonsta
  • Casio CZ Series (CZ101, CZ1000, CZ3000, CZ5000, CZ-1, CZ-230S)
  • DSI Prophet '08, Tetra, Mopho, Mopho Keyboard, Mopho SE, and Mopho x4 (Single and (for Tetra) Combo modes)
  • DSI Prophet 12
  • E-Mu Morpheus and Ultraproteus (Single, Hyperpreset, and MidiMap modes)
  • E-Mu Planet Phatt, Orbit and Orbit v2, Carnaval, Vintage Keys, and Vintage Keys Plus
  • E-Mu Proteus 1, 1XR, 2, 2XR, 3, 3XR, and 1+Orchestral
  • E-Mu Proteus 2000 series (Proteus 1000/2000/2500, Virtuoso 2000, Xtreme Lead-1, Mo'Phatt, B-3, Planet Earth, Orbit-3, Proteus Custom, XL-1 Turbo, Turbo Phatt, Vintage Pro, XL-7, MP-7, PX-7, PK-6, XK-6, MK-6, Halo, Vintage Keys Keyboard, and (v2.0) Auditiy 2000.
  • JL Cooper MSB+ Rev2
  • Kawai K1, Kawai K1m, and Kawai K1r (Single and Multi Modes)
  • Kawai K4 and Kawai K4r (Single, Multi, Drum, and Effect Modes)
  • Kawai K5 and K5m (Single and Multi Modes, plus single-cycle wave uploading)
  • Korg SG Rack and SG Pro X (Single (for SG Rack) and Multi Modes)
  • Korg MicroKorg (Single and Vocoder Modes)
  • Korg Microsampler
  • Korg Wavestation SR (Performance, Patch, and Wave Sequence Modes)
  • Korg Volca Series (Joint editor for Bass, Beats, Drum Single, Drum Split, FM, Keys, Kick, NuBass, Sample/Sample2 Multi, Sample2 Single, /u/pajen firmware)
  • M-Audio Venom (Single, Multi, Arpeggiator, and Global Modes)
  • Novation Drumstation and D Station
  • Novation ReMOTE SL, SL MKII, and SL Compact Series
  • Oberheim Matrix 6, 6R, and 1000 (Single and (for 1000) Global Modes)
  • PreenFM2
  • Red Sound DarkStar and DarkStar XP2
  • Roland D-110 (Tone and Multi Modes)
  • Roland JV-80 and JV-880 (Single, Multi, and Drum Modes)
  • Roland U-110
  • Roland U-20/U-220 (Single, Multi, and Drum Modes)
  • Sequential Prophet Rev2
  • Waldorf Blofeld and Waldorf Blofeld Keyboard (Single and Multi Modes, plus Wavetable uploading)
  • Waldorf Kyra (Single and Multi Modes)
  • Waldorf M
  • Waldorf Microwave II, XT, and XTk (Single and Multi Modes)
  • Waldorf Pulse 2
  • Waldorf Rocket
  • Yamaha DX7 Family (DX7, TX7, TX802, TX216/TX816, Korg Volca FM, Dexed, DX200, DX9)
  • Yamaha 4-Op FM Family (DX21, DX27, DX100, TX81Z, DX11, TQ5, YS100, YS200, B200, V50, etc.) (Single and (for TX81Z and DX11) Multi Modes)
  • Yamaha FB01 (Single and Multi Modes)
  • Yamaha FS1R (Voice, Performance, and Fseq Modes)
  • Yamaha TG33, SY22, and SY35 (Single and (for TG33) Multi Modes)
  • General CC, NRPN, and RPN editing
  • Microtuning editing

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:

  • Randomization: Weighted patch mutation
  • Merging: Weighted recombination of two patches of your choice
  • Mixing: Bulk recombination of many patches into a single one
  • Blending: Random recombination of two randomly-chosen patches on your synth
  • Nudging: Pushing the patch to sound a bit more (or a bit less) like one of four other patches of your choice
  • Morphing: Real-time interpolation of four patches to form a new patch
  • Hill-Climbing and Constriction: Evolutionary techniques for guided randomized search through the space of parameters, where Edisyn iteratively offers patch possibilities for you to grade, then looks for new ones based on your assessments.
  • Deep-Learned Models: Improvements to Randomization and Hill-Climbing using a deep-learned Variational Autoencoder neural network (DX7 Family only)

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.

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.

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.

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

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

edisyn's People

Contributors

cpacejo avatar eclab avatar harold avatar seanluke avatar triclops200 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

edisyn's Issues

DSI Prophet 12 A/B Mode swapped

Beta 11
The drop down meny "A/B Mode" activates swapped modes. When selecting Split, Stack is activated. When Stack is selected, Split is activated. Normal deactivates both correctly.

Use Github releases

Hiya,

I just pulled a copy of the repo and noticed it's fairly large (1.1Gb) due to the many versions of the Jars and macOS application files. You might not be aware of the Github release tab approach, but using it will help prevent that growing: This is available in this repo at https://github.com/eclab/edisyn/releases.

I would like to also contribute a continuous integration build approach using Travis CI, so this can be automated and simple to continue for you to continue releasing in this fashion, as it becomes as simple as the following to release a new version:

git tag v18
git push --tags

Thirdly related to this, I'd suggest stripping out all the existing jars and installers from the repo. This is a somewhat destructive change as it changes history, but this is a good thing as it makes it easier for others to contribute changes. If you go down this path, you may want to take a copy of those files to ensure that you can repro bugs in older versions if that's something you care about.

I'm happy to show what this looks like to demo the benefits if you're interested (i.e. strip large binaries, setup CI build, setup a release page). My ulterior motive is to end up being able to install this just via Homebrew. E.g: brew install edisyn

Anyway, thanks for releasing this. I'm looking forward to using it to program a TX81Z I recently picked up.

Breath Control target Cutoff TX81Z

I am trying to get the breath control from an EWI device to control the cutoff of a patch, is this possible?

edit I am able to target the volume now. I just need to target the cutoff.

Twin mode not working properly for Kawai K4r

The source mode "twin" is not working properly for me (on windows 10, K4r). Specifically, the controls for filter 2 seem to be affecting filter 1 instead, and it seems impossible to control filter 2 in any way. I looked through the source code (KawaiK4.java), and I'm speculating that setting the source to 2 or 3 instead of 1 at line 986 might fix the issue, but I haven't been able to try since I don't know how to modify the makefile to build it under windows.

TG77

For TG77 would be great

DSI Tetr4 not sending correct unison mode to synth

If you are using a DSI Tetr4 and have the appropriate editor mode open, and you attempt to send a patch to the synth using "send to synth" or "write to patch" then it changes the unison mode if you have a unison patch selected.

To replicate:

  1. Start Edisyn version 30 and a new prophet 08/mopho/tetra editor
  2. Select [T] Tetr4 synth type
  3. Make sure there's an audible basic patch loaded, or make one
  4. Turn on unison
  5. Select Unison mode "1 voice"
  6. Send the patch through the "send to synth" drop down selector, or send it using "write to patch"
  7. Play some notes and it will have made it "All voices detune 3" instead of "1 voice"

It seems to also change unison mode for any of the other modes apart from "All voices detune 3" so essentially always sends that mode as far as I can tell.

Version: Edisyn 30, on windows 10.

Plans for Mac support?

Hello.

I found this program and it looks great, but since I am on a Mac M1 I red your lines about Mac support. Got any plans about getting an M1 or getting it officially supported for Mac?

Problem sending patch name to TG33

Doing so in version 23 or 24 'blanks' out some characters in the TG33 LCD, adding the occasional underscore.

MIDI-OX output during rename attempt (x2 - "FOO" and "BAR"):

Input

 TIMESTAMP IN PORT STATUS DATA1 DATA2 CHAN NOTE EVENT               
 000BE08B  22  --     B0    78    00    1  ---  CC: All Sound Off     
 000BE08B  22  --     B1    78    00    2  ---  CC: All Sound Off     
 000BE08B  22  --     B2    78    00    3  ---  CC: All Sound Off     
 000BE08B  22  --     B3    78    00    4  ---  CC: All Sound Off     
 000BE08B  22  --     B4    78    00    5  ---  CC: All Sound Off     
 000BE08C  22  --     B5    78    00    6  ---  CC: All Sound Off     
 000BE08C  22  --     B6    78    00    7  ---  CC: All Sound Off     
 000BE08C  22  --     B7    78    00    8  ---  CC: All Sound Off     
 000BE08C  22  --     B8    78    00    9  ---  CC: All Sound Off     
 000BE08C  22  --     B9    78    00   10  ---  CC: All Sound Off     
 000BE08C  22  --     BA    78    00   11  ---  CC: All Sound Off     
 000BE08D  22  --     BB    78    00   12  ---  CC: All Sound Off     
 000BE08D  22  --     BC    78    00   13  ---  CC: All Sound Off     
 000BE08D  22  --     BD    78    00   14  ---  CC: All Sound Off     
 000BE08D  22  --     BE    78    00   15  ---  CC: All Sound Off     
 000BE08D  22  --     BF    78    00   16  ---  CC: All Sound Off     
 000BE08E  22  --     B0    7B    00    1  ---  CC: All Notes Off     
 000BE08E  22  --     B1    7B    00    2  ---  CC: All Notes Off     
 000BE08E  22  --     B2    7B    00    3  ---  CC: All Notes Off     
 000BE08E  22  --     B3    7B    00    4  ---  CC: All Notes Off     
 000BE08E  22  --     B4    7B    00    5  ---  CC: All Notes Off     
 000BE08E  22  --     B5    7B    00    6  ---  CC: All Notes Off     
 000BE08E  22  --     B6    7B    00    7  ---  CC: All Notes Off     
 000BE08F  22  --     B7    7B    00    8  ---  CC: All Notes Off     
 000BE08F  22  --     B8    7B    00    9  ---  CC: All Notes Off     
 000BE08F  22  --     B9    7B    00   10  ---  CC: All Notes Off     
 000BE08F  22  --     BA    7B    00   11  ---  CC: All Notes Off     
 000BE08F  22  --     BB    7B    00   12  ---  CC: All Notes Off     
 000BE08F  22  --     BC    7B    00   13  ---  CC: All Notes Off     
 000BE090  22  --     BD    7B    00   14  ---  CC: All Notes Off     
 000BE090  22  --     BE    7B    00   15  ---  CC: All Notes Off     
 000BE090  22  --     BF    7B    00   16  ---  CC: All Notes Off     
 000BF6F9  22  --     F0  Buffer:    14 Bytes   System Exclusive      
 SYSX: F0 43 11 26 00 09 00 00 0C 01 7F 00 00 F7
 000BF6F9  22  --     F0  Buffer:    14 Bytes   System Exclusive      
 SYSX: F0 43 11 26 00 09 00 00 0D 01 7F 00 00 F7
 000BF6F9  22  --     F0  Buffer:    14 Bytes   System Exclusive      
 SYSX: F0 43 11 26 00 09 00 00 0E 01 7F 00 00 F7
 000BF6F9  22  --     F0  Buffer:    14 Bytes   System Exclusive      
 SYSX: F0 43 11 26 00 09 00 00 0F 01 7F 00 00 F7
 000BF6F9  22  --     F0  Buffer:    14 Bytes   System Exclusive      
 SYSX: F0 43 11 26 00 09 00 00 10 01 7F 00 00 F7
 000BF6F9  22  --     F0  Buffer:    14 Bytes   System Exclusive      
 SYSX: F0 43 11 26 00 09 00 00 11 01 7F 00 00 F7
 000BF6F9  22  --     F0  Buffer:    14 Bytes   System Exclusive      
 SYSX: F0 43 11 26 00 09 00 00 12 01 7F 00 00 F7
 000BF6F9  22  --     F0  Buffer:    14 Bytes   System Exclusive      
 SYSX: F0 43 11 26 00 09 00 00 13 01 7F 00 00 F7
 000BF6FA  22  --     B0    78    00    1  ---  CC: All Sound Off     
 000BF6FA  22  --     B1    78    00    2  ---  CC: All Sound Off     
 000BF6FA  22  --     B2    78    00    3  ---  CC: All Sound Off     
 000BF6FA  22  --     B3    78    00    4  ---  CC: All Sound Off     
 000BF6FA  22  --     B4    78    00    5  ---  CC: All Sound Off     
 000BF6FB  22  --     B5    78    00    6  ---  CC: All Sound Off     
 000BF6FB  22  --     B6    78    00    7  ---  CC: All Sound Off     
 000BF6FB  22  --     B7    78    00    8  ---  CC: All Sound Off     
 000BF6FC  22  --     B8    78    00    9  ---  CC: All Sound Off     
 000BF6FC  22  --     B9    78    00   10  ---  CC: All Sound Off     
 000BF6FC  22  --     BA    78    00   11  ---  CC: All Sound Off     
 000BF6FC  22  --     BB    78    00   12  ---  CC: All Sound Off     
 000BF6FD  22  --     BC    78    00   13  ---  CC: All Sound Off     
 000BF6FD  22  --     BD    78    00   14  ---  CC: All Sound Off     
 000BF6FD  22  --     BE    78    00   15  ---  CC: All Sound Off     
 000BF6FD  22  --     BF    78    00   16  ---  CC: All Sound Off     
 000BF6FD  22  --     B0    7B    00    1  ---  CC: All Notes Off     
 000BF6FE  22  --     B1    7B    00    2  ---  CC: All Notes Off     
 000BF6FE  22  --     B2    7B    00    3  ---  CC: All Notes Off     
 000BF6FE  22  --     B3    7B    00    4  ---  CC: All Notes Off     
 000BF6FE  22  --     B4    7B    00    5  ---  CC: All Notes Off     
 000BF6FE  22  --     B5    7B    00    6  ---  CC: All Notes Off     
 000BF6FF  22  --     B6    7B    00    7  ---  CC: All Notes Off     
 000BF6FF  22  --     B7    7B    00    8  ---  CC: All Notes Off     
 000BF6FF  22  --     B8    7B    00    9  ---  CC: All Notes Off     
 000BF6FF  22  --     B9    7B    00   10  ---  CC: All Notes Off     
 000BF6FF  22  --     BA    7B    00   11  ---  CC: All Notes Off     
 000BF6FF  22  --     BB    7B    00   12  ---  CC: All Notes Off     
 000BF700  22  --     BC    7B    00   13  ---  CC: All Notes Off     
 000BF700  22  --     BD    7B    00   14  ---  CC: All Notes Off     
 000BF700  22  --     BE    7B    00   15  ---  CC: All Notes Off     
 000BF700  22  --     BF    7B    00   16  ---  CC: All Notes Off     
 000C0BD2  22  --     F0  Buffer:    14 Bytes   System Exclusive      
 SYSX: F0 43 11 26 00 09 00 00 0C 01 7F 00 00 F7
 000C0BD2  22  --     F0  Buffer:    14 Bytes   System Exclusive      
 SYSX: F0 43 11 26 00 09 00 00 0D 01 7F 00 00 F7
 000C0BD2  22  --     F0  Buffer:    14 Bytes   System Exclusive      
 SYSX: F0 43 11 26 00 09 00 00 0E 01 7F 00 00 F7
 000C0BD2  22  --     F0  Buffer:    14 Bytes   System Exclusive      
 SYSX: F0 43 11 26 00 09 00 00 0F 01 7F 00 00 F7
 000C0BD2  22  --     F0  Buffer:    14 Bytes   System Exclusive      
 SYSX: F0 43 11 26 00 09 00 00 10 01 7F 00 00 F7
 000C0BD2  22  --     F0  Buffer:    14 Bytes   System Exclusive      
 SYSX: F0 43 11 26 00 09 00 00 11 01 7F 00 00 F7
 000C0BD2  22  --     F0  Buffer:    14 Bytes   System Exclusive      
 SYSX: F0 43 11 26 00 09 00 00 12 01 7F 00 00 F7
 000C0BD2  22  --     F0  Buffer:    14 Bytes   System Exclusive      
 SYSX: F0 43 11 26 00 09 00 00 13 01 7F 00 00 F7
 000C0BD3  22  --     B0    78    00    1  ---  CC: All Sound Off     
 000C0BD4  22  --     B1    78    00    2  ---  CC: All Sound Off     
 000C0BD4  22  --     B2    78    00    3  ---  CC: All Sound Off     
 000C0BD4  22  --     B3    78    00    4  ---  CC: All Sound Off     
 000C0BD4  22  --     B4    78    00    5  ---  CC: All Sound Off     
 000C0BD5  22  --     B5    78    00    6  ---  CC: All Sound Off     
 000C0BD5  22  --     B6    78    00    7  ---  CC: All Sound Off     
 000C0BD5  22  --     B7    78    00    8  ---  CC: All Sound Off     
 000C0BD6  22  --     B8    78    00    9  ---  CC: All Sound Off     
 000C0BD6  22  --     B9    78    00   10  ---  CC: All Sound Off     
 000C0BD6  22  --     BA    78    00   11  ---  CC: All Sound Off     
 000C0BD6  22  --     BB    78    00   12  ---  CC: All Sound Off     
 000C0BD6  22  --     BC    78    00   13  ---  CC: All Sound Off     
 000C0BD7  22  --     BD    78    00   14  ---  CC: All Sound Off     
 000C0BD7  22  --     BE    78    00   15  ---  CC: All Sound Off     
 000C0BD7  22  --     BF    78    00   16  ---  CC: All Sound Off     
 000C0BD7  22  --     B0    7B    00    1  ---  CC: All Notes Off     
 000C0BD7  22  --     B1    7B    00    2  ---  CC: All Notes Off     
 000C0BD7  22  --     B2    7B    00    3  ---  CC: All Notes Off     
 000C0BD7  22  --     B3    7B    00    4  ---  CC: All Notes Off     
 000C0BD8  22  --     B4    7B    00    5  ---  CC: All Notes Off     
 000C0BD8  22  --     B5    7B    00    6  ---  CC: All Notes Off     
 000C0BD8  22  --     B6    7B    00    7  ---  CC: All Notes Off     
 000C0BD8  22  --     B7    7B    00    8  ---  CC: All Notes Off     
 000C0BD8  22  --     B8    7B    00    9  ---  CC: All Notes Off     
 000C0BD8  22  --     B9    7B    00   10  ---  CC: All Notes Off     
 000C0BD8  22  --     BA    7B    00   11  ---  CC: All Notes Off     
 000C0BD9  22  --     BB    7B    00   12  ---  CC: All Notes Off     
 000C0BD9  22  --     BC    7B    00   13  ---  CC: All Notes Off     
 000C0BD9  22  --     BD    7B    00   14  ---  CC: All Notes Off     
 000C0BD9  22  --     BE    7B    00   15  ---  CC: All Notes Off     
 000C0BD9  22  --     BF    7B    00   16  ---  CC: All Notes Off     

Output

 TIMESTAMP IN PORT STATUS DATA1 DATA2 CHAN NOTE EVENT               
 000BE08B  22   9     B0    78    00    1  ---  CC: All Sound Off     
 000BE08B  22   9     B1    78    00    2  ---  CC: All Sound Off     
 000BE08B  22   9     B2    78    00    3  ---  CC: All Sound Off     
 000BE08B  22   9     B3    78    00    4  ---  CC: All Sound Off     
 000BE08B  22   9     B4    78    00    5  ---  CC: All Sound Off     
 000BE08C  22   9     B5    78    00    6  ---  CC: All Sound Off     
 000BE08C  22   9     B6    78    00    7  ---  CC: All Sound Off     
 000BE08C  22   9     B7    78    00    8  ---  CC: All Sound Off     
 000BE08C  22   9     B8    78    00    9  ---  CC: All Sound Off     
 000BE08C  22   9     B9    78    00   10  ---  CC: All Sound Off     
 000BE08C  22   9     BA    78    00   11  ---  CC: All Sound Off     
 000BE08D  22   9     BB    78    00   12  ---  CC: All Sound Off     
 000BE08D  22   9     BC    78    00   13  ---  CC: All Sound Off     
 000BE08D  22   9     BD    78    00   14  ---  CC: All Sound Off     
 000BE08D  22   9     BE    78    00   15  ---  CC: All Sound Off     
 000BE08D  22   9     BF    78    00   16  ---  CC: All Sound Off     
 000BE08E  22   9     B0    7B    00    1  ---  CC: All Notes Off     
 000BE08E  22   9     B1    7B    00    2  ---  CC: All Notes Off     
 000BE08E  22   9     B2    7B    00    3  ---  CC: All Notes Off     
 000BE08E  22   9     B3    7B    00    4  ---  CC: All Notes Off     
 000BE08E  22   9     B4    7B    00    5  ---  CC: All Notes Off     
 000BE08E  22   9     B5    7B    00    6  ---  CC: All Notes Off     
 000BE08E  22   9     B6    7B    00    7  ---  CC: All Notes Off     
 000BE08F  22   9     B7    7B    00    8  ---  CC: All Notes Off     
 000BE08F  22   9     B8    7B    00    9  ---  CC: All Notes Off     
 000BE08F  22   9     B9    7B    00   10  ---  CC: All Notes Off     
 000BE08F  22   9     BA    7B    00   11  ---  CC: All Notes Off     
 000BE08F  22   9     BB    7B    00   12  ---  CC: All Notes Off     
 000BE08F  22   9     BC    7B    00   13  ---  CC: All Notes Off     
 000BE090  22   9     BD    7B    00   14  ---  CC: All Notes Off     
 000BE090  22   9     BE    7B    00   15  ---  CC: All Notes Off     
 000BE090  22   9     BF    7B    00   16  ---  CC: All Notes Off     
 000BF6F9  22   9     F0  Buffer:    14 Bytes   System Exclusive      
 SYSX: F0 43 11 26 00 09 00 00 0C 01 7F 00 00 F7
 000BF6F9  22   9     F0  Buffer:    14 Bytes   System Exclusive      
 SYSX: F0 43 11 26 00 09 00 00 0D 01 7F 00 00 F7
 000BF6F9  22   9     F0  Buffer:    14 Bytes   System Exclusive      
 SYSX: F0 43 11 26 00 09 00 00 0E 01 7F 00 00 F7
 000BF6F9  22   9     F0  Buffer:    14 Bytes   System Exclusive      
 SYSX: F0 43 11 26 00 09 00 00 0F 01 7F 00 00 F7
 000BF6F9  22   9     F0  Buffer:    14 Bytes   System Exclusive      
 SYSX: F0 43 11 26 00 09 00 00 10 01 7F 00 00 F7
 000BF6F9  22   9     F0  Buffer:    14 Bytes   System Exclusive      
 SYSX: F0 43 11 26 00 09 00 00 11 01 7F 00 00 F7
 000BF6F9  22   9     F0  Buffer:    14 Bytes   System Exclusive      
 SYSX: F0 43 11 26 00 09 00 00 12 01 7F 00 00 F7
 000BF6F9  22   9     F0  Buffer:    14 Bytes   System Exclusive      
 SYSX: F0 43 11 26 00 09 00 00 13 01 7F 00 00 F7
 000BF6FA  22   9     B0    78    00    1  ---  CC: All Sound Off     
 000BF6FA  22   9     B1    78    00    2  ---  CC: All Sound Off     
 000BF6FA  22   9     B2    78    00    3  ---  CC: All Sound Off     
 000BF6FA  22   9     B3    78    00    4  ---  CC: All Sound Off     
 000BF6FA  22   9     B4    78    00    5  ---  CC: All Sound Off     
 000BF6FB  22   9     B5    78    00    6  ---  CC: All Sound Off     
 000BF6FB  22   9     B6    78    00    7  ---  CC: All Sound Off     
 000BF6FB  22   9     B7    78    00    8  ---  CC: All Sound Off     
 000BF6FC  22   9     B8    78    00    9  ---  CC: All Sound Off     
 000BF6FC  22   9     B9    78    00   10  ---  CC: All Sound Off     
 000BF6FC  22   9     BA    78    00   11  ---  CC: All Sound Off     
 000BF6FC  22   9     BB    78    00   12  ---  CC: All Sound Off     
 000BF6FD  22   9     BC    78    00   13  ---  CC: All Sound Off     
 000BF6FD  22   9     BD    78    00   14  ---  CC: All Sound Off     
 000BF6FD  22   9     BE    78    00   15  ---  CC: All Sound Off     
 000BF6FD  22   9     BF    78    00   16  ---  CC: All Sound Off     
 000BF6FD  22   9     B0    7B    00    1  ---  CC: All Notes Off     
 000BF6FE  22   9     B1    7B    00    2  ---  CC: All Notes Off     
 000BF6FE  22   9     B2    7B    00    3  ---  CC: All Notes Off     
 000BF6FE  22   9     B3    7B    00    4  ---  CC: All Notes Off     
 000BF6FE  22   9     B4    7B    00    5  ---  CC: All Notes Off     
 000BF6FE  22   9     B5    7B    00    6  ---  CC: All Notes Off     
 000BF6FF  22   9     B6    7B    00    7  ---  CC: All Notes Off     
 000BF6FF  22   9     B7    7B    00    8  ---  CC: All Notes Off     
 000BF6FF  22   9     B8    7B    00    9  ---  CC: All Notes Off     
 000BF6FF  22   9     B9    7B    00   10  ---  CC: All Notes Off     
 000BF6FF  22   9     BA    7B    00   11  ---  CC: All Notes Off     
 000BF6FF  22   9     BB    7B    00   12  ---  CC: All Notes Off     
 000BF700  22   9     BC    7B    00   13  ---  CC: All Notes Off     
 000BF700  22   9     BD    7B    00   14  ---  CC: All Notes Off     
 000BF700  22   9     BE    7B    00   15  ---  CC: All Notes Off     
 000BF700  22   9     BF    7B    00   16  ---  CC: All Notes Off     
 000C0BD2  22   9     F0  Buffer:    14 Bytes   System Exclusive      
 SYSX: F0 43 11 26 00 09 00 00 0C 01 7F 00 00 F7
 000C0BD2  22   9     F0  Buffer:    14 Bytes   System Exclusive      
 SYSX: F0 43 11 26 00 09 00 00 0D 01 7F 00 00 F7
 000C0BD2  22   9     F0  Buffer:    14 Bytes   System Exclusive      
 SYSX: F0 43 11 26 00 09 00 00 0E 01 7F 00 00 F7
 000C0BD2  22   9     F0  Buffer:    14 Bytes   System Exclusive      
 SYSX: F0 43 11 26 00 09 00 00 0F 01 7F 00 00 F7
 000C0BD2  22   9     F0  Buffer:    14 Bytes   System Exclusive      
 SYSX: F0 43 11 26 00 09 00 00 10 01 7F 00 00 F7
 000C0BD2  22   9     F0  Buffer:    14 Bytes   System Exclusive      
 SYSX: F0 43 11 26 00 09 00 00 11 01 7F 00 00 F7
 000C0BD2  22   9     F0  Buffer:    14 Bytes   System Exclusive      
 SYSX: F0 43 11 26 00 09 00 00 12 01 7F 00 00 F7
 000C0BD2  22   9     F0  Buffer:    14 Bytes   System Exclusive      
 SYSX: F0 43 11 26 00 09 00 00 13 01 7F 00 00 F7
 000C0BD3  22   9     B0    78    00    1  ---  CC: All Sound Off     
 000C0BD4  22   9     B1    78    00    2  ---  CC: All Sound Off     
 000C0BD4  22   9     B2    78    00    3  ---  CC: All Sound Off     
 000C0BD4  22   9     B3    78    00    4  ---  CC: All Sound Off     
 000C0BD4  22   9     B4    78    00    5  ---  CC: All Sound Off     
 000C0BD5  22   9     B5    78    00    6  ---  CC: All Sound Off     
 000C0BD5  22   9     B6    78    00    7  ---  CC: All Sound Off     
 000C0BD5  22   9     B7    78    00    8  ---  CC: All Sound Off     
 000C0BD6  22   9     B8    78    00    9  ---  CC: All Sound Off     
 000C0BD6  22   9     B9    78    00   10  ---  CC: All Sound Off     
 000C0BD6  22   9     BA    78    00   11  ---  CC: All Sound Off     
 000C0BD6  22   9     BB    78    00   12  ---  CC: All Sound Off     
 000C0BD6  22   9     BC    78    00   13  ---  CC: All Sound Off     
 000C0BD7  22   9     BD    78    00   14  ---  CC: All Sound Off     
 000C0BD7  22   9     BE    78    00   15  ---  CC: All Sound Off     
 000C0BD7  22   9     BF    78    00   16  ---  CC: All Sound Off     
 000C0BD7  22   9     B0    7B    00    1  ---  CC: All Notes Off     
 000C0BD7  22   9     B1    7B    00    2  ---  CC: All Notes Off     
 000C0BD7  22   9     B2    7B    00    3  ---  CC: All Notes Off     
 000C0BD7  22   9     B3    7B    00    4  ---  CC: All Notes Off     
 000C0BD8  22   9     B4    7B    00    5  ---  CC: All Notes Off     
 000C0BD8  22   9     B5    7B    00    6  ---  CC: All Notes Off     
 000C0BD8  22   9     B6    7B    00    7  ---  CC: All Notes Off     
 000C0BD8  22   9     B7    7B    00    8  ---  CC: All Notes Off     
 000C0BD8  22   9     B8    7B    00    9  ---  CC: All Notes Off     
 000C0BD8  22   9     B9    7B    00   10  ---  CC: All Notes Off     
 000C0BD8  22   9     BA    7B    00   11  ---  CC: All Notes Off     
 000C0BD9  22   9     BB    7B    00   12  ---  CC: All Notes Off     
 000C0BD9  22   9     BC    7B    00   13  ---  CC: All Notes Off     
 000C0BD9  22   9     BD    7B    00   14  ---  CC: All Notes Off     
 000C0BD9  22   9     BE    7B    00   15  ---  CC: All Notes Off     
 000C0BD9  22   9     BF    7B    00   16  ---  CC: All Notes Off     

Wavestation SR

To Solo BCD not possibly.only A

Thank you for doing this editor, super.

/John

Kyra Mod Matrix Destination List order is incorrect

Sean, I found a small discrepancy between the order of your Kyra mod matrix destination list and the order on the Kyra display. Here is the correct (kyra) list in proper order. The discrepancy started where you put the ddl elements.
/*
Osc 1 Tune, Osc 1 Detune, Osc 1 Wave Osc 2 FM, Osc 1 LFO 1 Pitch, Osc 1 LFO 2 Pulsewidth, Osc 1 Sawtooth Level, Osc 1 Wave Level, Osc 1 Pulse Level, Osc 1 Aux Osc Level, Osc 1 Sub Level, Osc 1 Sub Detune, Osc 1 Pulsewidth, Osc 2 Tune, Osc 2 Detune, Osc 2 LFO 1 Pitch, Osc 2 LFO 2 Pulsewidth, Osc 2 Sawtooth Level, Osc 2 Wave Level, Osc 2 Pulse Level, Osc 2 Sub Level, Osc 2 Sub Detune, Osc 2 Pulsewidth, Hypersaw Intensity, Hypersaw Spread, Filter 1/2 Balance, Filter 1 Cutoff, Filter 1 Resonance, Filter 1 Env 1 Cutoff, Filter 1 Env 2 Cutoff, Filter 1 LFO 2 Cutoff, Filter 2 Cutoff, Filter 2 Resonance, Filter 2 Env 1 Cutoff, Filter 2 Env 2 Cutoff, Filter 2 LFO 2 Cutoff, VCA Level (Pre-Effects), VCA Pan, VCA Stereo Width, VCA LFO 1 > Amp, VCA LFO 2 > Pan, Env 1 Attack, Env 1 Decay, Env 1 Sustain, Env 1 Release, Env 2 Attack, Env 2 Decay, Env 2 Sustain, Env 2 Release, Env 3 Attack, Env 3 Decay, Env 3 Sustain, Env 3 Release, LFO 1 Speed, LFO 1 Delay, LFO 2 Speed, LFO 2 Delay, LFO 3 Speed, EQ Mid Gain, EQ Mid Frequency, Distortion Mix, Distortion Drive, Formant Filter Gain, Formant Filter Tune, DDL Mix, DDL Delay, DDL Feedback, Phaser Mix, Phaser Feedback, Phaser Modulation Rate, Phaser Modulation Depth, Phaser Frequency, Chorus Mix, Chorus Delay, Chorus Feedback, Chorus Modulation Rate, Chorus Modulation Depth, Reverb Mix, Reverb Time, Reverb Damping, Reverb Darkness, Final Level (Post-Effects), Dual Detune Amount
*/

SSL certificate of edisyn.jar download can not be verified by curl

I maintain the edisyn-bin package in the Arch User Repository (AUR), which downloads and installs the provided edisyn.jar.

Since sometime recently, curl (which is used in the package build process by makepkg to download edisyn.jar) complains that it can not verify the SSL certificate of the server, which hosts this file (cs.gmu.edu). Thus the package build process can not proceed and the package build fails.

 curl -v -O https://cs.gmu.edu/~eclab/projects/edisyn/edisyn.jar
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*   Trying 129.174.125.139:443...
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* Connected to cs.gmu.edu (129.174.125.139) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
*  CAfile: /etc/ssl/certs/ca-certificates.crt
*  CApath: none
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [512 bytes data]
* TLSv1.3 (IN), TLS handshake, Server hello (2):
{ [108 bytes data]
* TLSv1.2 (IN), TLS handshake, Certificate (11):
{ [1735 bytes data]
* TLSv1.2 (OUT), TLS alert, unknown CA (560):
} [2 bytes data]
* SSL certificate problem: unable to get local issuer certificate
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
* Closing connection 0
curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here: https://curl.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.

It seems that this server is mis-configured, because it only sends part of the certificate chain:

SSL Server Test for cs.gmu.edu

My suggestion would be to just host the edisyn.jar file elsewhere. For example, you could tag a version in Git (which would be very helpful in any case), create a release on Github for that tag and attach the JAR file to this release. This could all be done via the Github web interface, no local git needed (since you mentioned you use SVN locally).

readme.md mentions of SY35

Hi, the readme.md says Yamaha TG33, SY22, and SY35 (Single and (for TG33) Multi Modes)

Does that mean that the SY35 Multi Modes are not supported, @eclab ?

Yamaha TX81Z Multimode / Instrument Offset

aw man! i LOVE this tool! you're incredible!
found an annoying but, whatsoever – when using the Yamaha TX81Z Editor in multimode, there's an offset in the voice and bank dials... voice/bank of instrument 1 actually controls instrument 2, instrument 2 controls instrument3 and so on..

it's be incredible if you could fix this! this is by far the best editor i've stumbled upon by now.
thanks!

Edisyn .Jar File for Linux

Good Morning

I have downloaded the Zip file for ubuntu linux and I cannot find a .Jar file can anyone help please ?

Many Thanks

Alastair

Kawai K4r Patch Updates

Hi --- loving this editor, thank you for your hard work!

My main issue is that with the Kawai K4r, realtime param changes are not reflected except for on the 'global' page. As such, my issue is almost identical to #20.

I realize that the K4/K4r has an archaic MIDI implementation, and there are likely limitations for realtime changes. However, there is another editor for Ctrlr that works with the K4r that does allow for realtime changes, but it is otherwise not as well done as yours (i.e. it cannot accept program changes from the synth).

I'm curious if you would consider implementing an event handler for mouseup events or state changes from the panel(s) that sends a program dump back to the synth. This seems like a potentially more elegant solution than the 'repeated program dump' fallback which is not tied to user actions.

Compilation error: The type ProvidesNN is ambiguous

The Eclipse IDE shows this error for the YamahaDX7 class: The type ProvidesNN is ambiguous

This is because it doesn't know if it should choose edisyn.ProvidesNN or edisyn.nn.ProvidesNN. Maybe one of those files should be removed?

Send current patch only if patch was changed

I'm using this fun software with a microKorg. This is a feature request.

The microKorg do not support "Send real time change". I'm using "Repeatedly send to the current patch". But sadly this is not really practical as the current note stop each time the patch is send. You can change the speed by adapting the test note interval and length, but still not very practical.

But why send the patch if it wasn't edited? I think the best for my use case would be "Send to the current patch after each edit" option. If I click on something, once I release the mouse Edisyn send the patch. A sister options may be "Pause between test note -> Play a test note each time a patch is send" but personally I'm using the microKorg keys directly.

Thanks again for edisyn!

Praise + Kawai XD-5 question

Hi

I wanted to take this opportunity to thank you for making such a good editor available free of charge and open source. I don't know how I only saw this a few days ago, by accident.
The instructions are clear, the controls are very flexible and inspiring and the midi setup for flexible. Also it works perfect on my Mac (OSX 10.13.6 High Sierra)!

Edisyn supports literally all "old" synths I have that benefit from an editor.. I was using an Atari to edit those synths and today I unplugged it an put it in storage. There's only one synth missing from the list and that's the Kawai XD-5.

Are there any plans to support it? It's very similar to the K4r. I think by copying the K4R definitions, changing the sysex device ID and adding the (long) wave list (available here) about 95% of the work would be done already.

If no plans/progress on this, I'd be glad to help with a PR. Still have some other coding projects that require attention, but I could start at least. Not a superhero in Java but if it's a matter of just adapting the K4r definitions I can get there eventually..

Fails to launch on macOS Mojave, NullPointerException

Double-clicking or right-clicking to open app produces no results. Running the executable from the shell produces the following (hopefully helpful?) stack trace:

/Applications/Edisyn.app/Contents/MacOS$ Edisyn
java.lang.NullPointerException
at sun.font.FontDesignMetrics.getDefaultFrc(FontDesignMetrics.java:157)
at sun.font.FontDesignMetrics.getMetrics(FontDesignMetrics.java:278)
at sun.swing.SwingUtilities2.getFontMetrics(SwingUtilities2.java:1113)
at javax.swing.JComponent.getFontMetrics(JComponent.java:1626)
at javax.swing.plaf.basic.BasicGraphicsUtils.getPreferredButtonSize(BasicGraphicsUtils.java:276)
at com.apple.laf.AquaButtonUI.getPreferredSize(AquaButtonUI.java:443)
at com.apple.laf.AquaButtonUI.getMinimumSize(AquaButtonUI.java:431)
at javax.swing.JComponent.getMinimumSize(JComponent.java:1744)
at javax.swing.plaf.basic.BasicOptionPaneUI.addButtonComponents(BasicOptionPaneUI.java:693)
at javax.swing.plaf.basic.BasicOptionPaneUI.createButtonArea(BasicOptionPaneUI.java:630)
at com.apple.laf.AquaOptionPaneUI.createButtonArea(AquaOptionPaneUI.java:53)
at javax.swing.plaf.basic.BasicOptionPaneUI.installComponents(BasicOptionPaneUI.java:178)
at javax.swing.plaf.basic.BasicOptionPaneUI.installUI(BasicOptionPaneUI.java:141)
at javax.swing.JComponent.setUI(JComponent.java:666)
at javax.swing.JOptionPane.setUI(JOptionPane.java:1860)
at javax.swing.JOptionPane.updateUI(JOptionPane.java:1882)
at javax.swing.JOptionPane.(JOptionPane.java:1845)
at javax.swing.JOptionPane.showOptionDialog(JOptionPane.java:857)
at edisyn.Synth.showMultiOption(Synth.java:2612)
at edisyn.Synth.showMultiOption(Synth.java:2624)
at edisyn.gui.Favorites.doNewSynthDialog(Favorites.java:170)
at edisyn.Synth.doNewSynthPanel(Synth.java:6843)
at edisyn.Edisyn.main(Edisyn.java:42)
Exception in thread "main" java.lang.NullPointerException
at sun.font.FontDesignMetrics.getDefaultFrc(FontDesignMetrics.java:157)
at sun.font.FontDesignMetrics.getMetrics(FontDesignMetrics.java:278)
at sun.swing.SwingUtilities2.getFontMetrics(SwingUtilities2.java:1113)
at javax.swing.JComponent.getFontMetrics(JComponent.java:1626)
at javax.swing.plaf.basic.BasicGraphicsUtils.getPreferredButtonSize(BasicGraphicsUtils.java:276)
at com.apple.laf.AquaButtonUI.getPreferredSize(AquaButtonUI.java:443)
at com.apple.laf.AquaButtonUI.getMinimumSize(AquaButtonUI.java:431)
at javax.swing.JComponent.getMinimumSize(JComponent.java:1744)
at javax.swing.plaf.basic.BasicOptionPaneUI.addButtonComponents(BasicOptionPaneUI.java:693)
at javax.swing.plaf.basic.BasicOptionPaneUI.createButtonArea(BasicOptionPaneUI.java:630)
at com.apple.laf.AquaOptionPaneUI.createButtonArea(AquaOptionPaneUI.java:53)
at javax.swing.plaf.basic.BasicOptionPaneUI.installComponents(BasicOptionPaneUI.java:178)
at javax.swing.plaf.basic.BasicOptionPaneUI.installUI(BasicOptionPaneUI.java:141)
at javax.swing.JComponent.setUI(JComponent.java:666)
at javax.swing.JOptionPane.setUI(JOptionPane.java:1860)
at javax.swing.JOptionPane.updateUI(JOptionPane.java:1882)
at javax.swing.JOptionPane.(JOptionPane.java:1845)
at javax.swing.JOptionPane.showOptionDialog(JOptionPane.java:857)
at javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:666)
at javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:637)
at edisyn.Synth.doNewSynthPanel(Synth.java:6848)
at edisyn.Edisyn.main(Edisyn.java:42)
2021-01-09 11:35:07.057 Edisyn[50173:5522592] Edisyn:Failed to launch JVM

Bi-directionality ?

How complex would it be to make it bi directional ? Since it's already sending sysex i'm curious how hard would it be to retrieve it

Select directory problem on macos

In Batch Download, "select directory" is causing a null pointer exception on macos 10.14.6. So batch download doesn't work. Fix seems to be:

Synth.java
6960c6960
<                 return new File(fd.getFile());
---
>                 return new File(fd.getDirectory());

Possibility for MT-32 Support

Hi there @eclab,
Firstly, just want to say thank you for making this great tool!

Since you have done the hard work of building a D110 editor and these two synths share a lot in common, I was wondering about the possibility of an MT-32 editor panel— noticed that you had said you might make one a while back, so thought I'd make a case for it. 😄

The MT-32 is woefully underrepresented in terms of contemporary editors—there is exactly 1x option (that being midiquest, which is prohibitively expensive). SoundDiver is currently the best option imo, it has a truly excellent layout for this synth. SD has been out of development for nearly 20 years though and exists in the grey area of "abandonware", also not so straightforward to setup, nor available cross-platform, requiring additional setup with WINE for non-Windows users.

This device by far the most broadly accessible LA Synth too, since it is faithfully emulated in software using MUNT and by extension, the MT-32 Pi project. If there were a straightforward means of editing it, people would definitely take notice.

Although MUNT doesn't send sysex, it receives and interprets all the MT-32 sysex data accurately. Since the MT-32 does not store patch data permanently in memory, MUNT's lack of bidirectional communication isn't that much of a drawback for editing, it just demands a certain workflow.

If you are interested in exploring this and it would be helpful, I'm also happy to log time-stamped records of a real device response to different requests from SoundDiver, or answer any other technical questions I can about how it behaves.

Thanks!

Releases or Tags?

The readme states currently version 33. Is there a way to get release announcements or news?
If not may I suggest to use the github function to add Releases or at least Git Tags? These can be subscribed to by RSS.
As an added bonus this makes packaging for linux distributions easier.

Novation DrumStation Issues

I'm noticing that Novation Drumstation isn't responding to 'Level' commands per voice. Also - Pan doesn't seem to work - always pans hard left and get stuck there - output selection isn't working either. M1 Mac mini

impossible to connect to a Waldorf Pulse 2

Hi,
When trying to connect I get the message "an error occured while creating the synth editor for WaldorfPulse2"
and there is the following trace on the terminal :

java -jar ./edisyn.jaravax.sound.midi.MidiUnavailableException: Device or resource busy at java.desktop/com.sun.media.sound.MidiOutDevice.nOpen(Native Method) at java.desktop/com.sun.media.sound.MidiOutDevice.implOpen(MidiOutDevice.java:51) at java.desktop/com.sun.media.sound.AbstractMidiDevice.doOpen(AbstractMidiDevice.java:150) at java.desktop/com.sun.media.sound.AbstractMidiDevice.open(AbstractMidiDevice.java:117) at edisyn.Midi$MidiDeviceWrapper.getReceiver(Midi.java:149) at edisyn.Midi.getNewTuple(Midi.java:554) at edisyn.Synth.setupMIDI(Synth.java:1726) at edisyn.Synth.instantiate(Synth.java:349) at edisyn.Synth.instantiate(Synth.java:299) at edisyn.Edisyn.main(Edisyn.java:48) WARNING: error with stack trace requested but there's no Throwable java.lang.NullPointerException at edisyn.Synth.handleException(Synth.java:8934) at edisyn.Synth.showErrorWithStackTrace(Synth.java:2702) at edisyn.Synth.showErrorWithStackTrace(Synth.java:2729) at edisyn.Midi.getNewTuple(Midi.java:557) at edisyn.Synth.setupMIDI(Synth.java:1726) at edisyn.Synth.instantiate(Synth.java:349) at edisyn.Synth.instantiate(Synth.java:299) at edisyn.Edisyn.main(Edisyn.java:48)

Audio stops when context switching to Edisyn panel

On Ableton Live 11 (OS X 10.13.6) if i have a track running and it is outputting audio and my focused window is Ableton when I CMD + Tab to an Edisyn panel or click the Edisyn icon, the audio output of the track from Ableton stops. It does not pause the Ableton track, but the audio does dissapear. Restarting the track lets the audio return.

TG33 - Parameter changes sent to tones B and D have no effect

I can watch changes in Edisyn being reflected consistently in tones A and C (in A-B-C-D mode), but no such changes in tabs "B" or "D". I first noticed when modifications to the Env attacks wasn't audibly making any changes, checked the UI to confirm, nope, no changes to the values when modified in Edisyn, I also tested with the level and rate scaling. Thanks for your help and for the great editor!

Build fails on Linux

I went to build the jar but it seems to be missing a Librarian class. I dont know if this is on purpose so nobody can build it or not. Nothing in documentation that I could see.

Multi-mode for TX802

I have been using Edisyn for several months with Roland D-110, Yamaha FB-01, and Yamaha TX7. Recently I decided to upgrade from the TX7 to a TX802, and was disappointed to find the much nicer TX802 is not as well supported as the FB-01 or other 4-op synths, with the seeming expectation that the DX7 editor would be good enough. I'm afraid that's not the case, as the TX802 is like a DX7II with a layer of the FB-01's multi-timbrality added on top.

Is there any way the multi mode of the TX802 could get some support in Edisyn? I would very much like be be able to assign voices and polyphony, as well as control effects, using Edisyn.

Unable to extract ZIP

Hi Sean,

Native archive app renames the zip with a .cpgz extension. (It did this with the last build).
Keka exists with an error type 2.

I did run a permissions re-set on the file to see if it helped - unfortunately not.
Cheers
John

Yamaha4OP patchbank loading broken in V50/YS200 mode

Hi, maybe you are preparing changes to support V50/TQ5/YS200 100 patch/bank librarian format. But right now in current GIT version both 32-patch banks and 100-patch banks give error messages when trying to load them in the librarian while in V50 or YS/TQ mode. Work in progress?

Issues with Casio CZ-1

Hey @eclab! First of all, amazing work. The editor looks great and it's definitely helping me get some work done.

So I recently picked up a CZ-1 and, while most of the editor features do work, I've came across two issues so far:

1 - The 'Sends Real Time Changes' feature doesn't seem to be working. If I change some parameter it'll only actually send the new values if I 'Send to Current Patch'. Am I missing anything or could this perhaps be a bug?

2 - The wave and pitch velocity parameters seem to be inverted (0 on the editor corresponds to 15 on the unit) while the amp velocity is correct (15 on the editor corresponds to 15 on the unit).

On the other hand, that Window parameter is working great and it's definitely a lot of fun.

I'm running version 22 on macOS 10.13.6.

Thank you for your work!

Missing Pitch Envelope Sustain Level slider in D-110 editor

The D-110 editor is missing the Sustain slider in the pitch envelope settings. It will always write 0x00, which corresponds to a level of -50.

This leads me to conclude that the editor was tested with a D-10, instead of a D-110, which probably eased accessing the parameters. The D-10 (according to the midi implementation) has a "dummy" value where the D-110 would have the sustain level. To maintain compatibility between both, it'd be best to write a value of 0x32 instead of 0x00, or include a slider for it that wouldn't affect the D-10 anyway.

DSI Prophet 12 ?

Hi.

Is there any chance that the DSI Prophet 12 could be added to this ?

Pete

Cannot connect to MIDI Devices in Linux with Jack

Greetings - thank you for your amazing work on this project. It looks like exactly what I need in order to make proper use of my Wavestation SR, which has sat unused for years due to its tedious interface.

I'm experiencing an issue where when I select the MIDI device to use, Edisyn returns the error "an error occurred while connecting to the incoming MIDI device", which is written as "javax.sound.midi.MidiUnavailableException: Device or resource busy" in the terminal. I tried the built-in device on my PCIe card (RME Raydat), and USB MIDI interface (M-Audio MIDISport 8x8) with the same results.

I'm running Ubuntu Studio 19.10, with Reaper, and Jack. My guess is that the JavaVM is attempting to directly access the OS-level MIDI ports, rather than accessing them via Jack like essentially all other Linux Audio/MIDI software does. Unfortunately I can't just 'not use Jack' as my whole studio is essentially wired around it.

Is there a workaround or fix possible for this?

Thanks again,
Jason

workflow with K1

Hi. How I am supposed to use this program with my K1 keyboard?

I tested it and it seems to work - old presets can be downloaded from unit and new presets can be uploaded. But the process of uploading new ones is somewhat janky and I don't understand what I am supposed to do. Do I need to "Send to current patch" after each edit or to switch tones after each change on synth itself?

Hill-Climb Locks up

Wavestation SR Performance Mode
Mac - Latest OS

  1. Not all selections play (autoplay is running)
  2. Application locks after a short while
  3. Seemed to perform a reset on the SR

Possibly going from selection to selection too quickly?

Consider using structured data sources to generate synth-specific code?

This is a very cool project!

There are some sources of synth MIDI implementations in machine-readable formats, for example:

https://github.com/usercamp/midi

https://github.com/eokuwwy/open-midi-rtc-specs

It seems like edisyn wants to tightly couple the UI widget being used with the midi implementation, so just consuming the midi implementations directly and somehow guessing what the right widget is might be very difficult to get right, but it might be fun to autogenerate code from these midi specs as a starting point to make it easier for people to create new UIs.

Send to current Patch on Casio CZ-1 not working

Hi there,

all the commands such as request current patch, request next patch etc. are working fine, also I'm able to send test notes. Only the send to current patch feature is not working. I tried several things, e.g. waiting some time or checking/unchecking the Casio CZ-1 box. Once I try the feature repeatedly send to current patch and play some notes, after a few not hits the synthesizer starts to make some mumbling sounds, as if something got stuck, its not only one note is ringing constantly, more like dozens at the same time. Same happens when I press send to current patch over the short cut very fast. I can't get this sound to stop, also not via send all sounds off, only way is via MIDI on/off button on the Casio CZ-1.

I downloaded Patch Base to see if this might be related to my setup, but there all commands work fine, also the parameter changes work there in real time.

I could cross check the differences between the sysex messages being sent from Edisyn and Patch Base, but wanted to know first if this issue might already be known or even solved or if its related to some settings I still have to make on Edisyn.

Would be happy for any comments on this topic, surely I could use Patch Base as a plan B but I really like the GUI for the Casio CZ-1 from Edisyn :)

Thanks,
Michael

Edisyn is running on a mac mini, OS 11.5.2

FS1R?

Hi, this thing looks amazing. Any chance of an editor for the Yamaha FS1R? I see you have already covered much of Yamaha's FM line.

Thank you!!

New Synth dropdown goes off bottom of screen

Version 30, I am using a 1920x1080 resolution screen in Windows.
The list of supported synths is now so long that they do not fit into a single column dropdown menu.
Waldorf Microwave is the last visible entry I can see, and I know there must be Yamahas below this!
Can I suggest that you look into multi column dropdowns that are responsive to screen dimensions please?
Otherwise it's just pot luck what I end up with by using the cursor keys when the selection is offscreen.

jar corrupted? jan 2020

don't seem to be able to run the jar here. java is installed, am i missing s'thing?
says the jar is corrupted.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.