Skip to content
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

How does Looper work on GCE-3 #2

Open
shooking opened this issue Aug 25, 2021 · 28 comments
Open

How does Looper work on GCE-3 #2

shooking opened this issue Aug 25, 2021 · 28 comments

Comments

@shooking
Copy link
Owner

From the GuitarLab it is possible to trigger the looper.
Stand alone - not found it yet.

OBSERVATIONS

I found some patches do have Looper's in them. They have crazy GID.
Also, there does not appear to be any ZD2 related to these "FX" in the FLST_SEQ.ZDT.

I check with Mungewell's and Barsik's programs.

66 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 60 D5 17 C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 00 4C 50 2D 4D 4F 4E 4F 00 00 00 00 00 FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 8C D6 17 C0 04 46 81 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 54 69 6D 65 00 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B4 D4 17 C0 00 00 00 00

You can see attached image.
And also included is odd names around the ZDT above that are not part of the dump.

Needs some kinky extraction to get it.

LIST OF IDs - 28 bit variant

INFO:root:Exception looking up FXID: 16 15 Lead BGN   31457296 0x1e00010
INFO:root:Exception looking up FXID: 16 120 Loopertron 251658256 0xf000010
INFO:root:Exception looking up FXID: 16 120 GlassLoops 251658256 0xf000010
INFO:root:Exception looking up FXID: 32 120 Random LP  251658272 0xf000020
INFO:root:Exception looking up FXID: 32 120 MK1 LEAD   251658272 0xf000020
INFO:root:Exception looking up FXID: 16 120 TS+BOOST   251658256 0xf000010
INFO:root:Exception looking up FXID: 16 112 Empty      234881040 0xe000010
INFO:root:Exception looking up FXID: 16 120 Empty      251658256 0xf000010
INFO:root:Exception looking up FXID: 32 120 Empty      251658272 0xf000020
INFO:root:Exception looking up FXID: 48 120 Empty      251658288 0xf000030
INFO:root:Exception looking up FXID: 64 120 Empty      251658304 0xf000040

g5n_firmware1

g5n_firmware

@shooking
Copy link
Owner Author

$ strings ZOOM\ GCE-3\ System\ v1.20\ Updater.exe | grep ZD | grep LP
LP-MONO.ZD2
LP-ST.ZD2
LP-MONO2.ZD2
LP-ST2.ZD2
B_PDLPIT.ZD2
DUALPIT.ZD2

So they are in the GCE firmware.

and also in G5n

$ strings ZOOM\ G5n\ System\ v3.00\ Updater.exe | grep ZD | grep LP
LP-MONO.ZD2
LP-ST.ZD2
LP-MONO2.ZD2
LP-ST2.ZD2
C:\Project\ZDL_Ver2.00\PROGRAM\Gen01\11.PDL\ZDL_PDL_PEDALPIT\Debug
ZDL_PDL_PEDALPIT.out

@shooking
Copy link
Owner Author

WhatDoesLoopertronDo.txt

This is processed wireshark for Loopertron FX LP-MONO.

I moved Time, Undo, Stop and Volume.
Quite hard to control in virtual mode - you cannot easily press the two foot pedals to stop!!
loopertron1

@shooking
Copy link
Owner Author

So I am sure you already knew this but searching for "5A 44 4C 46 78" in firmware (ZDLFx) - interesting it isnt ZD2FX - seems to find more FX including the "missing ones".

I have since found names like (from one sourceee):

LP-MONO2_100.zd2
LP-MONO_100.zd2
LP-ST2_100.zd2
LP-ST_100.zd2
LPROLL3S_110.zd2
RHYTHM_100.zd2

I suspect the _NNN is the version number. So LP-MONO2 v 1.00 but darned if I can extract it cleanly from firmware with either Barsik's or Mungewell's toolchain.

So next I looked for that binary pattern in the firmware

import sys
from csplitb import CSplitB
csplitb = CSplitB("54444C4678", "ZOOM G5n System v3.00 Updater.exe", 3, "FX", ".ZDLFX")
csplitb.run()

Then attempt to extract some basic meaning (I use cygwin on PC cos Unix is so my more powerful than DoS)

