GT-1B - Diving into MIDI

Started by pkort, January 24, 2018, 09:40:32 AM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

pkort

Hey everyone,

I bought this kinda pedalboard to play live but I was amazed that they brought all that stuff in that tiny box (plus it's the last all-in-one board for bass).
Reading the manual, I saw 'tape delay' and 'spring reverb' so I had in mind that I could recreate some RE201 Space delay or so and playing live with knobs to do that Space Delay sound.

Unfortunately, knobs are not that responsive!

Then playing with BTS, it seems that USB has MIDI option but recording MIDI thru DAW while twisting knobs aren't sending MIDI stuff.
So using a MIDI controller would do the job, maybe...

While googling for that option and finding that forum, I read two topics that help me a lot:
* Boss MS-3 - MIDI over USB Sysex Reverse Engineering
* Arduino - Gt100 MIDI controler

to unlock the GT-1B and avoid the nasty "BULK DATA RECEIVING..." screen while sending datas that work!

So I found the Editor mode for it: F0 41 00 00 00 00 3E 12 7F 00 00 01 01 7F F7
And now, it was way more easy to find some settings capturing MIDI datas while looking to the GT-100 MIDI implementation (Model ID ends with '3E' here).

Next step was to add things in a graphical tool to edit and twist settings (like BTS would do but without the need for Adobe Air and it's way too big for a 13" screen).
Ctrlr seems a good tool for that, plus it could be used as a VST (automation!!) and that way has MIDI learn out of the box.
Adding a MIDI controller and setting real knobs to control what I set before is very handy.

At the end, it works, pretty fine but setting a nice user interface is another story  :-\ (any help on that stuff is really appreciate)

admin

Question?

What is your computer platform  for the GT-1B editor? ( Arduino with touch display?


Will you share the source code?


pkort

#2
I use Win7 for BTS (and capturing SysEx) but using Ctrlr, it works on both Mac and PC (Linux?).
So it is standalone and/or works as plug-in (VST and AU).
Both Ctrlr and panels are open(-source)  ;D

What really amazed me, is the pedalboard has full MIDI implementation, but not documented (but close to GT100).

pkort

So, further testing: Ctrlr and GT-1(B) works with Linux as well :)
I just launched an Ubuntu live-CD and Ctrlr and plug in the Boss device.

I was also testing using Android and Midi Commander see the MIDI interface properly but I wasn't able to find a decent MIDI sequencer to record and play SysEx properly...

The second test was to know how lazy was Boss' guys about MIDI implementation on that little box regarding the GT100 MIDI implementation... and they were!!

So, without capturing, copying, testing... as I did before, I directly wrote SysEx looking GT100 document to try different things on the Boss effect.
Changing name (it works), OD and PreA solo switch without any other configuration (it works, with level settings), Input level (it works), Reverb direct level (it doesn't work but I tried :D ), changing effect order (it needs two messages and it needs further work...)

I didn't see solo switch and level for OD and PreA alone in BTS by the way ???

I also look about changing the selected patch using MIDI and it also works.

As far as I'm searching for things that work or not, here is a recap (for a GT-1B... the GT-1 would have a Model ID slighter different (GT-1B is 00 3E)...)


Enter Editor mode     F0 41 00 00 00 00 3E 12 7F 00 00 01 01 7F F7

VV: value on 7 bits
MS/LS: value on 14 bits (MSB and LSB)
CS: standard Roland checksum

Table 'MIDI'
-------------------------------------------------------------------------------------------------------------------------
Parameter             Sysex                                                Description
-------------------------------------------------------------------------------------------------------------------------
PATCH NAME1           F0 41 00 00 00 00 3E 12 60 00 00 00 VV CS F7         20 - 7D * Refer to Table 'NAME'
PATCH NAME2           F0 41 00 00 00 00 3E 12 60 00 00 01 VV CS F7         20 - 7D * Refer to Table 'NAME'
PATCH NAME3           F0 41 00 00 00 00 3E 12 60 00 00 02 VV CS F7         20 - 7D * Refer to Table 'NAME'
PATCH NAME4           F0 41 00 00 00 00 3E 12 60 00 00 03 VV CS F7         20 - 7D * Refer to Table 'NAME'
PATCH NAME5           F0 41 00 00 00 00 3E 12 60 00 00 04 VV CS F7         20 - 7D * Refer to Table 'NAME'
PATCH NAME6           F0 41 00 00 00 00 3E 12 60 00 00 05 VV CS F7         20 - 7D * Refer to Table 'NAME'
PATCH NAME7           F0 41 00 00 00 00 3E 12 60 00 00 06 VV CS F7         20 - 7D * Refer to Table 'NAME'
PATCH NAME8           F0 41 00 00 00 00 3E 12 60 00 00 07 VV CS F7         20 - 7D * Refer to Table 'NAME'
PATCH NAME9           F0 41 00 00 00 00 3E 12 60 00 00 08 VV CS F7         20 - 7D * Refer to Table 'NAME'
PATCH NAME10          F0 41 00 00 00 00 3E 12 60 00 00 09 VV CS F7         20 - 7D * Refer to Table 'NAME'
PATCH NAME11          F0 41 00 00 00 00 3E 12 60 00 00 0A VV CS F7         20 - 7D * Refer to Table 'NAME'
PATCH NAME12          F0 41 00 00 00 00 3E 12 60 00 00 0B VV CS F7         20 - 7D * Refer to Table 'NAME'
PATCH NAME13          F0 41 00 00 00 00 3E 12 60 00 00 0C VV CS F7         20 - 7D * Refer to Table 'NAME'
PATCH NAME14          F0 41 00 00 00 00 3E 12 60 00 00 0D VV CS F7         20 - 7D * Refer to Table 'NAME'
PATCH NAME15          F0 41 00 00 00 00 3E 12 60 00 00 0E VV CS F7         20 - 7D * Refer to Table 'NAME'
PATCH NAME16          F0 41 00 00 00 00 3E 12 60 00 00 0F VV CS F7         20 - 7D * Refer to Table 'NAME'

OD/DS: SOLO SW        F0 41 00 00 00 00 3E 12 60 00 00 35 VV CS F7         00 : OFF / 01 : ON
OD/DS: SOLO LEVEL     F0 41 00 00 00 00 3E 12 60 00 00 36 VV CS F7         0 - 100

PREAMP: SOLO SW       F0 41 00 00 00 00 3E 12 60 00 00 5B VV CS F7         00 : OFF / 01 : ON
PREAMP: SOLO LEVEL    F0 41 00 00 00 00 3E 12 60 00 00 5C VV CS F7         0 - 100

INPUT LEVEL           F0 41 00 00 00 00 3E 12 00 00 00 71 VV CS F7         0 - 100 : 000 - 200

DELAY: ON/OFF         F0 41 00 00 00 00 3E 12 60 00 05 60 VV CS F7         00 : OFF / 01 : ON
DELAY: DELAY TIME     F0 41 00 00 00 00 3E 12 60 00 05 62 MS LS CS F7      00 01 - 0F 50 : 1 - 2000ms
                                                                           0F 51 - 0F 5D : * Refer to Table 'BPM NOTE'
DELAY: F.BACK         F0 41 00 00 00 00 3E 12 60 00 05 64 VV CS F7         0 - 100
DELAY: HIGH CUT       F0 41 00 00 00 00 3E 12 60 00 05 65 VV CS F7         * Refer to Table 'HIGH FREQ'
DELAY: EFFECT LEVEL   F0 41 00 00 00 00 3E 12 60 00 05 66 VV CS F7         0 - 120

REVERB: ON/OFF        F0 41 00 00 00 00 3E 12 60 00 06 10 VV CS F7         00 : OFF / 01 : ON
REVERB: TIME          F0 41 00 00 00 00 3E 12 60 00 06 12 VV CS F7         00 - 63 : 0.1 - 10.0s
REVERB: LOW CUT       F0 41 00 00 00 00 3E 12 60 00 06 15 VV CS F7         * Refer to Table 'LOW FREQ'
REVERB: HIGH CUT      F0 41 00 00 00 00 3E 12 60 00 06 16 VV CS F7         * Refer to Table 'HIGH FREQ'
REVERB: EFFECT LEVEL  F0 41 00 00 00 00 3E 12 60 00 06 18 VV CS F7         0 - 100

PATCH SELECT          F0 41 00 00 00 00 3E 12 00 01 00 00 MS LS CS F7      00 00 - 01 45 * Refer to Table 'PATCH NUM'

-------------------------------------------------------------------------------------------------------------------------

Table 'NAME':      see GT-100 MIDI implementation
Table 'BPM NOTE':  see GT-100 MIDI implementation
Table 'HIGH FREQ': see GT-100 MIDI implementation
Table 'LOW FREQ':  see GT-100 MIDI implementation


Table 'PATCH NUM'
-----------------------------------
Data(H)           Description
-----------------------------------
00 00 - 00 62 :   U01 - U99
00 63 - 01 45 :   P01 - P99
-----------------------------------

pkort

For those who don't understand what all those shits are about, I try to replicate the Gumtown's FX Floorboard tool.
First because there is no such tool for GT-1(B) (and it seems it will never happen) and the FX Floorboard can't be use under any DAW as a VST to automate parameters. Some DAW (Reaper for instance) could map hardware MIDI controller on VST parameters.
That way, you could have way more knobs to control the device (or faders or touchpad...)

To use the previous file, download Ctrlr and open the downloaded panel under this software.
You may have to set MIDI connection to fit your configuration using MIDI->Output Device.

Since I have a GT-1B, it should (could?) not work with GT-1 . Thee should be very close but I can't say (GT-1' Model ID would end with 3C or 3F or ??) and I think it will be easy to 'fix' :)

Feel free to try and/or ask for some testing!

admin

FWIW


GumTown wrote>

It was obvious that once I get a GT-1B that "GT-1BFxFloorBoard editor" would soon follow !!

So all you Bass players with (or without) a Boss GT-1B, check this one out !!

https://sourceforge.net/projects/fxfloorboard/files/GT-1BFxFloorBoard/





JedJones

Can you please explain to me exactly what the sys ex command is for the GT-1 to change to patch 5 for example? I am having trouble deciphering the tables.

gumtown

Quote from: JedJones on November 30, 2019, 06:20:04 AM
Can you please explain to me exactly what the sys ex command is for the GT-1 to change to patch 5 for example? I am having trouble deciphering the tables.

Specifically for the GT-1 only
U:01 = F0 41 00 00 00 00 30 12 00 01 00 00 00 00 7F F7

U:99 = F0 41 00 00 00 00 30 12 00 01 00 00 00 62 1D F7

when we break down the system exclusive data
F0 = sysx header (start of message)
41 = manufacturer ID
00 00 00 00 30 = model (GT-1)
12 = data request (editor expects a reply from the GT-1)
00 01 00 00 = system address for patch change
00 62 = 2 byte patch address 00 00 = U:01, 00 62 = U:99
7F and 1D = 7 bit data checksum
F7 = sysx footer (end of message).
Free "GR-55 FloorBoard" editor software from https://sourceforge.net/projects/grfloorboard/

JedJones

Thanks for coming back so quickly.  I am trying to use Midi Flow which does have the facility to send sysex messages.  It is a GT-1B which I have so the ID is 3E I believe.  So the message is
F0 41 00 00 00 00 3E 12 00 01 00 00 00 62 1D F7 To set patch 99.  Is that enough or do I need to send that string to enter the editor mode F0 41 00 00 00 00 3E 12 7F 00 00 01 01 F7?

gumtown

F0 41 00 00 00 00 3E 12 00 01 00 00 00 62 1D F7 is all you need to send to select Patch U:99, editor mode is not required.
Free "GR-55 FloorBoard" editor software from https://sourceforge.net/projects/grfloorboard/

ElliotG

I'm not familiar with the GT-1B, but can you send a PC command instead of a SYSEX to change patches?

gumtown

Quote from: ElliotG on December 01, 2019, 10:10:21 AM
I'm not familiar with the GT-1B, but can you send a PC command instead of a SYSEX to change patches?
Midi implimentation in the GT1 and GT1b is quite limited for realtime midi comands.
Free "GR-55 FloorBoard" editor software from https://sourceforge.net/projects/grfloorboard/

JedJones

Hi All

I still cannot get this to work.  No the pedal does not respond to MIDI commands per se, but does respond to the Boss Editor which as outlined above sends out SysEx commands. (If I am reading the above correctly).

I only want to send out Patch Changes from an iPad via an iConnect Audio 4.  The iPad sends patch changes to my Vocal pedal, DMX Lights and LED Matrix via midi and all that works.  I just want to include the GT-1B so I can initialise each song by pressing one buttobn / footswitch.

Midi-Flow and Midi Designer Pro both have the facility to send out SysEx commands yet I cannot seem to get a response from the pedal.  Looking at this thread makes me think that this should be possible.  Has anyone actually achieved this from an iPad?

admin

#13
Quote from: JedJones on December 04, 2019, 04:48:55 AM
Hi All

I still cannot get this to work.  No the pedal does not respond to MIDI commands per se, but does respond to the Boss Editor which as outlined above sends out SysEx commands. (If I am reading the above correctly).

I only want to send out Patch Changes from an iPad via an iConnect Audio 4.  The iPad sends patch changes to my Vocal pedal, DMX Lights and LED Matrix via midi and all that works.  I just want to include the GT-1B so I can initialise each song by pressing one buttobn / footswitch.

Midi-Flow and Midi Designer Pro both have the facility to send out SysEx commands yet I cannot seem to get a response from the pedal.  Looking at this thread makes me think that this should be possible.  Has anyone actually achieved this from an iPad?

Thanks for explaining your intended gear

I believe you are running up against the fact the Boss GT-1B's USB Port is NOT USB Class compliant..

There are specific types of hardware which apparently can communicate MIDI with many Boss devices  USB port-  but iConnectMIDI is not among them

Working devices are: Android devices, Yamaha MIDI Bluetooth, Rasperry Pi , PrimovaSound, MIDX-20 

hartsteins1

Hello!
I'm using MidiPipe on a Mac to translate incoming control / note messages to sysex and send to GT-1B over usb.  I have all the parameters controllable but finding myself stuck trying to sync other devices with tempo & midi clock.

I have tracked the sysex the GT-1B sends when the tap tempo is pressed.  In the bytes for value it sends the current BPM.

So far the only solution I can get working is to either split or repeat the tap tempo pedal.
- Try1: Look for incoming tap-tempo sysex in MidiPipe convert to CC and send to tap tempo input on Midi Clock program. 
- Try2: Physically split the tap tempo pedal sending one feed to GT-1B and the other to device with Midi Clock.

Both of these solution have similar results.  The BPM is close but not exact.

Is there anyway to have GT-1B send midi clock out?
Can it sync to external midi clock?
Do you know of a Mac program that can take a BPM value and start midi clock based on that value?

Thank you for your help!
Be well

hartsteins1

Work-around update.   I was able to create a version of sync by using a utility I wrote for Mac in Xcode. 
The Utility reads midi clock, determines BPM, then sends out a SySex to GT-1B in the form it's looking for when you use a tap tempo directly on the device (which includes BPM info)

Midi clock program runs on Mac
Tap tempo pedal updates midi clock via different interface
Clock is fed into utility
Utility feeds Tap tempo Sysex to GT-1B

Things are not truly "in sync" but they are working at the same BPM which is closer than splitting the tap pedal was able to accomplish.  It works but...ugh...this is a pretty wonky way around it.

Any other solutions?

Thank you 

hartsteins1

Hiya - here's some more info for anyone playing along.

I reversed my system and now the utility listens for a "tap tempo" SySex from the GT-1B and adjusts BPM of the midi clock.  The Tap Tempo SySex from the GT-1B includes BPM data.  I am using the MidiBus library to create the clock.

Tap Tempo Sysex looks like this:
F0 41 00 00 00 00 3E 12 60 00 07 16 01 16 6C F7

Note that it is 16 bytes not 15 like other buttons and knobs.  The bytes at indices 12 & 13 contain the BPM data.

int val1 = incomingData[12];
int val2 = incomingData[13];
int incomingBPM = ((val1*128)+val2);

Now an incoming tap starts to make clock adjustments immediately where in the last version it had to wait to determine BPM on its own.

I hope this helps anyone trying to sync it all up.