-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Sysex for MS-50G+ patch #70
Comments
You might want to try itnrheu the MS70CDR decoder? https://github.com/shooking/ZoomPedalFun/tree/8572bf1d436a25324c77bcc3b88f4867ba20c1e6/MS70CDR Likely.the ID might be different but very likely the sysex is very similar |
Apparently, the patch is based on the "027:Cosmic Sans" preset, but the effects are different. |
@thammer Since you're exploring the MS-50G+, could you select the preset "027" and dump out the patch parameters by using the following SysEx and post the output here?
|
Yeah. That patch was created by me. It was the first patch I created, so it was based on the original preset 027 and instead of saving it to a new preset, I accidently wrote over the old one. Anyway, here's the sysex output after sending "F0 52 00 6E 64 02 00 07 00 F7" to the pedal. Oddly enough, the device ID is the same for the MS-50G+ and the G1Four, "6E". Hexadecimal:
Printable ASCII (and apostrophes where not printable):
|
So two things to report, the packet data is 7bit packed and needs to be unpacked....
Unfortunately my decoder script glitches on this, but I can looks to see why later... |
Correction;
|
Wow! That's very useful. I'll have a go at doing the 7-bit to 8-bit conversion in the web app. In the mean time, I managed to accidentally send the sysex command to enter firmware update mode to the pedal, and now the pedal won't boot regularly. It's just a black screen, blinking red light, presumably waiting for firmware. It does show up as a MIDI device when I connect it to my computer, but I'm afraid to start sending MIDI messages to it in fear of bricking it permanently. I have tried holding down all the buttons while powering up, but it still ends up in the same state. Have you encountered anything like this before? Any suggestions on how to tell the pedal to not wait for firmware anymore? |
Ah - this is the newer 50G ... so the sysex seems to be quite different to the original and more like the G1XFour? |
Which command did you send? |
I don't think we should document that in a public post, at least not until we can document how to fix it at the same time. Currently my pedal is for all practical purposes bricked. If you email me at h@mmer.no, I'll let you know the command in private. |
On the G1Four the FW upload process has a display on the screen, it seems unbelievable that the newer MS+ pedals would not have similar display. In seems that you may have discovered a factory mode, or perhaps triggered something very special... :-( The fact that it's not totally dead (ie has USB Midi) is somewhat hopeful. I (and a user in Russia) had an issue where our pedals 'forgot' what they were (device ID 0x00). But I had a legit FW uploader EXE, and I was able to patch it to be valid for the I also had a glitch when uploading random ZD2's from the Voice line, but that was my 'old' pedal with a broken screen so I don't know if it had anything on it. Randomly poking around of the SPI EEPROM at boot time time recovered that - I figure I must have cause a checksum error, and had it do a global reset.... I really don't know what to suggest. :-( |
Figured out/remembered that I've also pushed a change so that |
Hard to say exactly in what state the pedal is now. The fact that it does not show up as a MIDI device may mean that the boot process has not completed (or has errors). The fw update mode usually is not persistent, that is the pedal can reboot to normal state from it; of course, before initiating the actual update. If update is underway, for sure the pedal must not be disturbed. For MS-50G+ the fw update mode is not documented ... yet. Factory reset just restores the presets. Did you try to power it up without attaching to USB? Does it visually complete booting? Can you access the Main menu? |
Thanks for the input on getting my pedal back to normal operations. I haven't been able to get it back yet, so I'm posting some more info here in the hope that we'll be able to figure this out eventually. Here's what happened, in detail:
So that's the current state: No matter what I do, the screen is black and the red LED is blinking slowly. It shows up as a MIDI device when connected to a computer, but otherwise does not work. |
Bummer this is... Just a wild idea, did you try sending audio signal through? This is to check if the pedal did complete the booting? None of us has yet seen the fw update prompt on the MS-50G+, so it's hard to speculate. From previous models, the fw update mode is usually exclusive from normal mode (default) -- user needs to trigger it on power-on. If you triggered the "Ready to receive the firmware" by sending a SysEx from the normal mode, then this implementation is different. A good thing is that the pedal is being responding to MIDI. We can try to query it to determine which mode it is in. It's unlikely that you could erase the firmware, since the pedal needs to receive the new one first (verify it, wipe the current module, and then apply). But something is out of order. |
The pedal does not output any audio when I send audio into it. |
Yay! I managed to get the pedal back to working mode again :-D. So, what I have painfully discovered by careless experimentation is this:
I cannot guarantee that this will work for everyone and that it's a reliable method. |
Congrats! As for the SysEx, the |
@thammer Now that you're back on the roll. You may dump out the following SysEx -- all of that are info commands (banks, model info, settings, DSP details), nothing of the sorts you painfully "discovered".
We'll try to compare the output to other models, like B2 FOUR and G1 FOUR. Also, which OS are you on? |
The version screen displays the following: |
I mean the PC OS |
Here are the 6-byte commands that the MS-50G+ responded to. I added a comment behind those I know what means.
|
Haha :-D. I'm on Windows 11 Pro 21H2. |
Here are the sysex messages I sent -> what I got back from the MS-50G+:
|
MS-50G+ has the same DSP load scaling factor: 270, just as the B2 FOUR. |
Do you have Python3 installed? It's easier to use it for scripting and analysis. Though you can adapt the scripts for JS, if you're more comfy with it. We can try to list the contents of the pedal's internal filesystem. Just a warning for your SysEx explorations, some SysEx commands may just erase/format the internal flash, so you'd loose the contents as it's not part of firmware. So, the blind indexing of SysEx is not pragmatic, at least it should be postponed until the stored files could be backed up. |
On the top of my list of what I want to figure out is:
Regarding item 2, I'm pretty sure its the second parameter number that specifies this, but I haven't been able to figure out how to specify the effect. To set a parameter for an effect in a slot, I do
To set the effect in slot 0 to nothing (delete effect), I do
In other words, I set parameter number 1 to zero.
|
Get Current Patch (Edit Buffer) SysEx: With effect slots, it's trickier as some effects may be "wide" (taking 2 units/slots). |
@thammer Glad you're back, it's a big relief when you confirm you haven't destroyed your $$$ pedal ;-) 1). Current patch. Command in the command line python script.
2). Setting invididual parameters is possible via SysEx. EDIT - remember that SysEx is limited to 7bit values, so Effect IDs must be altered before sending.... |
@thammer All the Effects have an ID, 32bits with the high 8 being the effect group. All the ones that we know are listed: There is a script which can 'decode_effect.py'...
EDIT you can also get a list of Effects installed on your pedal if you request the |
@thammer Thanks for describing the test in detail. I wonder if all that "Received" SysEx output was from the first command or you also used the buttons/controls on the pedal after the first SysEx?
This is the new patch name (char[00]:0x55='U', .., char[1B]:0x20=' ' , "USER-003 ...."). From the output you showed, only three first letters are received ("USE"), then letters are missing, and only blanks from the letter 15. Where did the letters in the middle go? |
On the B1XFour there is what I call GetMoreData that clears buffers. GetMoreData f0 52 00 6e 60 05 00 f7 whats in buffer seems to flush the current buffer. Useful for getting clean data So I send a command. Get response. GetMoreData. Repeat It cleans up the decoding on the earlier pedals at least. BTW - great work everyone. |
If I turn off parameter edit mode by sending "F0 52 00 6E 51 F7", and then send "F0 52 00 6E 64 47 F7", I get no reply, and the pedal says "New Patch Memory Created". If I start with an empty patch, turn on parameter edit mode by sending "F0 52 00 6E 50 F7", and then send "F0 52 00 6E 64 47 F7", I get this:
I repeated this command, but first filled 2 effect slots, and as I got the same set of replies as for the empty patch. I don't know why I got the extra "C0 00" messages last time I tried. I'm not able to reproduce that now. |
We have come far :-). So if I for instance first send 64 13 to get the current patch data, then switch to another patch number on the pedal, or clear the current patch, I would like to know how I could send the patch data back to the pedal to update the current patch memory / edit buffer. |
Have you hit the pedal with 50 (editor on) then captured packets with with your tool or WireShark? Sometimes that let find some more hidden sysex. I am guessing you are doing this but the pedal isn't emitting the special sauce? |
Write Current Patch SysEx: These are "older" commands. SysEx: |
@thammer Another query to dump settings, SysEx: |
|
I have created a simple web app that uses the Web MIDI API, here: I also have some code snippets that I run from a local version of that webpage that I haven't published yet, as it isn't very well structured. So I'm basically just sending some MIDI messages to the pedal and listening to what it sends back using regular Web MIDI. I would really like to be able to listen to the traffic between Zoom's Handy Guitar Lab for MS-50G+ (iPhone) and the pedal, but I haven't figured out a way to do that yet. |
Not sure about the iPhone. If there is a Mac app then Wireshark can tun on that. I used it on Windows with the older pedals. |
If I send sysex command 29, I get two short replies:
I don't know what that means. It's way obviously too short to be a complete patch. If I send sysex command 64 13, I get back a 985 bytes long sysex that starts with "F0 52 00 6E 64 12 01 50 06 00..." I assume everything after (not including) the sixth byte is the patch data, ending with the 5 (7-bit) byte CRC and F7. If I try to send that same patch data back to the pedal using sysex command 28, I get no reply, and nothing changes on the pedal. |
You need to send SysEx: |
Sorry. That was a typo. If I send "F0 52 00 6E 29 F7 ", I get no reply. If I try to set the patch with "F0 52 00 6E 28 <patch goes here> F7", I get no reply, and the pedal doesn't change state. The patch data I send start with "01 50 06 00", and ends with the 5 7-bit byte CRC.
|
BTW - I would like to link your work on ZoomPedalFun wiki so others can find it. I can also open up ZPF wiki if you or others would like to tabulate these new strings for the device - we cab also check if it unlocks other strings on the older pedals. Best regards |
@thammer The 7bit packed patch data starts with As for SysEx: |
I tried sending command 50 first, and then a new message with 29. This works fine with my MS-50G, but it does not work with the MS-50G+. |
That worked! :-D This is the reply I got from the 64 13 message:
I shaved off 64 12 01 50 06 from the start and added 28 instead.
And that worked like a charm, both with and without the CRC. |
Great! As I mentioned earlier, SysEx: |
Noted. Do we know what those 5 bytes I shaved off before the patch data represent?
The first two ( |
Yes. This is strange.
|
Hi Steve. |
In SysEx: |
@thammer How did you get the SysEx: |
I first send the parameter edit enable command
Message number 1 is |
@mungewell What are your thoughts on having zoomzt2.py support the MS Plus pedals? |
Bank number is 2 7-bit bytes, and consists of MSB (most significant bits, as set with MIDI: I guess, MS-50G+ now supports the program change with a SysEx: |
Closing, this should all be working now with latest release. |
Hi.
This is the sysex data for a patch from the MS-50G+ pedal. The actual patch data probably starts at offset 10 or 11 in this buffer.
The sysex message is what the MS-50G+ sends out if you change a parameter and wait for 3 seconds. It was captured using this tool: https://www.waveformer.net/zoom-explorer/
It'd be great if you could run it through your scripts and see if anything interesting pops up.
Let me know if you want the data on another format.
Cheers,
Thomas
Hexadecimal format:
ASCII view of the same patch with non-printable characters replaced with apostrophe:
The text was updated successfully, but these errors were encountered: