eclab / edisyn

Synthesizer Patch Editor
Apache License 2.0
547 stars 51 forks source link

Issues with Casio CZ-1 #20

Closed icaroferre closed 4 years ago

icaroferre commented 4 years ago

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!

eclab commented 4 years ago

On Apr 3, 2020, at 10:11 AM, Ícaro Ferre notifications@github.com wrote:

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?

The CZ series does not support individual real-time parameter changes except for a very few parameters. So yes, this won't do anything I'm afraid.

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

I'll look into that! If you find any other inversions, let me know.

icaroferre commented 4 years ago

Any chance you could add an option to dump the entire patch when changing the parameters as a workaround? I understand it could be a lot slower than sending just one but at least it work mimic the behaviour and the user wouldn't need to CMD+U for every parameter change. Maybe it could send on mouseup so it's not constantly sending the entire patch. It wouldn't really be real time as it wouldn't affect active notes but it'd at least send the changes for the next notes.

Cool! Yes I'll play around with it a bit more and let you know.

I'll also test Edisyn with my TQ5 and I'll let you know if I come across any issues.

eclab commented 4 years ago

Dumping the patch is really slow on the CZ1. I could look into some kind of automated "occasional" patch dump after a widget is modified but it'd be a real hack.

icaroferre commented 4 years ago

Maybe one idea would be so whenever a widget gets modified it enables a boolean and then you can have a timer check in on that boolean to see if it should re-send the patch and turn off the boolean (so it can run at a low priority and it doesnt keep sending the same patch over and over).

It would be far from an ideal solution but I'd say it's better than having to CMD+U for every single modification.

eclab commented 4 years ago

Could you tell me precisely which parameters are inverted?

eclab commented 4 years ago

The CZ-1 midi spec stipulates that several parameters are inverted. You're reporting that at least two of them are not actually inverted. I'd like you to double-check that and also check certain other parameters. Specifically:

DCA1 Level DCA2 Level DCW1 Velocity DCW2 Velocity DC01 Velocity DC02 Velocity

The sysex spec does not imply that DCA1 Velocity or DCA2 Velocity should be inverted.

icaroferre commented 4 years ago

Sorry about the delay. I've just doubled checked all the parameters and the velocity parameters for DCW1, DCW2, DCO1 and DCO2 are indeed inverted. The velocity parameters for DCA 1 and 2 are correct. I haven't found any other parameter that seems to be inverted.

Let me know if you'd like video evidence and I'll record a quick video.

eclab commented 4 years ago

How about DCA1 Level and DCA2 Level?

icaroferre commented 4 years ago

DCA1 and DCA2 Levels also seem to be working correctly

eclab commented 4 years ago

I've committed tweaks to DCW1, DCW2, DCO1, and DCO2, and also have added in an experimental automated download mechanism. It'll be out in the next release. If you want it earlier, send me mail directly and I can build something.