shooking / ZoomPedalFun

A collection of tips and tricks for Zoom B1On, B1XFour and G1XFour pedals.
Creative Commons Zero v1.0 Universal
59 stars 2 forks source link

Current Tempo and "stuff" #8

Open shooking opened 2 years ago

shooking commented 2 years ago

Consider the following sysex (on a G5n)

SEND: f052006e640af7 RECV: f052006e64097800010105000001f7

We know what sending CMD N generally returns response N-1. But we also know 64 is somehow related to ASCII stuff. So they echo themselves back followed by SubCmd - 1

It seems to me 0a above returns some into about parameter 0a in https://github.com/shooking/ZoomPedalFun/blob/main/B1XFour/SetTempo.sh we can see 0xa is tempo. And 0a -> 09 and 78 = 120. Hmmh. Could it be?

Well yes - yes it is.

So I set tempo tempo to 66, and get back 0x42. I set tempo to 88 and get back 0x58

Thoughts? What could other parameters mean?

shooking commented 2 years ago

Seems to work on B1XFour too.

shooking commented 2 years ago

Ok so the last value is auto save on/off. IE f0 52 00 6e 64 09 4c 00 01 00 05 00 00 01 f7 comes back for 76 BPM (0x4c) + autosave on. Turn auto save off and the it becomes 00 f7 !! So what does PreSelect do? Nothing. What about bank hold? No change. So this 64 0a command reads tempo and AutoSave.

shooking commented 2 years ago

OK so f0 52 00 6e 64 09 58 00 01 01 05 00 00 01 f7 f0 52 00 6e 64 09 58 00 01 00 05 00 00 01 f7

when EXT_PDL moves from ON to OFF on a G5n. I wonder if there are any "setters" for this? IE to turn on ext pedal for a G1X?

Then I turned AutoSave off on the G5n. It echoed

30 bytes read
00000000  f0 52 00 6e 64 03 00 0a  0f 00 00 00 00 00 f7 f0  |.R.nd...........|
00000010  52 00 6e 64 09 58 00 01  00 05 00 00 00 f7        |R.nd.X........|
0000001e

and indeed the last bit was off.

TAP LED not affecting bits (maybe one of the other probes).

SUMMARY

The above sysex seems to echo current tempo, autosave on/off, ext pedal on/off.

mungewell commented 2 years ago

On the 'bit' that's indicating, is this when an external pedal is actually connected. There is an external jack on the G3n and B3n, and internally of the G1FourX there is a 4 pin connector which has 2 pins at 3.3V. https://github.com/mungewell/zoom-zt2/issues/18

What might happen is that the CPU is using a GPIO to detect the pedal.... I wonder if unplugging the internal connector on G1FourX would result in the this bit being cleared?

Further question; did you manage to figure out how the PC sends the expression pedal data to the GCE?

shooking commented 2 years ago

I can try unplugging on the G1XFour and see.

Someone asked me to demo making G1XFour act like a B1XFour (apparently there is a sale in their county but they want B1XFour which isn't cheaper). I demo your Zoom gui to remove then add - I bet there is a CLI way except your method seems to need to specify parameters thar exist in the ZD2 (and your GUI method derives parameters).

Anyhow I noticed there is a BDL file like G1.BDL. I need to check if B1.BDL exists on the B1XFour and the other pedals. Right now my G1XFour thinks it is a B1XFour :-) except the sysex ID is still indicating G1XFour. That BDL might be giving it the device ID?

Not managed to work out how to set pedal on in a GCE-3. I wonder if there is a setter for the above getter? Or if something needs to be soldered to the PCB - their Zoom Guitar Lab doesn't seem able to utilise the pedal - there again I didn't try thar sysex with the GCE-3 emulating X v non X. Bit busy this week. But hopefully can check at weekend - sooner if I get a break in the week.

Please ping me if I haven't responded in reasonable time frame. I get easily distracted.

mungewell commented 2 years ago