$ for file in FX*; do echo $file; strings $file | grep ZDL | grep -v ZDLFx; done
FX000.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\03.DRV\ZDL_DRV_AcoSim\Debug
ZDL_DRV_AcoSim.out
FX001.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\09.REV\ZDL_REV_Air\Debug
ZDL_REV_Air.out
FX002.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\09.REV\ZDL_REV_tc_AMB\Debug
ZDL_REV_tc_AMB.out
FX003.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\06.MOD\ZDL_MOD_ANA234Cho\Debug
ZDL_MOD_ANA234Cho.out
FX004.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\08.DLY\ZDL_DLY_AnalogDly\Debug
ZDL_DLY_AnalogDly.out
FX005.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\08.DLY\ZDL_DLY_APanDLY\Debug
ZDL_DLY_APanDLY.out
FX006.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\07.SFX\ZDL_SFX_AutoPan\Debug
ZDL_SFX_AutoPan.out
FX007.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\02.FLT\ZDL_FLT_AutoWah\Debug
ZDL_FLT_AutoWah.out
FX008.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\06.MOD\ZDL_MOD_BendCho\Debug
ZDL_MOD_BendCho.out
FX009.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\05.CAB\ZDL_CAB_Bgn4x12SL\Debug
ZDL_CAB_Bgn4x12SL.out
FX010.ZDLFX
C:\Project\ZDL_Ver2.00\PROGRAM\Gen01\03.DRV\ZDL_DRV_BG_THRTTL\Debug
ZDL_DRV_BG_THRTTL.out
FX011.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\03.DRV\ZDL_DRV_BG_GRID\Debug
ZDL_DRV_BG_GRID.out
FX012.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\04.AMP\ZDL_AMP_BG_MK1\Debug
ZDL_AMP_BG_MK1.out
FX013.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\04.AMP\ZDL_AMP_BG_MK3\Debug
ZDL_AMP_BG_MK3.out
FX014.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\01.DYN\ZDL_DYN_BlackOpt\Debug
ZDL_DYN_BlackOpt.out
FX015.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\11.PDL\ZDL_PDL_BlackWah\Debug
ZDL_PDL_BlackWah.out
FX016.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\07.SFX\ZDL_SFX_Bomber\Debug
ZDL_SFX_Bomber.out
FX017.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\09.REV\ZDL_REV_CHAMBER\Debug
ZDL_REV_CHAMBER.out
FX018.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\06.MOD\ZDL_MOD_Chorus\Debug
ZDL_MOD_Chorus.out
FX019.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\11.PDL\ZDL_PDL_ChromeWah\Debug
ZDL_PDL_ChromeWah.out
FX020.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\09.REV\ZDL_REV_CHURCH\Debug
ZDL_REV_CHURCH.out
FX021.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\06.MOD\ZDL_MOD_CloneCho\Debug
ZDL_MOD_CloneCho.out
FX022.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\01.DYN\ZDL_DYN_Comp\Debug
ZDL_DYN_Comp.out
FX023.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\06.MOD\ZDL_MOD_CORONATRI\Debug
ZDL_MOD_CORONATRI.out
FX024.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\02.FLT\ZDL_FLT_Cry\Debug
ZDL_FLT_Cry.out
FX025.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\08.DLY\ZDL_DLY_Delay\Debug
ZDL_DLY_Delay.out
FX026.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\06.MOD\ZDL_MOD_Detune\Debug
ZDL_MOD_Detune.out
FX027.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\03.DRV\ZDL_DRV_DIST_1\Debug
ZDL_DRV_DIST_1.out
FX028.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\08.DLY\ZDL_DLY_DualDigiDelay\Debug
ZDL_DLY_DualDigiDelay.out
FX029.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\03.DRV\ZDL_DRV_DynamicDrive\Debug
ZDL_DRV_DynamicDrive.out
FX030.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\05.CAB\ZDL_CAB_DZ4x12F\Debug
ZDL_CAB_DZ4x12F.out
FX031.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\04.AMP\ZDL_AMP_DZ_HBT2\Debug
ZDL_AMP_DZ_HBT2.out
FX032.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\09.REV\ZDL_REV_EarlyRef\Debug
ZDL_REV_EarlyRef.out
FX033.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\02.FLT\ZDL_FLT_EG_FILTER\Debug
ZDL_FLT_EG_FILTER.out
FX034.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\03.DRV\ZDL_DRV_Ba_Boost\Debug
ZDL_DRV_Ba_Boost.out
FX035.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\02.FLT\ZDL_FLT_Exciter\Debug
ZDL_FLT_Exciter.out
FX036.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\05.CAB\ZDL_CAB_Fd2x12JN\Debug
ZDL_CAB_Fd2x12JN.out
FX037.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\05.CAB\ZDL_CAB_FD4x10\Debug
ZDL_CAB_FD4x10.out
FX038.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\05.CAB\ZDL_CAB_FDDX1x12\Debug
ZDL_CAB_FDDX1x12.out
FX039.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\05.CAB\ZDL_CAB_FD_MA2x12\Debug
ZDL_CAB_FD_MA2x12.out
FX040.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\09.REV\ZDL_REV_FD_Spring\Debug
ZDL_REV_FD_Spring.out
FX041.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\04.AMP\ZDL_AMP_FD_TWEED\Debug
ZDL_AMP_FD_TWEED.out
FX042.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\04.AMP\ZDL_AMP_FD_DLXR\Debug
ZDL_AMP_FD_DLXR.out
FX043.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\04.AMP\ZDL_AMP_FD_MASTER\Debug
ZDL_AMP_FD_MASTER.out
FX044.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\04.AMP\ZDL_AMP_FD_TwinR\Debug
ZDL_AMP_FD_TwinR.out
FX045.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\08.DLY\ZDL_DLY_FilterDly\Debug
ZDL_DLY_FilterDly.out
FX046.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\09.REV\ZDL_REV_GateRev\Debug
ZDL_REV_GateRev.out
FX047.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\03.DRV\ZDL_DRV_CentaGold\Debug
ZDL_DRV_CentaGold.out
FX048.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\01.DYN\ZDL_DYN_GrayComp\Debug
ZDL_DYN_GrayComp.out
FX049.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\02.FLT\ZDL_FLT_GraphicEQ\Debug
ZDL_FLT_GraphicEQ.out
FX050.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\02.FLT\ZDL_FLT_GraphicEQ_7\Debug
ZDL_FLT_GraphicEQ_7.out
FX051.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\09.REV\ZDL_REV_Hall\Debug
ZDL_REV_Hall.out
FX052.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\09.REV\ZDL_REV_HD_Hall\Debug
ZDL_REV_HD_Hall.out
FX053.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\08.DLY\ZDL_DLY_HoldDelay\Debug
ZDL_DLY_HoldDelay.out
FX054.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\06.MOD\ZDL_MOD_HPS\Debug
ZDL_MOD_HPS.out
FX055.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\04.AMP\ZDL_AMP_HW100\Debug
ZDL_AMP_HW100.out
FX056.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\05.CAB\ZDL_CAB_HW4x12\Debug
ZDL_CAB_HW4x12.out
FX057.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\08.DLY\ZDL_DLY_IceDelay\Debug
ZDL_DLY_IceDelay.out
FX058.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\04.AMP\ZDL_AMP_JTM45OS\Debug
ZDL_AMP_JTM45OS.out
FX059.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\06.MOD\ZDL_MOD_KickFlanger\Debug
ZDL_MOD_KickFlanger.out
FX060.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\02.FLT\ZDL_FLT_fCycle\Debug
ZDL_FLT_fCycle.out
FX061.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\01.DYN\ZDL_DYN_LIMIT1176\Debug
ZDL_DYN_LIMIT1176.out
FX062.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\07.SFX\ZDL_SFX_LoopRoll\Debug
ZDL_SFX_LoopRoll.out
FX063.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\02.FLT\ZDL_FLT_LowPassFL\Debug
ZDL_FLT_LowPaR
FX064.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\05.CAB\ZDL_CAB_MA2X12\Debug
ZDL_CAB_MA2X12.out
FX065.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\04.AMP\ZDL_AMP_MATCH_30\Debug
ZDL_AMP_MATCH_30.out
FX066.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\05.CAB\ZDL_CAB_Bg1x12ALT\Debug
ZDL_CAB_Bg1x12ALT.out
FX067.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\05.CAB\ZDL_CAB_BG_MK3_1x12\Debug
ZDL_CAB_BG_MK3_1x12.out
FX068.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\08.DLY\ZDL_DLY_ModDelay\Debug
ZDL_DLY_ModDelay.out
FX069.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\06.MOD\ZDL_MOD_MonoPitch\Debug
ZDL_MOD_MonoPitch.out
FX070.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\04.AMP\ZDL_AMP_MS1959mod\Debug
ZDL_AMP_MS1959mod.out
FX071.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\05.CAB\ZDL_CAB_Ms4x12C75\Debug
ZDL_CAB_Ms4x12C75.out
FX072.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\05.CAB\ZDL_CAB_MS4x12AL\Debug
ZDL_CAB_MS4x12AL.out
FX073.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\05.CAB\ZDL_CAB_MS4x12GB\Debug
ZDL_CAB_MS4x12GB.out
FX074.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\04.AMP\ZDL_AMP_MS800\Debug
ZDL_AMP_MS800.out
FX075.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\03.DRV\ZDL_DRV_MetalWRLD\Debug
ZDL_DRV_MetalWRLD.out
FX076.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\01.DYN\ZDL_DYN_MuteSW\Debug
ZDL_DYN_MuteSW.out
FX077.ZDLFX
C:\Project\ZDL_Ver2.00\PROGRAM\Gen01\03.DRV\ZDL_DRV_NycMuff\Debug
ZDL_DRV_NYC_Muff.out
FX078.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\01.DYN\ZDL_DYN_NoiseGate\Debug
ZDL_DYN_NoiseGate.out
FX079.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\06.MOD\ZDL_MOD_Octave\Debug
ZDL_MOD_Octave.out
FX080.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\03.DRV\ZDL_DRV_OctFuzz\Debug
ZDL_DRV_OctFuzz.out
FX081.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\01.DYN\ZDL_DYN_OptComp\Debug
ZDL_DYN_OptComp.out
FX082.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\04.AMP\ZDL_AMP_Orange_120\Debug
ZDL_AMP_Orange_120.out
FX083.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\05.CAB\ZDL_CAB_ORG_4x12\Debug
ZDL_CAB_ORG_4x12.out
FX084.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\11.PDL\ZDL_PDL_OscEcho\Debug
ZDL_PDL_OscEcho.out
FX085.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\03.DRV\ZDL_DRV_MasterBoost\Debug
ZDL_DRV_MasterBoost.out
FX086.ZDLFX
ZDL_PDL_Output_VP.out
FX087.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\02.FLT\ZDL_FLT_ParaEQ\Debug
ZDL_FLT_ParaEQ.out
FX088.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\09.REV\ZDL_REV_PerticleR\Debug
ZDL_REV_PerticleR.out
FX089.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\11.PDL\ZDL_PDL_PDL_BitCR\Debug
ZDL_PDL_PDL_BitCR.out
FX090.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\11.PDL\ZDL_PDL_PedalDelay\Debug
ZDL_PDL_PedalDelay.out
FX091.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\11.PDL\ZDL_PDL_PedalDrive\Debug
ZDL_PDL_PedalDrive.out
FX092.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\11.PDL\ZDL_PDL_Pedal_Flanger\Debug
ZDL_PDL_Pedal_Flanger.out
FX093.ZDLFX
C:\Project\ZDL_Ver2.00\PROGRAM\Gen01\11.PDL\ZDL_PDL_PEDALMNP\Debug
ZDL_PDL_PEDALMNP.out
FX094.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\11.PDL\ZDL_PDL_Pedal_Phaser\Debug
ZDL_PDL_Pedal_Phaser.out
FX095.ZDLFX
C:\Project\ZDL_Ver2.00\PROGRAM\Gen01\11.PDL\ZDL_PDL_PEDALPIT\Debug
ZDL_PDL_PEDALPIT.out
FX096.ZDLFX
ZDL_PDL_PDL_RESO.out
FX097.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\11.PDL\ZDL_PDL_PdlReverb\Debug
ZDL_PDL_PdlReverb.out
FX098.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\11.PDL\ZDL_PDL_PedalRotary\Debug
ZDL_PDL_PedalRotary.out
FX099.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\11.PDL\ZDL_PDL_PedalVibe\Debug
ZDL_PDL_PedalVibe.out
FX100.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\11.PDL\ZDL_PDL_PedalVolume\Debug
ZDL_PDL_PedalVolume.out
FX101.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\08.DLY\ZDL_DLY_PhaseDly\Debug
ZDL_DLY_PhaseDly.out
FX102.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\06.MOD\ZDL_MOD_Phaser\Debug
ZDL_MOD_Phaser.out
FX103.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\08.DLY\ZDL_DLY_PitchDLY\Debug
ZDL_DLY_PitchDLY.out
FX104.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\06.MOD\ZDL_MOD_PitchSHFT\Debug
ZDL_MOD_PitchSHFT.out
FX105.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\09.REV\ZDL_REV_PLATE_REV\Debug
ZDL_REV_PLATE_REV.out
FX106.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\08.DLY\ZDL_DLY_P-P_Delay\Debug
ZDL_DLY_P_P_Delay.out
FX107.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\01.DYN\ZDL_DYN_RackComp\Debug
ZDL_DYN_RACKCOMP.out
FX108.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\03.DRV\ZDL_DRV_RcBoost\Debug
ZDL_DRV_RcBoost.out
FX109.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\05.CAB\ZDL_CAB_BgRct4x12\Debug
ZDL_CAB_BgRct4x12.out
FX110.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\04.AMP\ZDL_AMP_RectOrng\Debug
ZDL_AMP_RectOrng.out
FX111.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\03.DRV\ZDL_DRV_RedCrunch_Boost\Debug
ZDL_DRV_RedCrunch_Boost.out
FX112.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\03.DRV\ZDL_DRV_RedCrunch\Debug
ZDL_DRV_RedCrunch.out
FX113.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\02.FLT\ZDL_FLT_Resonance\Debug
ZDL_FLT_Resonance.out
FX114.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\08.DLY\ZDL_DLY_ReverseDL\Debug
ZDL_DLY_ReverseDL.out
FX115.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\06.MOD\ZDL_MOD_RingMod\Debug
ZDL_MOD_RingMod.out
FX116.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\02.FLT\ZDL_FLT_RndmFLTR\Debug
ZDL_FLT_RndmFLTR.out
FX117.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\09.REV\ZDL_REV_Room\Debug
ZDL_REV_Room.out
FX118.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\02.FLT\ZDL_FLT_SeqFLTR\Debug
ZDL_FLT_SeqFLTR.out
FX119.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\08.DLY\ZDL_DLY_SlapBackDelay\Debug
ZDL_DLY_SlapBackDelay.out
FX120.ZDLFX
ZDL_MOD_Slicer.out
FX121.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\01.DYN\ZDL_DYN_SlowATTCK\Debug
ZDL_DYN_SlowATTCK.out
FX122.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\09.REV\ZDL_REV_SpaceHole\Debug
ZDL_REV_SpaceHole.out
FX123.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\09.REV\ZDL_REV_Spring\Debug
ZDL_REV_Spring.out
FX124.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\03.DRV\ZDL_DRV_SpotBoost\Debug
ZDL_DRV_SpotBoost.out
FX125.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\03.DRV\ZDL_DRV_Squeak\Debug
ZDL_DRV_Squeak.out
FX126.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\02.FLT\ZDL_FLT_Step\Debug
ZDL_FLT_Step.out
FX127.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\06.MOD\ZDL_MOD_StereoCho\Debug
ZDL_MOD_StereoCho.out
FX128.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\06.MOD\ZDL_MOD_StonePha\Debug
ZDL_MOD_StonePha.out
FX129.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\02.FLT\ZDL_FLT_St_Gt_GEQ\Debug
ZDL_FLT_St_Gt_GEQ.out
FX130.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\06.MOD\ZDL_MOD_SuperCho\Debug
ZDL_MOD_SuperCho.out
FX131.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\03.DRV\ZDL_DRV_SweetDrv\Debug
ZDL_DRV_SweetDrv.out
FX132.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\08.DLY\ZDL_DLY_TapeEcho3\Debug
ZDL_DLY_TapeEcho3.out
FX133.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\08.DLY\ZDL_DLY_TapeEcho\Debug
ZDL_DLY_TapeEcho.out
FX134.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\03.DRV\ZDL_DRV_TB_MK15\Debug
ZDL_DRV_TB_MK15.out
FX135.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\06.MOD\ZDL_MOD_TheVibe\Debug
ZDL_MOD_TheVibe.out
FX136.ZDLFX
C:\Project\ZDL_Ver2.00\PROGRAM\Gen01\06.MOD\ZDL_MOD_TREMOLO\Debug
ZDL_MOD_TREMOLO.out
FX137.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\03.DRV\ZDL_DRV_OD_BOOST\Debug
ZDL_DRV_OD_BOOST.out
FX138.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\03.DRV\ZDL_DRV_TS_Drive\Debug
ZDL_DRV_TS_Drive.out
FX139.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\05.CAB\ZDL_CAB_UK2x12CBL\Debug
ZDL_CAB_UK2x12CBL.out
FX140.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\04.AMP\ZDL_AMP_UK30A\Debug
ZDL_AMP_UK30A.out
FX141.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\03.DRV\ZDL_DRV_Oct1Plus\Debug
ZDL_DRV_Oct1Plus.out
FX142.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\06.MOD\ZDL_MOD_Vibrato\Debug
ZDL_MOD_Vibrato.out
FX143.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\06.MOD\ZDL_MOD_VinFLNGR\Debug
ZDL_MOD_VinFLNGR.out
FX144.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\11.PDL\ZDL_PDL_VoiceWah\Debug
ZDL_PDL_VoiceWah.out
FX145.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\11.PDL\ZDL_PDL_WH100\Debug
ZDL_PDL_WH100.out
FX146.ZDLFX
C:\Project\ZDL_Ver2.00\PROGRAM\Gen01\06.MOD\ZDL_MOD_WarpPhase\Debug
ZDL_MOD_WarpPhase.out
FX147.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\04.AMP\ZDL_AMP_XtacyBlue\Debug
ZDL_AMP_XtacyBlue.out
FX148.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\01.DYN\ZDL_DYN_ZNR\Debug
ZDL_DYN_ZNR.out
FX149.ZDLFX
C:\Project\ZDL_Ver2.00\PROGRAM\Gen01\99.DEBUG\ZDL_DEBUG_MaxSizeTwinDelay\Debug
ZDL_DLY_Tri_Delay.out
FX150.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\99.DEBUG\ZDL_DEBUG_MaxSizeTriDelay\Debug
ZDL_DLY_Tri_Delay.out
FX151.ZDLFX
ZDL_PDL_Output_VP.out
FX152.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\03.DRV\ZDL_DRV_Distortion_Plus\Debug
ZDL_DRV_Distortion_Plus.out
FX153.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\03.DRV\ZDL_DRV_Z_Drive\Debug
ZDL_DRV_Z_Drive.out
FX154.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\08.DLY\ZDL_DLY_SlwAtkDly\Debug
ZDL_DLY_SlwAtkDly.out
FX155.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\09.REV\ZDL_REV_Freez_PLATE\Debug
ZDL_REV_Freez_PLATE.out
FX156.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\09.REV\ZDL_REV_CHURCH\Debug
ZDL_REV_CHURCH.out
FX157.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\09.REV\ZDL_REV_tc_AMB\Debug
ZDL_REV_tc_AMB.out
FX158.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\06.MOD\ZDL_MOD_CloneCho\Debug
ZDL_MOD_CloneCho.out
FX159.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\08.DLY\ZDL_DLY_DualDigiDelay\Debug
ZDL_DLY_DualDigiDelay.out
FX160.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\07.SFX\ZDL_SFX_LoopRoll\Debug
ZDL_SFX_LoopRoll.out
FX161.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\03.DRV\ZDL_DRV_RIOT_RE\Debug
ZDL_DRV_RIOT_RE.out
FX162.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\06.MOD\ZDL_MOD_DuoPhase\Debug
ZDL_MOD_DuoPhase.out
FX163.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\07.SFX\ZDL_SFX_HotSpice\Debug
ZDL_SFX_HotSpice.out
FX164.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\08.DLY\ZDL_DLY_SoftEcho\Debug
ZDL_DLY_SoftEcho.out
FX165.ZDLFX
C:\Project\ZDL_Ver2.00\PROGRAM\Gen01\06.MOD\ZDL_MOD_Chorus\Debug
ZDL_MOD_Chorus.out
FX166.ZDLFX
C:\Project\ZDL_Ver2.00\PROGRAM\Gen01\08.DLY\ZDL_DLY_AnalogDly\Debug
ZDL_DLY_AnalogDly.out
FX167.ZDLFX
C:\Project\ZDL_Ver2.00\PROGRAM\Gen01\08.DLY\ZDL_DLY_TapeEcho\Debug
ZDL_DLY_TapeEcho.out
FX168.ZDLFX
C:\Project\ZDL_Ver2.00\PROGRAM\Gen01\08.DLY\ZDL_DLY_ReverseDL\Debug
ZDL_DLY_ReverseDL.out
FX169.ZDLFX
C:\Project\ZDL_Ver2.00\PROGRAM\Gen01\08.DLY\ZDL_DLY_HoldDelay\Debug
ZDL_DLY_HoldDelay.out
FX170.ZDLFX
C:\Project\ZDL_Ver2.00\PROGRAM\Gen01\09.REV\ZDL_REV_Air\Debug
ZDL_REV_Air.out
FX171.ZDLFX
C:\Project\ZDL_Ver2.00\PROGRAM\Gen01\09.REV\ZDL_REV_Room\Debug
ZDL_REV_Room.out
FX172.ZDLFX
C:\Project\ZDL_Ver2.00\PROGRAM\Gen01\09.REV\ZDL_REV_Hall\Debug
ZDL_REV_Hall.out
FX173.ZDLFX
C:\Project\ZDL_Ver2.00\PROGRAM\Gen01\09.REV\ZDL_REV_HD_Hall\Debug
ZDL_REV_HD_Hall.out
FX174.ZDLFX
C:\Project\ZDL_Ver2.00\PROGRAM\Gen01\09.REV\ZDL_REV_Spring\Debug
ZDL_REV_Spring.out
FX175.ZDLFX
C:\Project\ZDL_Ver2.00\PROGRAM\Gen01\09.REV\ZDL_REV_PLATE_REV\Debug
ZDL_REV_PLATE_REV.out
FX176.ZDLFX
C:\Project\ZDL_Ver2.00\PROGRAM\Gen01\11.PDL\ZDL_PDL_PedalVolume\Debug
ZDL_PDL_PedalVolume.out
FX177.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\02.FLT\ZDL_FLT_fCycle\Debug
ZDL_FLT_fCycle.out
FX178.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\02.FLT\ZDL_FLT_Step\Debug
ZDL_FLT_Step.out
FX179.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\03.DRV\ZDL_DRV_OD_BOOST\Debug
ZDL_DRV_OD_BOOST.out
FX180.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\04.AMP\ZDL_AMP_DZ_HBT2\Debug
ZDL_AMP_DZ_HBT2.out
FX181.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\04.AMP\ZDL_AMP_MS1959mod\Debug
ZDL_AMP_MS1959mod.out
FX182.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\05.CAB\ZDL_CAB_DZ4x12F\Debug
ZDL_CAB_DZ4x12F.out
FX183.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\05.CAB\ZDL_CAB_MS4x12GB\Debug
ZDL_CAB_MS4x12GB.out
FX184.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\06.MOD\ZDL_MOD_BendCho\Debug
ZDL_MOD_BendCho.out
FX185.ZDLFX
C:\Project\ZDL_Ver2.00\PROGRAM\Gen01\08.DLY\ZDL_DLY_APanDLY\Debug
ZDL_DLY_APanDLY.out
FX186.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\08.DLY\ZDL_DLY_SlapBackDelay\Debug
ZDL_DLY_SlapBackDelay.out
FX187.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\09.REV\ZDL_REV_PerticleR\Debug
ZDL_REV_PerticleR.out
FX188.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\11.PDL\ZDL_PDL_Pedal_Flanger\Debug
ZDL_PDL_Pedal_Flanger.out
FX189.ZDLFX
C:\project\ZDL_Ver2.00\PROGRAM\Gen01\01.DYN\ZDL_DYN_OptComp\Debug
ZDL_DYN_OptComp.out
FX190.ZDLFX
C:\Project\ZDL_Ver2.00\PROGRAM\Gen01\03.DRV\ZDL_DRV_RcBoost\Debug

