g200kg/zoom-ms-utility

rules about Parameter Edit

Opened this issue · 9 comments

hi !
did you discovered why

Parameter Edit

over 3 is not recognized by commands like under that number?
if not, is there another way to manage them (rules about them).
many thanks
peppe

I would like to bump this, I'm also curious as to why it is not possible and if you have found a way to do it.

By the way, thanks for this great utility and especially the MIDI message documentation - has been of great use so far for my Arduino<->MS50G project.

I also think there is some way. But unfortunately I have no further information on this :-(

The only way to come up is to try the command and explore.

Similar to how I believe this repo's UI tool works, you can get around this by writing the entire patch data, it's plenty fast enough. I need to make a video, but I have a WIP repo that runs on RaspberryPi, I listen to midi events from another midi usb pedal with more stomps, to build patches on the fly and write to the Zoom pedal in real time. You can use this approach to control any/all parameters, just rewriting entire current patch data.

Repo is here: https://github.com/JohnnyMarnell/zoom-stomp , I think most relevant are these lines, where the patch binary message is generated and sent (I think it's a sysEx message?):
https://github.com/JohnnyMarnell/zoom-stomp/blob/master/index.js#L133-L135

good luck!

@JohnnyMarnell - Exactly, I've been writing the entire patch as a workaround.
The only problem I have with it is that it interrupts the device's sound output for about 40ms (more or less the time it takes to receive the PatchSend message). In any case it is better than the ~200-300ms interruption a Program Change causes.

ParamEdit, on the other hand, is processed instantly and does not cut the sound.

So for now there's two options to balance:

  • setting effects that I want to be switchable in slot 1-3, using ParamEdit and having no interruption
  • using PatchSend if I need to switch beyond slot 1-3 and living with the 40ms stutter if it isn't too jarring during rehearsal/live.

If anyone still manages to come up with a way to do a ParamEdit on slot 4-6, please let me know.

@HamiltonGerlach Ah didn't realize it interrupts. Re:

setting effects that I want to be switchable in slot 1-3, using ParamEdit and having no interruption

Are you saying you can change the order of an FX Parameters? If so, how is that done? BTW here is a quick demo of me trying out the patch write method. I show the tuner to indicate starting up, then have midi buttons mapped to create signal chains on the fly, in this case I add an RC Boost, then Tremolo, and have a knob mapped to change its rate parameter. (This is node.js on a Macbook Pro, I also run it on a RaspberryPi). My biggest problem is I get an awful hiss whenever I use the Midi USB connection (have tried different power sources, battery only, some are a little better but it never goes away). Does anyone else have this problem, or ideas how I could get around it?

@JohnnyMarnell - to clarify what I mean:

We have two known methods of changing parameters (which includes switching effects on/off)

  1. ParamEdit: [0xf0,0x52,0x00,0x58,0x31,nn,pp,vvLSB,vvMSB,0xf7] where pp=0 : switch Effect/Bypass, vv=0:off / vv=1:on.
  2. PatchSend with the changed parameter values (or on/off state).

ParamEdit only works for Effects 1-3, hence if I need to toggle Effects 4-6 (or change parameters), I need to do a PatchSend.
ParamEdit does not cut the audio signal, but PatchSend does (for about 40ms). I think you can hear it in your video where you are turning the knob to change the tremolo parameters.

So to avoid the (rather jarring) audio dropout I have resorted to putting effects that I want to toggle with my Controller into slots 1-3. Would be optimal if someone knew a command that works for 4-6. I contacted Zoom Tech support, they have no clue (or permission to share) either.

Are you saying you can change the order of an FX Parameters?

I don't think you can change the order of Parameters inside the effect block.

Regarding the hiss, I personally haven't had such problems. However one of my buddies ordered a MS70CDR and his unit emits awful hiss even when only connected to standard 9V DC, no idea why.

ParameterEdit, as you call it, works for all the parameters - at least on my MS-70 CDR 2.10

You can find my code here:

https://github.com/shooking/ZoomPedalFun/tree/main/MS70CDR

For sure I will be linking @JohnnyMarnell 's code to my main wiki.
Always on the lookout for cool stuff.

I have experienced the pedal refusing to set SOME parameters - some consistently, others randomly so maybe a bug?

Also I will be writing up how to interpret the sysex differently to how most people do it with these older Zoom pedals. If it described in the C code. But basically the raw sysex needs to be 7 bits (except F0/F7). But it really is describing 8 bit data.

When you processes it from 7 to 8 bit the parameters are MUCH easier to spot. None of this bit X/overflow bytes. Of course you have to then expand back from 8 bit to 7 bit. Again code is on my site an I will be writing it up.

@shooking

I know about the parameter edit SysEx message ([0xf0,0x52,0x00,0xDevice_ID,0x31,nn,pp,vvLSB,vvMSB,0xf7]).

However, as noted in midimessage.md in this repo here, and confirmed by testing with my own Arduino->Zoom controller, this only works for the first three effect slots (all parameters of those can be edited, of course, if the value format is taken care of) - i does not work for effect slots 4 to 6.

As I mentioned above, if I need to edit any parameter of effect slots 4 to 6, I can edit the patch data and send the whole patch. The downside of this is that you get sound dropouts (I measured it at about 40ms).

Any update after 2 years?