I never understood the price difference for the Bass units (B3n is way more than G3n), and I guess this was what drove me into digging into the device - I am a cheap ass Bass player, who brought the G1Four ;-)

The BDL file is a ZD2 effect, self described as a '2 band EQ'. I think the device ID is hardcoded in the FW, see: https://github.com/mungewell/zoom-zt2/issues/18#issuecomment-748507124

mungewell commented 2 years ago

You could have linked the video, instead of making me hunt for it.... https://www.youtube.com/watch?v=lmNNdbnqz8c

If you are comfortable on the command line you can be a lot quicker by using the non-gui version 'zoom-zt2.py`. The command line flags allow for multiple ZD2s to installed/removed at once.

So, grep your FLST_SEQ.ZT2 (local copy or read it from the pedal) to list all the installed effects, and pipe that to xargs python3 zoom-zt.py --uninstall... and they are all removed from the pedal. You can then install a directory of effects with python3 zoom-zt.py --install *.ZD2

Newer versions of the tool automatically updates the FLST_SEQ.ZT2 as effects are installed/removed, using the data from the ZD2 file.

PS. The real mistake is not installing the Python module.... sudo python3 setup.py install. ;-)

shooking commented 2 years ago

hi So G1XFour has following when I set tempo to 80 (0x5)

f052006e640af7
f0 52 00 6e 64 09 50 00  01 00 05 00 00 01 f7

So the EXT_PDL is showing as 00 - there is no ext pedal input. Makes sense. But maybe the 01 next to it (01 00) is indicative of Pedal and no external pedal?

f0 52 00 6e 64 09 28 00  01 00 05 00 00 00 f7 G5n ext pedal off
f0 52 00 6e 64 09 28 00  01 01 05 00 00 00 f7 G5n ext pedal on
f0 52 00 6e 64 09 78 00  00 00 05 00 00 01 f7 G3n ext pedal off
f0 52 00 6e 64 09 78 00  01 00 05 00 00 01 f7 G3n ext pedal on

Puzzled. I did notice the following was sent when I manually set the autosave on - but it doesnt in itself seem to work

f0 52 00 6e 64 03 00 0a 0f 01 00 00 00 00 f7

EDIT: The G1XFour doesnt echo such stuff - maybe the G5n is a bit more information leaky? But might be a clue since it has same format as "set FX M to value N"

shooking commented 2 years ago

taken the G1XFour apart. Making a video. Will post a real link eventually :-)

It seems to be a 9 - 10k resistor with an on / off button at the control end. Not looked on the circulut board yet.

f052006e640af7
f0 52 00 6e 64 09 50 00  01 00 05 00 00 01 f7 with pedal attached
f0 52 00 6e 64 09 50 00  01 00 05 00 00 01 f7 without pedal ... so no difference 

wow i did not see those 2 sunken LCD screws! Fortunately I took a pause then saw them.

So the physical pedal is nothing special. I guess one could convert a socket to pass pot sweep to the CPU? Or attach an output for reading into Arduino for sensing the current pedal value - but not sure whether that is useful.

I will check out your photos and if I have something extra to add I will post them. Otherwise it is a PCB with components ...

shooking commented 2 years ago

I notice you already found the turn on auto save - but I also notice is is sent but doesn't seem to work on my G1XFour. Will check. I was trying to find the writeup where you showed your broken LCD screen (closed some my open issues). I couldn't find it on your issues page. Maybe it was on Barsik's?

mungewell commented 2 years ago

Autosave is mentioned on front page (readme.md).

Maybe you can look at this in this fashion...

f0 52 00 6e 64 09 28 00  01 00 05 00 00 00 f7 : G5n ext pedal off
f0 52 00 6e 64 09 28 00  01 01 05 00 00 00 f7 : G5n ext pedal on
f0 52 00 6e 64 09 78 00  00 00 05 00 00 01 f7 : G3n ext pedal off
f0 52 00 6e 64 09 78 00  01 00 05 00 00 01 f7 : G3n ext pedal on
                            ^^ Active pedal, if there is more than one
                         ^^ Pedal enabled