stash in file for easier navigation
touch outfile.dat; for file in FX*; do echo $file >> outfile.dat; strings $file | grep ZDL | grep -v ZDLFx >> outfile.dat; done

Interesting .. so the looper isnt in that list. It does confirm the Groups used in catalog.
So where are the Looper FX?

@shooking
Copy link
Owner Author

OK someone has a sense of humour in design of the G5n firmware at least - or my Autistic mind is seeing patterns that arent there.
I seems at the end of "strings" section they used ASCII ART to show a blank allocation table - then as values change the memory is "lost". Let me try to show you .... series of images ... I use 25 byte width (oh I removed first few bytes of the firmware to leave FF FF 00 00 B8) This pattern occurs after the listing of the "raw" files.

ascii_memory_pattern_001
ascii_memory_pattern_002
ascii_memory_pattern_003
ascii_memory_pattern_004
ascii_memory_pattern_005

Made me laugh - hope it's not just me seeing the ASCII art. Still doesnt help me (yet) to see the looper but there are other patterns available - I guess FAT and other checksums?

@shooking
Copy link
Owner Author

OK so examining the ZDL, the Type is the 4 bytes (32 bits) read backwards from name. Although it seems 28 bits are active - except maybe for these Loopers the top 4 bits indicate they are machine specific?

Check out this image of the byte dump
LP_Stereo

and see how we have this referenced in a patch but the ZDL was not in the FLST_SQL.ZDT.

Curious.

@shooking
Copy link
Owner Author

shooking commented Nov 9, 2021

Reposting here based on observations I made on another site.
The original 28 bit GIDs are wrong. They need at least another bit - they are not 120 bit instead 24

Ok so I made more progress with the G5n. Will revert back to G3n later - just got to unbox it!

Anyhow @mungewell would be great if we can read the higher bits of FXID/GID from patch.
I did this in C++ and now I can switch in Rhythm/Loopers.
Below you have the FXID/GID necessary to load FX into a slot. IE 16/240, 16/248 etc.

16, 240 == Rhythm
PATTERN 67 states
-
bpm 40 - 250
vol 0 - 100

16, 248 == LP-MONO
Time 0 - 64 (manual, 1, 2 ... 64)
Undo off/on
Stop stop, finish, fade out
Volume 0 - 100

32, 248 == LP-STEREO
same params

48, 248 == LP-MN2 (2 slots)
p1 -> rec
so it need FS1 pressed?
pushing FS2 -> cancel
hold FS2 => clear

FS1 -> recording
push again -> play
again -> overdub'
push both FS1 2 and clear

2nd slot same as single

64, 248 == LP-ST2 (2 slots)

I am not sure (yet) if the FS1-4 return any midi. But for sure one an turn these FX on/off in slot - you can only have on type of looper at a time. If you add another then it "works" and the older one show the ! triangle.

For mono variants P1 - N works.
For stereo version

Example

pi@raspberrypi:~/Software/ZoomPedalG5n $ ./FXM_ID.sh 1 64 248
F0 52 00 6E 64 03 00 00 01 40 00 00 78 01 F7

