Open mungewell opened 2 years ago
Recall the rhythm and looper are not installed in the sense of extractable ZD2 on the pedal. I sent you a PM about it a while back - you confirmed they were dummy - but I checked them into python directory and use them to seed the FXID/GID.
I will check whether I was having a senior moment regarding the rhythm. I could turn it on/off. The looper alas escapes me.
Are you running the rhythm prime first?
EditorOn then prime then rhythmOnOff.
You have to pass in slot where rhythm is located. It is possible to add more than one - but that would be an illogical act!
OK the YouTube video explains how to turn rhythm on/off here:
I was attempting the do "prime" and then "on", but no joy. I was changing the string to control Slot-0 as the Rhythm effect was the only thing in the patch. I'll see if I get time tonight to document my failure further.
I presume on the video you are using a real G5, not the GCE-3 pretending to be one...
I also see:
So the .bin
is the reply from the pedal.
Correct, correct and correct. For sure I was using a G5n but I am pretty certain i got it working on a GCE-3 emulating a G5n too. I have to go out tomorrow but will try to make some time at the weekend to check.
My suggestion is if you have GuitarLab and Wireshark to hand you could check if you get the same sysex back and see if you see any more insights. The darned looper almost works.
BTW I am assuming you changed to the patch right? When the GCE-3 is plugged in it defaults to 1st patch. All the state is there - Zoom implies it plays the last patch only - not true.
PS did u see the ELF stuff I found on the ZDL? Maybe you were already extracting it. I still think the bitmap must be in there somewhere but it isn't in the BM format of a ZD2. But it did show me the TI compiler tool chain used and it seems Eclipse based and free from TI.
This is what I do: rhythm_it.sh.txt
which gives output
$ bash rhythm_it.sh
Go!
Switch to editor mode
Select preset 199
15 bytes read
00000000 f0 52 00 6e 00 00 f7 b0 00 00 b0 20 31 c0 03 |.R.n....... 1..|
0000000f
Grab screen and decode
1015 bytes read
---
Effect: Rhythm (Off)
PATTERN : 8Beats3
BPM : 0
VOL : 64
---
Effect: Bypass (Off)
:
:
:
Prime Rhythm
0 bytes read
Rhythm On
15 bytes read
00000000 f0 52 00 6e 64 03 01 0a 00 01 00 00 00 00 f7 |.R.nd..........|
0000000f
Rhythm Off
15 bytes read
00000000 f0 52 00 6e 64 03 01 0a 00 01 00 00 00 00 f7 |.R.nd..........|
0000000f
Done.
but no drum machine plays. Audio playing from PC (via USB) does come out of headphones...
sorry man - I rechecked today. Same sequence on a G5n turns rhythm on/off. But not on the GCE-3. Infact I notice it mutes the sound instead.
Rhythn in slot 1 of patch 1 (to make it easier to not have to change pgm)
Editor On
f0 52 00 6e 50 f7
Prime
f0 52 00 6e 64 03 00 0a 01 03 00 00 00 00 f7
Slot 1 rhythm on
f0 52 00 6e 64 03 00 0a 00 01 00 00 00 00 f7
Slot 1 rhythm off
f0 52 00 6e 64 03 00 0a 00 00 00 00 00 00 f7
It does send me a patch via Midi Ox.
F0 52 00 6E 64 03 01 0A 00 00 00 00 00 00 F7 F0 52 00 6E 45 00 00 00 00 00 00 78 05 04 50 54 43 46 34 01 00 00 00 01 00 00 00 09 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 4C 65 00 61 64 20 42 47 4E 20 00 20 10 00 00 1E 10 00 00 00 03 50 00 00 04 01 00 00 00 00 40 00 00 01 00 50 00 00 05 53 00 00 00 02 01 00 00 00 50 00 00 00 08 54 58 4A 31 34 00 00 00 00 58 74 61 73 03 79 42 6C 75 65 02 46 00 4D 6F 64 44 65 6C 61 3B 79 02 70 0E 67 02 41 7D 02 3D 03 02 03 5F 03 7A 13 03 0A 01 5B 03 68 57 03 54 03 45 03 13 03 20 68 01 42 00 00 00 54 00 58 45 31 34 00 00 00 00 54 68 69 73 20 6D 6F 00 64 65 72 6E 20 6C 65 00 61 64 20 73 6F 75 6E 00 64 20 75 73 65 73 20 00 58 74 61 73 79 42 6C 00 75 65 20 61 6E 64 20 00 4D 6F 64 44 65 6C 61 00 79 2E 00 45 44 54 42 40 58 00 00 00 21 00 00 42 7C 01 00 00 00 3C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 21 00 00 06 07 00 00 00 0A 3C 01 00 00 00 00 00 00 00 00 00 00 00 00 09 00 00 00 21 00 00 48 30 0C 50 40 0D 78 40 00 60 6C 20 08 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 00 01 00 00 02 00 60 10 01 07 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 20 00 0C 00 0A 00 20 00 0C 0C 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 00 27 00 00 04 07 70 00 40 06 50 00 06 64 60 40 54 60 00 06 06 06 06 00 60 60 40 01 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 49 21 00 00 50 6D 28 40 00 03 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 50 52 4D 00 0C 00 00 00 00 00 00 02 00 00 00 40 00 40 50 00 19 00 50 50 52 4D 0C 00 00 00 00 00 00 00 00 02 00 00 00 00 68 48 10 00 00 00 00 00 00 00 00 00 00 00 50 50 52 4D 0C 00 00 00 00 00 00 00 00 0C 00 00 00 00 56 50 19 00 00 50 50 52 4D 0C 00 00 00 00 00 00 00 00 00 04 00 00 00 68 48 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 22 12 51 73 07 F7
I will try to test this under GuitarLab - but I havent found a smart way to turn on Editor mode there.
Infact on the GCE-3 emulating a G5n the latter parameters change the guitar signal volume - how odd. Maybe there is some blend for rhythm/guitar - or maybe the GCE-3 is just different to the G5n. For sure the rhythm sounds a bit more distorted on PC using their Guitar Lab
Hola @mungewell
Great success!! I was being a ****ing idiot as normal. So I put a rhythm 1st in the chain with a ZNR ... and in the GCE-3 even in their GUI if I stopped playing the sound would go!!
Anyhow with a rhythm in slot one of patch one
f0 52 00 6e 50 f7
f0 52 00 6e 64 03 00 0a 01 00 00 00 00 00 f7 - PRIME
f0 52 00 6e 64 03 00 0a 03 01 00 00 00 00 f7 - ON/OFF toggle
I think there is some "mixed" thing going on with volumes - more as I find it.
works
and Wireshark latest version seems to be giving out the fruit
I attached the trace, a "cleanup" program but this is on my MS Dos machine - your ports might vary with wireshark.
I hope you get this working too - I will check out slot movement again later.
Sorry for being a dolt -but works for me - comes out of the analog earphones. Not trialled down the digital.
so I didnt realise the toggle nature of the sysex. It is related to the slot. But say I send this with rhythm in slot 1 and playing:
f0 52 00 6e 64 03 00 0a 05 01 00 00 00 00 f7
then the rhythm gets quieter - not silent .. most odd. Super distorted to normal ...
On volume; param 05
is the 4th dial which, allowing for the 'dummy' 2nd parameter, is labelled as 'VOL' on the Screen output. Maybe slot 0x0A is always controlling rhythm, regardless of which slot the patch puts it in.
https://github.com/mungewell/zoom-zt2#effects-settings
I'll grab the GCE-3 to take with me to test over the weekend...
Using the new commands I can control the Drum machine
f0 52 00 6e 64 03 00 0a 01 00 00 00 00 00 f7 - PRIME f0 52 00 6e 64 03 00 0a 03 01 00 00 00 00 f7 - ON/OFF toggle
However it is very quiet, both in headphones and recording via USB. I have the FX parameter at 100, will need to check patch volume and device volume
Effect: Rhythm (On)
PATTERN : 8Beats3
Dummy : 0
BPM : 0
VOL : 100
Also to note that the GCE-3 does not have any controls within alsamixer
.
Patch volume appears to be set to '100', whilst 'Dial 4' is '80'...
$ python3 zoomzt2.py -p 199 rhythm.zptc
$ python3 decode_preset.py -s rhythm.zptc | head
Name: Rhythm199
Patch Volume: 100
Effect 1: 0x1E000010
Enabled: True
Param 1: 54
Param 2: 0
Param 3: 0
Param 4: 80
Reading the screen, gives different value....
$ amidi -p hw:2,0,0 -S 'F0 52 00 6e 64 02 00 05 00 F7' -r temp.bin -t 2
1015 bytes read
$ python3 decode_screens.py temp.bin | head
---
Effect: Rhythm (Off)
PATTERN : 8Beats3
BPM : 0
VOL : 100
---
And, I don't remember how to get to device volume (without being able to see 'settings/volume' on the actual device).
And pattern '54' is supposed to be 'Swing1'
$ python3 decode_patterns.py G1_FOUR_v2.00/unzipped/.rsrc/1041/BIN/129 -T 407304 -D 457078 -p 54
Pattern 54 : Swing1 (0x0007372E)
Bars 2 (4/4)
---
Kik2.raw :# # # # # # # # :
SnrAmb.raw : o o o o :
Snr2.raw : X X X X :
: :
HHF.raw : # # # # :
Ride.raw :# # $ # # $ # # $ # # $ :
: :
KikAmb.raw :O O O O O O O O :
Click.raw :
Which suggests a bug in decode_preset.py
. :-(
Confused - but got a lot further. So you dont need to be in EditorOn mode to start looper/rhythm. Infact, I am fairly certain I am just sending FSn on to the device! I think the prime is not necessary - or at least I can do with out.
f0 52 6e 64 03 00 0n 00 OnOff 00 00 00 00 f7
Where n is the FS - 1.
But the pattern isnt consistent. It irks me if I get a result but cannot verify if it is right.
Bugger, my bug appears to be with selecting/reading patches....
Hmmh. So maybe this level is an additional to volume? The 0a I seemed to send? I noticed I could get the sound in the cans to go from quiet to distorted.
I think we are dangerously close to reverse engineering the 2 slot loopers and rhythm. The single slot ... well I have to get the Sniffer on those next week. Gotta practice for a gig tomorrow and as ever "can we change the key?". Sure. Why not. I only spent the week learning the original.
Did u see on the other thread I don't think the prime is totally necessary. Infact I am 100% sure we are sending some variant of FS1 - 4 on / off or on on on. What I don't know with amidi is how to emulate long press.
AFAIK volume is controlled at 3 different places:
The 'device' on the G1Four is under the settings page, and I vaguely remember some midi setting to get to it (like the auto-save I note on my front-page).
My 'senior moment' (as you put it) was looking at a patch different to the one I was actually selecting, that one had the volume turned all the way down. Especially dumb as I actually have a way of reading the current patch file...
$ python3 zoomzt2.py -c current.bin
$ python3 decode_preset.py -s current.bin | head
Name: Rhythm199
Patch Volume: 100
Effect 1: 0x1E000010
Enabled: True
Param 1: 54
Param 2: 0
Param 3: 0
Param 4: 80
Param 5: 0
Param 6: 0
I'll also note another issue, in that the pattern numbering is off. My script uses magic numbers I discovered by looking at the FW... it seems that there are a couple of unused patterns in there. PLUS, the value reported by decode_preset
seems to start from 0.
Manuals start from 1: page 56 - https://zoomcorp.com/media/documents/E_G5n-V2.0.pdf page 46 - https://zoomcorp.com/media/documents/E_G1FOUR.pdf
$ amidi -p hw:1,0,0 -S 'F0 52 00 6e 64 02 00 05 00 F7' -r temp.bin -t 2
1015 bytes read
$ python3 decode_screens.py temp.bin | head
---
Effect: Rhythm (Off)
PATTERN : Breaks1
BPM : 0
VOL : 80
---
From my midi_notes.txt
Set Master Volume
$ amidi -p hw:1,0,0 -S 'f0 52 00 6e 64 03 00 0a 00 20 00 00 00 00 f7'
^^
++---- Volume
So you get decent volume now you turned the correct patch up? Cool. What I notice Zoom does is to keep using the ascii screen to print out a few parameters at a time. And I guess we could (or you are?) use this to get the pattern name? I was too lazy to implement that in the GUI yet.
Been playing with the MS-70 CDR - it is amazing how far Zoom midi has come. Each device almost exposes enough internals for us to hack it ...almost :-(
Excellent work on the GCE-3 btw - glad to have you aboard. I dont think I will be gigging with a GCE - my bloody Guinea pig wants it back!
The decode_screen
script does this already, and the way that my scripts work is to decompose the binary blob into a Python dictionary. I used the '--dump' to debug and print this... at its literally just print(confg)
. Once elements are understood, it make sense bring that code into the main code.
The GCE-3 is basically just a toy, Not looked inside, but might be a cheap board to hack on... I'd be really interested in getting a stereo input somehow.
This bug can probably be closed, do you want to write up somewhere?
If I understand the issue correctly you can now start/stop rhythm on a GCE-3 emulating a G5n, set the controls and view the output. Did I miss anything? Sure I will have a go at adding it to the wiki.
I tried again with the GCE-3 and failed (again). I noticed some strangeness and want to confirm I'm doing stuff correctly.
Firstly the scripts and the bins do not match here.... https://github.com/shooking/ZoomPedalFun/blob/2752d1248454d3f03fe13c6a549d7d3ff3d6b675/G5n/RhythmOn.sh https://github.com/shooking/ZoomPedalFun/blob/2752d1248454d3f03fe13c6a549d7d3ff3d6b675/G5n/rhythmnOnOff.bin
Seems to be a bug with "0A" vs "04".
Using the SysEx I can grab/decode the "Screen Output" and change the Volume, but not whether effect is on (always off), pattern, or BPM (is always zero).
Additionally I don't see "Rhythm_100.zd2" installed on the pedal; not as file, not in ZT2 and not in ZSF.... although Rhymth DOES work in GuitarLab.
"Rhythm" effect is installed (it's the only effect) in the current patch, slot-0.