857 bytes read
00000000  f0 52 00 6e 64 12 00 60  05 00 50 54 43 46 4c 01  |.R.nd..`..PTCFL.|
00000010  00 00 00 01 00 00 00 09  00 00 00 00 01 00 00 00  |................|
00000020  00 00 00 00 00 00 00 45  6d 00 70 74 79 20 20 20  |.......Em.pty   |
00000030  20 00 20 40 00 00 1f 01  00 00 00 00 00 00 00 00  | . @............|
00000040  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000050  00 00 00 00 00 00 00 00  00 00 00 00 54 58 4a 31  |............TXJ1|
00000060  00 00 00 00 00 54 58 45  31 00 00 00 00 00 45 44  |.....TXE1.....ED|
00000070  54 22 42 58 00 00 00 01  00 00 00 3e 00 00 00 00  |T"BX.......>....|
00000080  00 00 40 0f 04 08 40 01  00 00 00 00 00 00 00 00  |..@...@.........|
00000090  00 00 00 03 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000a0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 01 00  |................|
000000b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000c0  00 00 00 00 00 00 00 00  00 00 01 00 00 00 00 00  |................|
000000d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000e0  00 00 00 00 00 01 00 00  00 00 00 00 00 00 00 00  |................|
000000f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000100  01 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000110  00 00 00 00 00 00 00 00  00 00 00 00 01 00 00 00  |................|
00000120  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000130  00 00 00 00 00 00 00 01  00 00 00 00 00 00 00 00  |................|
00000140  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000150  00 00 00 01 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000160  00 00 00 00 00 00 00 00  00 00 00 00 00 00 50 50  |..............PP|
00000170  52 00 4d 0c 00 00 00 00  00 00 00 00 00 20 00 00  |R.M.......... ..|
00000180  32 40 04 0c 00 00 00 00  00 00 00 00 00 00 00 00  |2@..............|
00000190  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000350  00 00 00 6e 18 1c 76 0f  f7                       |...n..v..|
00000359

And now we have LP-ST2 in slot 1 & 2.For these double slots P5 - 8 control FX params that are 1 - 4 in the single slot version.

For example

pi@raspberrypi:~/Software/ZoomPedalG5n $ ./FXM_PN.sh 1 5 10
10
0a
00
F0 52 00 6E 64 03 00 00 06 0a 00 00 00 00 F7

P5's set to 10 = which is a time of 10.
0 => manual
1 => crotchet x 1 etc etc

FX 1 6 0 turns UNDO off
1 6 1 turns UNDO on
P7 modifies the stop
P8 modifies the volume.

If I look at midi packet in cmidiin

52 00 6e 64 03 00 00 07 00 00 00 00 00 f7 
stamp = 0.255346
f0 
52 00 6e 64 03 00 00 00 01 00 00 00 00 f7 

so it seems to send this extra sysex sentence.
.

@shooking
Copy link
Owner Author

shooking commented Nov 9, 2021

Also I found, when investigating ZDLs, that if you extract from a firmware file you need to follow Barsik's tips - max 4096 in a block with first 6 bytes as 3 shorts. I have examples of using this on the site.

@mungewell
Copy link
Collaborator

Looking at those ZD2, they are all very small and declare themselves as 'Dummy's...

$ grep Dll *.sym
LP-MONO2_100.zd2.code.sym:    26: 00000000     0 FUNC    GLOBAL PROTECTED    4 Dll_Dummy
LP-MONO2_100.zd2.code.sym:     5: 00000000     0 FUNC    GLOBAL PROTECTED    4 Dll_Dummy
LP-MONO_100.zd2.code.sym:    26: 00000000     0 FUNC    GLOBAL PROTECTED    4 Dll_Dummy
LP-MONO_100.zd2.code.sym:     5: 00000000     0 FUNC    GLOBAL PROTECTED    4 Dll_Dummy
LP-ST2_100.zd2.code.sym:    26: 00000000     0 FUNC    GLOBAL PROTECTED    4 Dll_Dummy
LP-ST2_100.zd2.code.sym:     5: 00000000     0 FUNC    GLOBAL PROTECTED    4 Dll_Dummy
LP-ST_100.zd2.code.sym:    26: 00000000     0 FUNC    GLOBAL PROTECTED    4 Dll_Dummy
LP-ST_100.zd2.code.sym:     5: 00000000     0 FUNC    GLOBAL PROTECTED    4 Dll_Dummy
RHYTHM_100.zd2.code.sym:    26: 00000000     0 FUNC    GLOBAL PROTECTED    4 Dll_Dummy
RHYTHM_100.zd2.code.sym:     5: 00000000     0 FUNC    GLOBAL PROTECTED    4 Dll_Dummy

First though is perhaps they are just mechanism to receive Midi for the remote control of the inbuilt Looper/Rhythm functions.

@shooking
Copy link
Owner Author

shooking commented Nov 11, 2021 via email

@mungewell
Copy link
Collaborator

I haven't gone down the disassembly route yet (would need to find the appropriate software), this is just using readelf to dump the symbols of the --code segment.

@shooking
Copy link
Owner Author

I see what you mean - ok well I will use my ill-gotten dummy ZD2s for the FXID/GID BMP, cache them and create the JSON parameters myself - they seem to be empty by default. Odd why they even exist.

@shooking
Copy link
Owner Author

OK so I think the FS1 - 4 sends

FS1: b0 00 00 b0 20 1f c0 00
FS2: b0 00 00 b0 20 1f c0 01
FS3: b0 00 00 b0 20 1f c0 02
FS4: b0 00 00 b0 20 1f c0 03

OK for sure it does BUT not sure if there is context here.
zB on a patch 128 wih just Rhythm in slot 1 if I send the FS1 above it turns me to patch 125. This perversely makes sense. If I was in the patch mode FS1 take me to the 1st patch.
But now I got to work out how the rhythm is triggered.

well f0 52 00 6e 64 03 00 00 00 01 00 00 00 00 f7 seems to retrigger the rhythm.
Bizarre ... any insights appreciated.

pi@raspberrypi:~/Software/ZoomPedalG5n $ ~/Software/rtmidi/tests/cmidiin

Would you like to open a virtual input port? [y/N] n
  Input port #0: Midi Through:Midi Through Port-0 14:0
  Input port #1: ZOOM G Series:ZOOM G Series MIDI 1 32:0

Choose a port number: 1

Reading MIDI input ... press <enter> to quit.
b0 
00 00 
stamp = 0
b0 
20 1f 
stamp = 0.000442121
c0 
00 
stamp = 3.074e-05
b0 
00 00 
stamp = 1.69558
b0 
20 1f 
stamp = 6.5147e-05
c0 
01 
stamp = 2.1129e-05
b0 
00 00 
stamp = 1.50592
b0 
20 1f 
stamp = 0.00204855
c0 
02 
stamp = 0.000767448
b0 
00 00 
stamp = 1.37393
b0 
20 1f 
stamp = 6.6684e-05
c0 
03 
stamp = 0.000356476

@shooking
Copy link
Owner Author

so on physical machine "STOP" is pressing relevant FS twice in quick succession.
When looper is in 2nd slot the midi sent is
f0 52 00 6e 64 03 00 01 00 01 00 00 00 00 f7

lets move the looper further up the slot

well that triggers some nasty sysex

0 
52 00 6e 64 12 00 60 05 00 50 54 43 46 30 01 00 
00 00 01 00 00 00 08 00 00 00 00 01 00 00 00 00 
00 00 00 00 00 00 45 6d 00 70 74 79 20 20 20 20 
00 20 10 00 00 1e 00 00 00 00 00 10 00 00 1f 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 54 58 00 4a 31 00 00 00 00 54 
00 58 45 31 00 00 00 00 04 45 44 54 42 40 00 00 
04 00 21 00 00 7c 02 00 10 00 00 10 01 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 21 00 00 3e 00 04 00 
00 00 2c 01 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 50 50 52 
00 4d 0c 00 00 00 00 00 08 00 00 00 00 40 00 32 
40 04 0c 00 00 00 00 00 00 00 00 00 00 50 50 52 
00 4d 0c 00 00 00 00 00 00 00 00 00 20 00 00 32 
40 04 0c 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 56 2f 12 3a 05 f7 

followed by a patch dump

And now the looper is controlled by
f0 52 00 6e 64 03 00 02 00 01 00 00 00 00 f7
cf
f0 52 00 6e 64 03 00 01 00 01 00 00 00 00 f7

so looper/rhythm position is related to the 8th byte (index 7)?

@shooking
Copy link
Owner Author

OK so I want back to MidiOx this morning.
I see why the FS1-N is in some cases sending patch commands - no big deal. Multi Function pedals have MF switches!
So in some modes the FS1-4 and scroll must be sending an inc/dec internally and that generates "oh +1/-1" to current bank.

What i then tried was "ok what if I press the FS when I am in Memory mode -so I am looking at the FX window and params.

Well I can cheat the looper off. Not ideal but well I will take it until we can work out what's really happening.

FS 1 - 4 in FX mode

1st half of 2 slot FX sends its on/off ie

F0 52 00 6E 64 03 00 00 00 00 00 00 00 00 F7 off
F0 52 00 6E 64 03 00 00 00 01 00 00 00 00 F7 on

FX 4.                4-1   off/on
F0 52 00 6E 64 03 00 03 00 00 00 00 00 00 F7
F0 52 00 6E 64 03 00 03 00 01 00 00 00 00 F7

2nd half of a 2 slot sends
                        ?? off/on
F0 52 00 6E 64 03 00 00 0A 00 00 00 00 00 F7
F0 52 00 6E 64 03 00 00 0A 01 00 00 00 00 F7

for a looper in slot 3
F0 52 00 6E 64 03 00 02 00 01 00 00 00 00 F7
always same and mode changes.
now I move the window so that slot3 is first in window.
It now sends
F0 52 00 6E 64 03 00 02 00 01 00 00 00 00 F7
sending twice in quick succession == stop
so it remains same.

Now I move the MN-Mono to slot 1

And it sends
                     sl    
F0 52 00 6E 64 03 00 00 00 01 00 00 00 00 F7
dummy 2nd side always sends the A0

So essentially FS1-4 is an on-off with the normal commands we know. I didnt know the dummy 2nd slot sends different Sysex. Might be useful for later.

If I send the FS1 for mono looper in slot 1 it "resets" the display, pauses, then reports the state.
So F0 52 00 6E 64 03 00 00 00 01 00 00 00 00 F7 turns that display on, waits maybe 1/4 second then tells me the looper is STOPPED ... true.
Pressing the physical FS1 will emit that sysex, swap between REC, Play, overdub, play, overdub ,,
Physically double pressing twice will stop (STOPPED).
Physically pressing and holding for a few seconds clears.

Again sendnig the F0 52 00 6E 64 03 00 00 00 01 00 00 00 00 F7 essentially reiterates the state.

If I manually set rec mode then send F0 52 00 6E 64 03 00 00 00 00 00 00 00 00 F7 - the rec pauses (I guess checking the sysex) then carries on from where it was,
Eventually it goes into play mode (end of recording)

Similarly sending F0 52 00 6E 64 03 00 00 00 00 00 00 00 00 F7 pauses the playback .. oh where was I .. carries on.

However, sending
F0 52 00 6E 64 03 00 00 00 01 00 00 00 00 F7
F0 52 00 6E 64 0B F7
F0 52 00 6E 64 0C F7
turns in/out of tuner mode then displays STOPPED>

So not exactly sure how this unit starts the looper. likely the MIDI is an echo to outside world "I did it".
But wait .. the G5n is also controllable from GuitarLab and/or ToneLib ..I feel some sniffing

@shooking
Copy link
Owner Author

slight aside (it's my thing) but as I was watching tonelib and then Zoom Guitar Lab look at G5n It took me a while to realize it now loves @mungewell 's injections therapy :-)

image

so my GUI, using modified zoom-zt2 techniques (specifically 29 - 32 bit ID) shows the Rhythm and 12 string guitar FX.
Something to note. You cannot have 2xRhythm -but see how they have different parameters. Odd.
On the physical display the 2nd Rhythm is a bit bizarre.

I started to monitor the Pcap coming out of a G5n controlled via GuitarLab,.
And here's what I got

SEND: f052006e6403000a010000000000f7
SEND: f052006e6403000a050100000000f7
RECV: f052006e64030002000100000000f7
SEND: f052006e6402020300f7
RECV: f052006e64010200000052454300000000000000020001004f6e4f66660000000000020100004c502d4d4f4e4f000000020101004c502d4d4f4e4f000000020200004d414e55414c000000000202010054696d65000000000000020300004f4e000000000000000002030100556e646f0000000000000204000053544f500000000000000204010053746f70000000000000020500003735000000000000000002050100564f4c000000000000000300000030000000000000000000030001004f6e4f666600000000000301000042797061737300000000030101004279706173730000000003020000000000000000000000000302010000000000000000000000030300000000000000000000000003030100000000000000000000000304000000000000000000000000030401000000000000000000000003050000000000000000000000000305010000000000000000000000f7
SEND: f052006e6402040500f7
RECV: f052006e64010400000030000000000000000000040001004f6e4f6666000000000004010000427970617373000000000401010042797061737300000000040200000000000000000000000004020100000000000000000000000403000000000000000000000000040301000000000000000000000004040000000000000000000000000404010000000000000000000000040500000000000000000000000004050100000000000000000000000500000030000000000000000000050001004f6e4f666600000000000501000042797061737300000000050101004279706173730000000005020000000000000000000000000502010000000000000000000000050300000000000000000000000005030100000000000000000000000504000000000000000000000000050401000000000000000000000005050000000000000000000000000505010000000000000000000000f7
SEND: f052006e6402060700f7
RECV: f052006e64010600000030000000000000000000060001004f6e4f6666000000000006010000427970617373000000000601010042797061737300000000060200000000000000000000000006020100000000000000000000000603000000000000000000000000060301000000000000000000000006040000000000000000000000000604010000000000000000000000060500000000000000000000000006050100000000000000000000000700000030000000000000000000070001004f6e4f666600000000000701000042797061737300000000070101004279706173730000000007020000000000000000000000000702010000000000000000000000070300000000000000000000000007030100000000000000000000000704000000000000000000000000070401000000000000000000000007050000000000000000000000000705010000000000000000000000f7
SEND: f052006e6403000a010000000000f7
SEND: f052006e6403000a050000000000f7
SEND: f052006e6403000a010000000000f7
SEND: f052006e6403000a050100000000f7
RECV: f052006e64030002000100000000f7
SEND: f052006e6402020300f7
RECV: f052006e640102000000504c4159000000000000020001004f6e4f66660000000000020100004c502d4d4f4e4f000000020101004c502d4d4f4e4f000000020200004d414e55414c000000000202010054696d65000000000000020300004f4e000000000000000002030100556e646f0000000000000204000053544f500000000000000204010053746f70000000000000020500003735000000000000000002050100564f4c000000000000000300000030000000000000000000030001004f6e4f666600000000000301000042797061737300000000030101004279706173730000000003020000000000000000000000000302010000000000000000000000030300000000000000000000000003030100000000000000000000000304000000000000000000000000030401000000000000000000000003050000000000000000000000000305010000000000000000000000f7
SEND: f052006e6402040500f7
RECV: f052006e64010400000030000000000000000000040001004f6e4f6666000000000004010000427970617373000000000401010042797061737300000000040200000000000000000000000004020100000000000000000000000403000000000000000000000000040301000000000000000000000004040000000000000000000000000404010000000000000000000000040500000000000000000000000004050100000000000000000000000500000030000000000000000000050001004f6e4f666600000000000501000042797061737300000000050101004279706173730000000005020000000000000000000000000502010000000000000000000000050300000000000000000000000005030100000000000000000000000504000000000000000000000000050401000000000000000000000005050000000000000000000000000505010000000000000000000000f7
SEND: f052006e6402060700f7
RECV: f052006e64010600000030000000000000000000060001004f6e4f6666000000000006010000427970617373000000000601010042797061737300000000060200000000000000000000000006020100000000000000000000000603000000000000000000000000060301000000000000000000000006040000000000000000000000000604010000000000000000000000060500000000000000000000000006050100000000000000000000000700000030000000000000000000070001004f6e4f666600000000000701000042797061737300000000070101004279706173730000000007020000000000000000000000000702010000000000000000000000070300000000000000000000000007030100000000000000000000000704000000000000000000000000070401000000000000000000000007050000000000000000000000000705010000000000000000000000f7
SEND: f052006e6403000a010000000000f7
SEND: f052006e6403000a050000000000f7
SEND: f052006e6403000a010000000000f7
SEND: f052006e6403000a050100000000f7
RECV: f052006e64030002000100000000f7
SEND: f052006e6402020300f7
RECV: f052006e6401020000004f445542000000000000020001004f6e4f66660000000000020100004c502d4d4f4e4f000000020101004c502d4d4f4e4f000000020200004d414e55414c000000000202010054696d65000000000000020300004f4e000000000000000002030100556e646f0000000000000204000053544f500000000000000204010053746f70000000000000020500003735000000000000000002050100564f4c000000000000000300000030000000000000000000030001004f6e4f666600000000000301000042797061737300000000030101004279706173730000000003020000000000000000000000000302010000000000000000000000030300000000000000000000000003030100000000000000000000000304000000000000000000000000030401000000000000000000000003050000000000000000000000000305010000000000000000000000f7
SEND: f052006e6402040500f7
RECV: f052006e64010400000030000000000000000000040001004f6e4f6666000000000004010000427970617373000000000401010042797061737300000000040200000000000000000000000004020100000000000000000000000403000000000000000000000000040301000000000000000000000004040000000000000000000000000404010000000000000000000000040500000000000000000000000004050100000000000000000000000500000030000000000000000000050001004f6e4f666600000000000501000042797061737300000000050101004279706173730000000005020000000000000000000000000502010000000000000000000000050300000000000000000000000005030100000000000000000000000504000000000000000000000000050401000000000000000000000005050000000000000000000000000505010000000000000000000000f7
SEND: f052006e6402060700f7
RECV: f052006e64010600000030000000000000000000060001004f6e4f6666000000000006010000427970617373000000000601010042797061737300000000060200000000000000000000000006020100000000000000000000000603000000000000000000000000060301000000000000000000000006040000000000000000000000000604010000000000000000000000060500000000000000000000000006050100000000000000000000000700000030000000000000000000070001004f6e4f666600000000000701000042797061737300000000070101004279706173730000000007020000000000000000000000000702010000000000000000000000070300000000000000000000000007030100000000000000000000000704000000000000000000000000070401000000000000000000000007050000000000000000000000000705010000000000000000000000f7
SEND: f052006e6403000a010000000000f7
SEND: f052006e6403000a050000000000f7
SEND: f052006e6403000a010000000000f7
SEND: f052006e6403000a050100000000f7
RECV: f052006e64030002000100000000f7
SEND: f052006e6402020300f7
RECV: f052006e640102000000504c4159000000000000020001004f6e4f66660000000000020100004c502d4d4f4e4f000000020101004c502d4d4f4e4f000000020200004d414e55414c000000000202010054696d65000000000000020300004f4e000000000000000002030100556e646f0000000000000204000053544f500000000000000204010053746f70000000000000020500003735000000000000000002050100564f4c000000000000000300000030000000000000000000030001004f6e4f666600000000000301000042797061737300000000030101004279706173730000000003020000000000000000000000000302010000000000000000000000030300000000000000000000000003030100000000000000000000000304000000000000000000000000030401000000000000000000000003050000000000000000000000000305010000000000000000000000f7
SEND: f052006e6402040500f7
RECV: f052006e64010400000030000000000000000000040001004f6e4f6666000000000004010000427970617373000000000401010042797061737300000000040200000000000000000000000004020100000000000000000000000403000000000000000000000000040301000000000000000000000004040000000000000000000000000404010000000000000000000000040500000000000000000000000004050100000000000000000000000500000030000000000000000000050001004f6e4f666600000000000501000042797061737300000000050101004279706173730000000005020000000000000000000000000502010000000000000000000000050300000000000000000000000005030100000000000000000000000504000000000000000000000000050401000000000000000000000005050000000000000000000000000505010000000000000000000000f7
SEND: f052006e6402060700f7
RECV: f052006e64010600000030000000000000000000060001004f6e4f6666000000000006010000427970617373000000000601010042797061737300000000060200000000000000000000000006020100000000000000000000000603000000000000000000000000060301000000000000000000000006040000000000000000000000000604010000000000000000000000060500000000000000000000000006050100000000000000000000000700000030000000000000000000070001004f6e4f666600000000000701000042797061737300000000070101004279706173730000000007020000000000000000000000000702010000000000000000000000070300000000000000000000000007030100000000000000000000000704000000000000000000000000070401000000000000000000000007050000000000000000000000000705010000000000000000000000f7
SEND: f052006e6403000a010000000000f7
SEND: f052006e6403000a050000000000f7
SEND: f052006e6403000a010000000000f7
SEND: f052006e6403000a050100000000f7
RECV: f052006e64030002000100000000f7
SEND: f052006e6402020300f7
RECV: f052006e6401020000004f445542000000000000020001004f6e4f66660000000000020100004c502d4d4f4e4f000000020101004c502d4d4f4e4f000000020200004d414e55414c000000000202010054696d65000000000000020300004f4e000000000000000002030100556e646f0000000000000204000053544f500000000000000204010053746f70000000000000020500003735000000000000000002050100564f4c000000000000000300000030000000000000000000030001004f6e4f666600000000000301000042797061737300000000030101004279706173730000000003020000000000000000000000000302010000000000000000000000030300000000000000000000000003030100000000000000000000000304000000000000000000000000030401000000000000000000000003050000000000000000000000000305010000000000000000000000f7
SEND: f052006e6402040500f7
RECV: f052006e64010400000030000000000000000000040001004f6e4f6666000000000004010000427970617373000000000401010042797061737300000000040200000000000000000000000004020100000000000000000000000403000000000000000000000000040301000000000000000000000004040000000000000000000000000404010000000000000000000000040500000000000000000000000004050100000000000000000000000500000030000000000000000000050001004f6e4f666600000000000501000042797061737300000000050101004279706173730000000005020000000000000000000000000502010000000000000000000000050300000000000000000000000005030100000000000000000000000504000000000000000000000000050401000000000000000000000005050000000000000000000000000505010000000000000000000000f7
SEND: f052006e6402060700f7
RECV: f052006e64010600000030000000000000000000060001004f6e4f6666000000000006010000427970617373000000000601010042797061737300000000060200000000000000000000000006020100000000000000000000000603000000000000000000000000060301000000000000000000000006040000000000000000000000000604010000000000000000000000060500000000000000000000000006050100000000000000000000000700000030000000000000000000070001004f6e4f666600000000000701000042797061737300000000070101004279706173730000000007020000000000000000000000000702010000000000000000000000070300000000000000000000000007030100000000000000000000000704000000000000000000000000070401000000000000000000000007050000000000000000000000000705010000000000000000000000f7
SEND: f052006e6403000a010000000000f7
SEND: f052006e6403000a050000000000f7
SEND: f052006e6403000a010000000000f7
SEND: f052006e6403000a050200000000f7
RECV: f052006e64030002000100000000f7
SEND: f052006e6402020300f7
RECV: f052006e64010200000053544f50000000000000020001004f6e4f66660000000000020100004c502d4d4f4e4f000000020101004c502d4d4f4e4f000000020200004d414e55414c000000000202010054696d65000000000000020300004f4e000000000000000002030100556e646f0000000000000204000053544f500000000000000204010053746f70000000000000020500003735000000000000000002050100564f4c000000000000000300000030000000000000000000030001004f6e4f666600000000000301000042797061737300000000030101004279706173730000000003020000000000000000000000000302010000000000000000000000030300000000000000000000000003030100000000000000000000000304000000000000000000000000030401000000000000000000000003050000000000000000000000000305010000000000000000000000f7
SEND: f052006e6402040500f7
RECV: f052006e64010400000030000000000000000000040001004f6e4f6666000000000004010000427970617373000000000401010042797061737300000000040200000000000000000000000004020100000000000000000000000403000000000000000000000000040301000000000000000000000004040000000000000000000000000404010000000000000000000000040500000000000000000000000004050100000000000000000000000500000030000000000000000000050001004f6e4f666600000000000501000042797061737300000000050101004279706173730000000005020000000000000000000000000502010000000000000000000000050300000000000000000000000005030100000000000000000000000504000000000000000000000000050401000000000000000000000005050000000000000000000000000505010000000000000000000000f7
SEND: f052006e6402060700f7
RECV: f052006e64010600000030000000000000000000060001004f6e4f6666000000000006010000427970617373000000000601010042797061737300000000060200000000000000000000000006020100000000000000000000000603000000000000000000000000060301000000000000000000000006040000000000000000000000000604010000000000000000000000060500000000000000000000000006050100000000000000000000000700000030000000000000000000070001004f6e4f666600000000000701000042797061737300000000070101004279706173730000000007020000000000000000000000000702010000000000000000000000070300000000000000000000000007030100000000000000000000000704000000000000000000000000070401000000000000000000000007050000000000000000000000000705010000000000000000000000f7
SEND: f052006e6403000a010000000000f7
SEND: f052006e6403000a050000000000f7

So there seems to be a set of commands required.
But so far I not managed to get resend working -that is it will start a record, then cancel itself.
If you are in recording mode, switching the tuner on/off also stops it. But not quite what I am looking for

BUT great news that Zoom Guitar Lab does seems to allow the G5n to be modified with Zoom ZT2 and will display the FX - it certainly never used to reliably work this way! Maybe I was not sending the full 29/32 bit ID?

@shooking
Copy link
Owner Author

ok so I tried to add on "sentences" we know something about.

here FX3 is the looper. FX1 is the rhythm

SEND: FX 11 P0 v0: 		f052006e6403000a010000000000f7
SEND: FX 11 P4 v1: 		f052006e6403000a050100000000f7
RECV: FX 3 P -1 v1: 	f052006e64030002000100000000f7

SEND: ASCII FX 2 to 3: 	f052006e6402020300f7
RECV: f052006e64010200000052454300000000000000020001004f6e4f66660000000000020100004c502d4d4f4e4f000000020101004c502d4d4f4e4f000000020200004d414e55414c000000000202010054696d65000000000000020300004f4e000000000000000002030100556e646f0000000000000204000053544f500000000000000204010053746f70000000000000020500003735000000000000000002050100564f4c000000000000000300000030000000000000000000030001004f6e4f666600000000000301000042797061737300000000030101004279706173730000000003020000000000000000000000000302010000000000000000000000030300000000000000000000000003030100000000000000000000000304000000000000000000000000030401000000000000000000000003050000000000000000000000000305010000000000000000000000f7

SEND: ASCII FX 4 to 5: 	f052006e6402040500f7
RECV: f052006e64010400000030000000000000000000040001004f6e4f6666000000000004010000427970617373000000000401010042797061737300000000040200000000000000000000000004020100000000000000000000000403000000000000000000000000040301000000000000000000000004040000000000000000000000000404010000000000000000000000040500000000000000000000000004050100000000000000000000000500000030000000000000000000050001004f6e4f666600000000000501000042797061737300000000050101004279706173730000000005020000000000000000000000000502010000000000000000000000050300000000000000000000000005030100000000000000000000000504000000000000000000000000050401000000000000000000000005050000000000000000000000000505010000000000000000000000f7

SEND: ASCII FX 6 to 7: 	f052006e6402060700f7
RECV: f052006e64010600000030000000000000000000060001004f6e4f6666000000000006010000427970617373000000000601010042797061737300000000060200000000000000000000000006020100000000000000000000000603000000000000000000000000060301000000000000000000000006040000000000000000000000000604010000000000000000000000060500000000000000000000000006050100000000000000000000000700000030000000000000000000070001004f6e4f666600000000000701000042797061737300000000070101004279706173730000000007020000000000000000000000000702010000000000000000000000070300000000000000000000000007030100000000000000000000000704000000000000000000000000070401000000000000000000000007050000000000000000000000000705010000000000000000000000f7

SEND: FX 11 P0 v0: 		f052006e6403000a010000000000f7
SEND: FX 11 P4 v0: 		f052006e6403000a050000000000f7

SEND: FX 11 P0 v0: 		f052006e6403000a010000000000f7
SEND: FX 11 P4 v1: 		f052006e6403000a050100000000f7
RECV: FX 3 P -1 v1: 	f052006e64030002000100000000f7

SEND: ASCII FX 2 to 3: 	f052006e6402020300f7 
RECV: f052006e640102000000504c4159000000000000020001004f6e4f66660000000000020100004c502d4d4f4e4f000000020101004c502d4d4f4e4f000000020200004d414e55414c000000000202010054696d65000000000000020300004f4e000000000000000002030100556e646f0000000000000204000053544f500000000000000204010053746f70000000000000020500003735000000000000000002050100564f4c000000000000000300000030000000000000000000030001004f6e4f666600000000000301000042797061737300000000030101004279706173730000000003020000000000000000000000000302010000000000000000000000030300000000000000000000000003030100000000000000000000000304000000000000000000000000030401000000000000000000000003050000000000000000000000000305010000000000000000000000f7

SEND: ASCII FX 4 to 5: 	f052006e6402040500f7
RECV: f052006e64010400000030000000000000000000040001004f6e4f6666000000000004010000427970617373000000000401010042797061737300000000040200000000000000000000000004020100000000000000000000000403000000000000000000000000040301000000000000000000000004040000000000000000000000000404010000000000000000000000040500000000000000000000000004050100000000000000000000000500000030000000000000000000050001004f6e4f666600000000000501000042797061737300000000050101004279706173730000000005020000000000000000000000000502010000000000000000000000050300000000000000000000000005030100000000000000000000000504000000000000000000000000050401000000000000000000000005050000000000000000000000000505010000000000000000000000f7

SEND: ASCII FX 6 to 7: 	f052006e6402060700f7
RECV: f052006e64010600000030000000000000000000060001004f6e4f6666000000000006010000427970617373000000000601010042797061737300000000060200000000000000000000000006020100000000000000000000000603000000000000000000000000060301000000000000000000000006040000000000000000000000000604010000000000000000000000060500000000000000000000000006050100000000000000000000000700000030000000000000000000070001004f6e4f666600000000000701000042797061737300000000070101004279706173730000000007020000000000000000000000000702010000000000000000000000070300000000000000000000000007030100000000000000000000000704000000000000000000000000070401000000000000000000000007050000000000000000000000000705010000000000000000000000f7

SEND: FX 11 P0 v0: 		f052006e6403000a010000000000f7
SEND: FX 11 P4 v0: 		f052006e6403000a050000000000f7
SEND: FX 11 P0 v0: 		f052006e6403000a010000000000f7
SEND: FX 11 P4 v1: 		f052006e6403000a050100000000f7
RECV: FX 3 P -1 v1: 	f052006e64030002000100000000f7

SEND: ASCII FX 2 to 3: 	f052006e6402020300f7
RECV: f052006e6401020000004f445542000000000000020001004f6e4f66660000000000020100004c502d4d4f4e4f000000020101004c502d4d4f4e4f000000020200004d414e55414c000000000202010054696d65000000000000020300004f4e000000000000000002030100556e646f0000000000000204000053544f500000000000000204010053746f70000000000000020500003735000000000000000002050100564f4c000000000000000300000030000000000000000000030001004f6e4f666600000000000301000042797061737300000000030101004279706173730000000003020000000000000000000000000302010000000000000000000000030300000000000000000000000003030100000000000000000000000304000000000000000000000000030401000000000000000000000003050000000000000000000000000305010000000000000000000000f7

SEND: ASCII FX 4 to 5: 	f052006e6402040500f7
RECV: f052006e64010400000030000000000000000000040001004f6e4f6666000000000004010000427970617373000000000401010042797061737300000000040200000000000000000000000004020100000000000000000000000403000000000000000000000000040301000000000000000000000004040000000000000000000000000404010000000000000000000000040500000000000000000000000004050100000000000000000000000500000030000000000000000000050001004f6e4f666600000000000501000042797061737300000000050101004279706173730000000005020000000000000000000000000502010000000000000000000000050300000000000000000000000005030100000000000000000000000504000000000000000000000000050401000000000000000000000005050000000000000000000000000505010000000000000000000000f7

SEND: ASCII FX 6 to 7: 	f052006e6402060700f7
RECV: f052006e64010600000030000000000000000000060001004f6e4f6666000000000006010000427970617373000000000601010042797061737300000000060200000000000000000000000006020100000000000000000000000603000000000000000000000000060301000000000000000000000006040000000000000000000000000604010000000000000000000000060500000000000000000000000006050100000000000000000000000700000030000000000000000000070001004f6e4f666600000000000701000042797061737300000000070101004279706173730000000007020000000000000000000000000702010000000000000000000000070300000000000000000000000007030100000000000000000000000704000000000000000000000000070401000000000000000000000007050000000000000000000000000705010000000000000000000000f7

SEND: FX 11 P0: 		f052006e6403000a010000000000f7
SEND: FX 11 P4 v0: 		f052006e6403000a050000000000f7
SEND: FX 11 P0 v0: 		f052006e6403000a010000000000f7
SEND: FX 11 P4 v1: 		f052006e6403000a050100000000f7
RECV: FX 3 P -1 v1: 	f052006e64030002000100000000f7

SEND: ASCII FX 2 to 3: 	f052006e6402020300f7
RECV: f052006e640102000000504c4159000000000000020001004f6e4f66660000000000020100004c502d4d4f4e4f000000020101004c502d4d4f4e4f000000020200004d414e55414c000000000202010054696d65000000000000020300004f4e000000000000000002030100556e646f0000000000000204000053544f500000000000000204010053746f70000000000000020500003735000000000000000002050100564f4c000000000000000300000030000000000000000000030001004f6e4f666600000000000301000042797061737300000000030101004279706173730000000003020000000000000000000000000302010000000000000000000000030300000000000000000000000003030100000000000000000000000304000000000000000000000000030401000000000000000000000003050000000000000000000000000305010000000000000000000000f7

SEND: ASCII FX 4 to 5: f052006e6402040500f7
RECV: f052006e64010400000030000000000000000000040001004f6e4f6666000000000004010000427970617373000000000401010042797061737300000000040200000000000000000000000004020100000000000000000000000403000000000000000000000000040301000000000000000000000004040000000000000000000000000404010000000000000000000000040500000000000000000000000004050100000000000000000000000500000030000000000000000000050001004f6e4f666600000000000501000042797061737300000000050101004279706173730000000005020000000000000000000000000502010000000000000000000000050300000000000000000000000005030100000000000000000000000504000000000000000000000000050401000000000000000000000005050000000000000000000000000505010000000000000000000000f7

SEND: ASCII FX 6 to 7: f052006e6402060700f7
RECV: f052006e64010600000030000000000000000000060001004f6e4f6666000000000006010000427970617373000000000601010042797061737300000000060200000000000000000000000006020100000000000000000000000603000000000000000000000000060301000000000000000000000006040000000000000000000000000604010000000000000000000000060500000000000000000000000006050100000000000000000000000700000030000000000000000000070001004f6e4f666600000000000701000042797061737300000000070101004279706173730000000007020000000000000000000000000702010000000000000000000000070300000000000000000000000007030100000000000000000000000704000000000000000000000000070401000000000000000000000007050000000000000000000000000705010000000000000000000000f7

SEND: FX 11 P0 v0: 		f052006e6403000a010000000000f7
SEND: FX 11 P4 v0: 		f052006e6403000a050000000000f7
SEND: FX 11 P0 v0: 		f052006e6403000a010000000000f7
SEND: FX 11 P4 v1: 		f052006e6403000a050100000000f7
RECV: FX 3 P -1 v1: 	f052006e64030002000100000000f7

SEND: ASCII FX 2 to 3: f052006e6402020300f7
RECV: f052006e6401020000004f445542000000000000020001004f6e4f66660000000000020100004c502d4d4f4e4f000000020101004c502d4d4f4e4f000000020200004d414e55414c000000000202010054696d65000000000000020300004f4e000000000000000002030100556e646f0000000000000204000053544f500000000000000204010053746f70000000000000020500003735000000000000000002050100564f4c000000000000000300000030000000000000000000030001004f6e4f666600000000000301000042797061737300000000030101004279706173730000000003020000000000000000000000000302010000000000000000000000030300000000000000000000000003030100000000000000000000000304000000000000000000000000030401000000000000000000000003050000000000000000000000000305010000000000000000000000f7

SEND: ASCII FX 4 to 5: f052006e6402040500f7
RECV: f052006e64010400000030000000000000000000040001004f6e4f6666000000000004010000427970617373000000000401010042797061737300000000040200000000000000000000000004020100000000000000000000000403000000000000000000000000040301000000000000000000000004040000000000000000000000000404010000000000000000000000040500000000000000000000000004050100000000000000000000000500000030000000000000000000050001004f6e4f666600000000000501000042797061737300000000050101004279706173730000000005020000000000000000000000000502010000000000000000000000050300000000000000000000000005030100000000000000000000000504000000000000000000000000050401000000000000000000000005050000000000000000000000000505010000000000000000000000f7

SEND: ASCII FX 6 to 7: f052006e6402060700f7
RECV: f052006e64010600000030000000000000000000060001004f6e4f6666000000000006010000427970617373000000000601010042797061737300000000060200000000000000000000000006020100000000000000000000000603000000000000000000000000060301000000000000000000000006040000000000000000000000000604010000000000000000000000060500000000000000000000000006050100000000000000000000000700000030000000000000000000070001004f6e4f666600000000000701000042797061737300000000070101004279706173730000000007020000000000000000000000000702010000000000000000000000070300000000000000000000000007030100000000000000000000000704000000000000000000000000070401000000000000000000000007050000000000000000000000000705010000000000000000000000f7

SEND: FX 11 P0 v0: 		f052006e6403000a010000000000f7
SEND: FX 11 P4 v0: 		f052006e6403000a050000000000f7
SEND: FX 11 P0 v0: 		f052006e6403000a010000000000f7
SEND: FX 11 P4 v2: 		f052006e6403000a050200000000f7
RECV: FX 3 P -1 v1: 	f052006e64030002000100000000f7
SEND: ASCII FX 2 to 3: f052006e6402020300f7
RECV: f052006e64010200000053544f50000000000000020001004f6e4f66660000000000020100004c502d4d4f4e4f000000020101004c502d4d4f4e4f000000020200004d414e55414c000000000202010054696d65000000000000020300004f4e000000000000000002030100556e646f0000000000000204000053544f500000000000000204010053746f70000000000000020500003735000000000000000002050100564f4c000000000000000300000030000000000000000000030001004f6e4f666600000000000301000042797061737300000000030101004279706173730000000003020000000000000000000000000302010000000000000000000000030300000000000000000000000003030100000000000000000000000304000000000000000000000000030401000000000000000000000003050000000000000000000000000305010000000000000000000000f7

SEND: ASCII FX 4 to 5: f052006e6402040500f7
RECV: f052006e64010400000030000000000000000000040001004f6e4f6666000000000004010000427970617373000000000401010042797061737300000000040200000000000000000000000004020100000000000000000000000403000000000000000000000000040301000000000000000000000004040000000000000000000000000404010000000000000000000000040500000000000000000000000004050100000000000000000000000500000030000000000000000000050001004f6e4f666600000000000501000042797061737300000000050101004279706173730000000005020000000000000000000000000502010000000000000000000000050300000000000000000000000005030100000000000000000000000504000000000000000000000000050401000000000000000000000005050000000000000000000000000505010000000000000000000000f7

SEND: ASCII FX 6 to 7: f052006e6402060700f7
RECV: f052006e64010600000030000000000000000000060001004f6e4f6666000000000006010000427970617373000000000601010042797061737300000000060200000000000000000000000006020100000000000000000000000603000000000000000000000000060301000000000000000000000006040000000000000000000000000604010000000000000000000000060500000000000000000000000006050100000000000000000000000700000030000000000000000000070001004f6e4f666600000000000701000042797061737300000000070101004279706173730000000007020000000000000000000000000702010000000000000000000000070300000000000000000000000007030100000000000000000000000704000000000000000000000000070401000000000000000000000007050000000000000000000000000705010000000000000000000000f7

SEND: FX 11 P0 v0: 		f052006e6403000a010000000000f7
SEND: FX 11 P4 v0: 		f052006e6403000a050000000000f7

so FX 11 is the slot 11 (recall 0b -> 0a in the sysex)
P4 is parameter 4 (recall 4 -> 5 in the sysex - we have the odd P=-1 here!!)
v2 means value was 2.
Zoom pedal likes to receive back the screen with ascii values.
And it seems like the request for FX11 P4 is returning the FX that the looper is on.

Going to check last observation.
Moved the Looper.

@shooking
Copy link
Owner Author

Ok I moved the looper to slot 5.
It returns RECV: f052006e64030004000100000000f7
IE Slot 5, P -1. v 1.
Time to try another day.

@shooking
Copy link
Owner Author

OK another day, another dollar .. success for Rhythm at least!

Turn on Editor Mode
Send two sysex messages, you should receive some back. Then send message to stop/start the rhythm.

SEND: f052006e6403000a010300000000f7
SEND: f052006e6403000a050100000000f7
RECV: f052006e6403010a010300000000f7 <-- so seems to ack
RECV: f052006e64030105000100000000f7 <-- pretty sure this is related to which FX is rhythm.
In my case slot 6 on the display, which we know is 5 in sysex.

SEND: f052006e6403000a050100000000f7
RECV: f052006e64030105000100000000f7

IE Prime system
f052006e6403000a010300000000f7

On/off
f052006e6403000a050100000000f7

OK that's end of lunch break - back later with more checking!!!

@shooking
Copy link
Owner Author

works. Checking in to G5n folder.

@mungewell
Copy link
Collaborator

RECV: f052006e64030105000100000000f7 <-- pretty sure this is related to which FX is rhythm.
In my case slot 6 on the display, which we know is 5 in sysex.

That's awesome investigation. Just to clarify, is this the 'stock' Rhythm (already in G5n FW), or did you modify/upload the Rhythm_100.zd2 from the GCE-3?

Also note that when we're talking about looper, it can be pre or post FX chain.

@mungewell
Copy link
Collaborator

Also...

$ amidi -p hw:1,0,0 -S 'f0 52 00 6e 64 03 00 0a  02 3d 00 00 00 00 f7'
                                                    ^^ ^^ Tempo

@shooking
Copy link
Owner Author

RECV: f052006e64030105000100000000f7 <-- pretty sure this is related to which FX is rhythm.
In my case slot 6 on the display, which we know is 5 in sysex.

That's awesome investigation. Just to clarify, is this the 'stock' Rhythm (already in G5n FW), or did you modify/upload the Rhythm_100.zd2 from the GCE-3?

Also note that when we're talking about looper, it can be pre or post FX chain.

So I am still working on the looper -but the rhythm came from observation of G5n with GuitarLab (which now supports your injections) and Tonelib. I made a video here https://youtu.be/YI09xRolcIY

I use the special rhythm 100 zd2 to get the FXID/GID and BMP. It doesnt help with parameters.
So I will hard code them simply because the stock looper hasnt changed.

I will try to work on the looper later in the week - I am close.
Did u see I found some more sysex sentences and likely meaning. Including on G3n/G5n whether the ext pedal is on. Not sure how to set it yet - but we can read its state now.

There is one and only one tempo by the looks of it. So I use your set tempo to set it -the video shows it, the patterns and the volume working.

I am wondering if we also found "how many FX" and if hence the 7 for B1X is inc looper and rhythm. I wonder what slot they live at, if at all.

@mungewell
Copy link
Collaborator

I tried to remote control the Rhythm on the GCE-3 (as G5n) with midi but was unable. Did you have success with these command on the GCE-3? GuitarLab could control it.

I also noted that the 'RHYMTH_100.ZD2' effect does not seem to be loaded to the pedal...

@mungewell
Copy link
Collaborator

simon@thevoid:~/zoom-zt2-sdw-github$ amidi -p hw:1,0,0 -S "F0 52 00 6E 64 03 00 0A 01 03 00 00 00 00 F7"  
simon@thevoid:~/zoom-zt2-sdw-github$ amidi -p hw:1,0,0 -S "F0 52 00 6E 64 03 00 0A 00 01 00 00 00 00 F7"
simon@thevoid:~/zoom-zt2-sdw-github$ 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
simon@thevoid:~/zoom-zt2-sdw-github$ python3 decode_screens.py temp.bin  | head      
---
Effect: Rhythm (Off)
PATTERN : GUIDE
BPM : 0
VOL : 80
---
Effect: Bypass (Off)

Don't know why BMP shows as zero, GL has real value.

@mungewell
Copy link
Collaborator

mungewell commented May 27, 2022

There is a dummy parameter, and the volume is actually 4th dial (parameter 0x05). 2nd and 3rd dials do not give value change.

simon@thevoid:~/zoom-zt2-sdw-github$ hexdump -C temp.bin | head -n 20
00000000  f0 52 00 6e 64 01 00 00  00 00 30 00 00 00 00 00  |.R.nd.....0.....|
00000010  00 00 00 00 00 00 01 00  4f 6e 4f 66 66 00 00 00  |........OnOff...|
00000020  00 00 00 01 00 00 52 68  79 74 68 6d 00 00 00 00  |......Rhythm....|
00000030  00 01 01 00 52 68 79 74  68 6d 00 00 00 00 00 02  |....Rhythm......|
00000040  00 00 38 42 65 61 74 73  33 00 00 00 00 02 01 00  |..8Beats3.......|
00000050  50 41 54 54 45 52 4e 00  00 00 00 03 00 00 30 00  |PATTERN.......0.|
00000060  00 00 00 00 00 00 00 00  00 03 01 00 44 75 6d 6d  |............Dumm|
00000070  79 00 00 00 00 00 00 04  00 00 30 00 00 00 00 00  |y.........0.....|
00000080  00 00 00 00 00 04 01 00  42 50 4d 00 00 00 00 00  |........BPM.....|
00000090  00 00 00 05 00 00 31 30  30 00 00 00 00 00 00 00  |......100.......|
000000a0  00 05 01 00 56 4f 4c 00  00 00 00 00 00 00 01 00  |....VOL.........|
000000b0  00 00 30 00 00 00 00 00  00 00 00 00 01 00 01 00  |..0.............|
000000c0  4f 6e 4f 66 66 00 00 00  00 00 01 01 00 00 42 79  |OnOff.........By|
simon@thevoid:~/zoom-zt2-sdw-github$ amidi -p hw:1,0,0 -S 'f0 52 00 6e 64 03 00 00 05 3d 17 00 00 00 f7'
simon@thevoid:~/zoom-zt2-sdw-github$ 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
simon@thevoid:~/zoom-zt2-sdw-github$ python3 decode_screens.py temp.bin  | head 
---
Effect: Rhythm (Off)
PATTERN : 8Beats3
BPM : 0
VOL : 100    <---- now changed
---

[edit]: thinking back this is actually how GL shows it on the screen. There is a gap and then BPM and Volume are shown on the right dials. I'll grab a screen shot later.

@shooking
Copy link
Owner Author

shooking commented May 27, 2022

I reread what I had written. Invariably at the time it makes sense to me - and my over elaboration is my "hint" codes so later I can reload the context. I don't do crisp - but at the same time it means I can eventually work out what I meant :-)

So here I said:

00000359

And now we have LP-ST2 in slot 1 & 2.For these double slots P5 - 8 control FX params that are 1 - 4 in the single slot version.

For example

pi@raspberrypi:~/Software/ZoomPedalG5n $ ./FXM_PN.sh 1 5 10 10 0a 00 F0 52 00 6E 64 03 00 00 06 0a 00 00 00 00 F7
P5's set to 10 = which is a time of 10.
0 => manual
1 => crotchet x 1 etc etc

FX 1 6 0 turns UNDO off
1 6 1 turns UNDO on
P7 modifies the stop
P8 modifies the volume.

So this shows we knew the Parameters that control stuff.
I also see now that ZD2 is ZDL Version 2.00 (hadn't specifically noticed that before but makes sense).

Yes I believe I was able to control the rhythm on/off, pattern, bpm on G5n and GCE-3 emulating G5n or G3n. Not able to do this on a G1XFour type - I still think they might be FX8 and 9 (recall a G1XFour can support up to 7 FX in some circumstances but in 5 slots).

Back to the ZD2s. You helped me to find they were essentially dummy right? And I sent you a PM with alternative sources right? Ping me direct if you lost that link - not sharing it publicly.

For the rhythm the sequence to control is is tied to the slot it is in - makes sense. I don't think I checked in the final version - as ever the slots -> FXn needs to be derived based on ( fx[i].slotwidth, ...). In the above sysex you can see it changing depending on where the rhythm is located.

I will get some time to play early June. Then I can write it up on the Wiki. The looper is the one that hampers me. I can see I sent FS buttons too to stop the thing. But I also recall replaying Tonelib commands to a real G5n wasn't working. And Tonib doesn't want to work with GCE-3 ... I have tried writing to them to show how it could be supported. No interest from their side.

@shooking
Copy link
Owner Author

shooking commented Jun 4, 2022

hi @mungewell
So today I got the G5n out and I rechecked some of the filters I use to tshark. Maybe I was filtering out some important stuff.
So I backed the filter off - and it seems if I send the following to a G5n I can start the looper in slot 1 (Stereo looper).
I strongly suspect this will work on GCE-3 too. Alas I have to get ready for a gig tomorrow so I cannot investigate further.

-- turn on editor mode
--prime
 f052006e6403000a010000000000f7
--start
 f052006e6403000a030100000000f7
-- send back F0 52 00 6E 64 03 00 00 00 01 00 00 00 00 F7 

Sending F0 52 00 6E 64 03 00 00 00 01 00 00 00 00 F7 again turns into overdub mode.
And again into play mode.
Stop should be 2nd footswitch.
Indeed - sending f052006e6403000a040100000000f7 displays clear then another screen then back to the LP-ST2.

@mungewell
Copy link
Collaborator

mungewell commented Jun 6, 2022

I can confirm that the following works with GCE3, but only with the 2screen loopers.
looper_it.sh.txt

It's status is NOT reflected in the decoded screens, on GuitarLab the screen was 'REC', 'PLAY', etc in big letters.

$ bash looper_it.sh 
Go!
Switch to editor mode

7 bytes read
00000000  f0 52 00 6e 00 00 f7                              |.R.n...|
00000007
Select preset 200

8 bytes read
00000000  b0 00 00 b0 20 31 c0 03                           |.... 1..|
00000008
Grab screen and decode

1015 bytes read
---
Effect: LP-ST2 (Off)
Dummy : 0
Dummy : 0
Dummy : 0
Dummy : 0
---
Effect: LP-ST2 (Off)
Time : MANUAL
Undo : ON
Stop : STOP
VOL : 80
---
Effect: Bypass (Off)
 : 
Prime Looper

0 bytes read
Looper Rec

15 bytes read
00000000  f0 52 00 6e 64 03 00 00  00 01 00 00 00 00 f7     |.R.nd..........|
0000000f
Grab screen and decode

1015 bytes read
---
Effect: LP-ST2 (Off)
Dummy : 0
Dummy : 0
Dummy : 0
Dummy : 0
---
Effect: LP-ST2 (Off)
Time : MANUAL
Undo : ON
Stop : STOP
VOL : 80
---
Effect: Bypass (Off)
 : 
Looper Play

15 bytes read
00000000  f0 52 00 6e 64 03 00 00  00 01 00 00 00 00 f7     |.R.nd..........|
0000000f
Grab screen and decode

1015 bytes read
---
Effect: LP-ST2 (Off)
Dummy : 0
Dummy : 0
Dummy : 0
Dummy : 0
---
Effect: LP-ST2 (Off)
Time : MANUAL
Undo : ON
Stop : STOP
VOL : 80
---
Effect: Bypass (Off)
 : 
Looper Overdub

30 bytes read
00000000  f0 52 00 6e 64 03 00 00  00 01 00 00 00 00 f7 f0  |.R.nd...........|
00000010  52 00 6e 64 03 00 00 00  01 00 00 00 00 f7        |R.nd..........|
0000001e
Grab screen and decode

1015 bytes read
---
Effect: LP-ST2 (Off)
Dummy : 0
Dummy : 0
Dummy : 0
Dummy : 0
---
Effect: LP-ST2 (Off)
Time : MANUAL
Undo : ON
Stop : STOP
VOL : 80
---
Effect: Bypass (Off)
 : 
Looper Play

15 bytes read
00000000  f0 52 00 6e 64 03 00 00  00 01 00 00 00 00 f7     |.R.nd..........|
0000000f
Grab screen and decode

1015 bytes read
---
Effect: LP-ST2 (Off)
Dummy : 0
Dummy : 0
Dummy : 0
Dummy : 0
---
Effect: LP-ST2 (Off)
Time : MANUAL
Undo : ON
Stop : STOP
VOL : 80
---
Effect: Bypass (Off)
 : 
Looper Stop and Clear - FootSwitch 2

30 bytes read
00000000  f0 52 00 6e 64 03 00 00  00 01 00 00 00 00 f7 f0  |.R.nd...........|
00000010  52 00 6e 64 03 00 00 00  01 00 00 00 00 f7        |R.nd..........|
0000001e
Done.
Grab screen and decode

1015 bytes read
---
Effect: LP-ST2 (Off)
Dummy : 0
Dummy : 0
Dummy : 0
Dummy : 0
---
Effect: LP-ST2 (Off)
Time : MANUAL
Undo : ON
Stop : STOP
VOL : 80
---
Effect: Bypass (Off)
 : 

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants