VGuitar Forums

Boss Katana MK1 Amplifiers => Katana Dev - Development hub & communication => Topic started by: LyndsW on December 08, 2017, 02:08:34 PM

Title: Katana Head SysEx on Midi In Port
Post by: LyndsW on December 08, 2017, 02:08:34 PM
Hello all.

Has anyone been able to get the Katana Head to respond to system exclusive messages on the midi port? Channel changes, as specified in the manual, are working for me but not the advanced changes BTS makes over USB.

I think I remember seeing comments about changes in version 2 of the firmware causing issues with some software. Is this related?

Beyond basic channel changes, are there any known foot pedals (or other devices) that can control the Katana over 5 pin din midi?
Title: Re: Katana Head SysEx on Midi In Port
Post by: Elantric on December 08, 2017, 02:33:21 PM
Quote from: LyndsW on December 08, 2017, 02:08:34 PM
Hello all.

Has anyone been able to get the Katana Head to respond to system exclusive messages on the midi port? Channel changes, as specified in the manual, are working for me but not the advanced changes BTS makes over USB.

I think I remember seeing comments about changes in version 2 of the firmware causing issues with some software. Is this related?


Yes - read here
https://www.vguitarforums.com/smf/index.php?board=240.0

https://github.com/snhirsch/katana-midi-bridge

Title: Re: Katana Head SysEx on Midi In Port
Post by: vtgearhead on December 08, 2017, 03:00:50 PM
I thought it had been long verified that heads accept sysex on 5-pin port?  Can't think why it would work on USB but not serial. 
Title: Re: Katana Head SysEx on Midi In Port
Post by: LyndsW on December 08, 2017, 03:02:14 PM
Thanks for the reply Elantric.

Your links appear to be related to control over usb. I'm specifically interested in the 5 pin port on the back of the Head model. USB has been working as expected, as it does with the raspberry or primova.
Title: Re: Katana Head SysEx on Midi In Port
Post by: LyndsW on December 08, 2017, 03:05:16 PM
Quote from: snhirsch on December 08, 2017, 03:00:50 PM
I thought it had been long verified that heads accept sysex on 5-pin port?  Can't think why it would work on USB but not serial.

I may well be missing something simple but important with this. Is there some kind of password type handshake needed? I didn't even think at first to verify this functionality before purchasing my Katana.
Title: Re: Katana Head SysEx on Midi In Port
Post by: Elantric on December 08, 2017, 04:29:29 PM
Quote from: snhirsch on December 08, 2017, 03:00:50 PM
I thought it had been long verified that heads accept sysex on 5-pin port?  Can't think why it would work on USB but not serial.

Confirmed -Any MIDI SYsex message which the Katana Head's 5 pin MIDI Input responds, the same MIDI Sysex message can be sent to the  Katana 50, Katana 100 combos over USB


The hurdle remains - the Katana is NOT MIDI Class Compliant -
Bulk of the devices marketed as "USB Host to MIDI "adapters  will NOT work with Katana , including the following:

Quote* iConnnectMIDI (original Black version - discontinued )

* iConnnectMIDI4+  (not the iConnnectMIDI2+ ! ! )
http://www.iconnectivity.com/products/midi


* iConnnectAUDIO4+  / * iConnnectAUDIO2+
http://www.iconnectivity.com/products/audio

* Kenton USB Host to MIDI Converter
http://www.kentonuk.com/products/items/utilities/usb-host.shtml

* Primova MIDX-10(Works with Roland  / Boss products - no USB Driver needed)
https://www.vguitarforums.com/smf/index.php?topic=15758.0

* Disaster Area GHOST Converter USB MIDI Host Interface
http://www.disasterareaamps.com/shop/ghost-converter

* CerebelUSB – USB-MIDI to Serial Converter
https://supr.com/mode-machines/products/cerebelusb-usb/


More details here:

USB Host to 5pin MIDI Converters
https://www.vguitarforums.com/smf/index.php?topic=15763.0

Short list of USB Host to 5pin MIDI Converters that WORK with Roland / Boss gear:

* Raspberry PI $35 + Generic USB to MIDI cable ($15)
https://www.vguitarforums.com/smf/index.php?topic=11998.0

* Primova MIDX-10
https://www.vguitarforums.com/smf/index.php?topic=15758.0


* Primova MIDX-20
https://www.vguitarforums.com/smf/index.php?topic=17561.0

*Android 6.01 ( or newer) tablets and smartphones +USB OTG adapter+ + Generic USB to MIDI cable
Title: Re: Katana Head SysEx on Midi In Port
Post by: Elantric on December 08, 2017, 05:29:33 PM
Katana MIDI docs are here
https://github.com/katana-dev/docs

However most info is only relevant for Katana Firmware 1.02 - not Katana FW 2.02
Title: Re: Katana Head SysEx on Midi In Port
Post by: vtgearhead on December 09, 2017, 06:24:09 AM
Quote from: LyndsW on December 08, 2017, 03:05:16 PM
I may well be missing something simple but important with this. Is there some kind of password type handshake needed? I didn't even think at first to verify this functionality before purchasing my Katana.

No password required.  But you will need to put the device into 'edit' mode for certain operations.  For example, it only echoes out panel control changes in edit mode. 

To best understand the sysex API, start with the Roland GT-100/001 specification (Katana firmware is derivative of those models), then look at some of the third-party efforts like my feeble scribbling:

https://github.com/snhirsch/katana-midi-bridge/blob/master/doc/katana_sysex.txt

and the links Elantric has already posted.
Title: Re: Katana Head SysEx on Midi In Port
Post by: alancarl on March 14, 2018, 03:09:27 PM
Quote from: LyndsW on December 08, 2017, 02:08:34 PM
Hello all.

Has anyone been able to get the Katana Head to respond to system exclusive messages on the midi port? Channel changes, as specified in the manual, are working for me but not the advanced changes BTS makes over USB.

I have 3 Katana 100 watt Heads now with FW 2.02 and I have never been successful with any FW version in getting the MIDI in port to pass SYSEX messages ..now the USB port with either my laptop or Primova MIDX-20 I am having loads of fun with MIDIDesigner on my iPads sending SYSEX commands to both the Katana and my MBP with BTS refelcting those changes!
I just wanted to add my experience with no SYSEX over the MIDI DIN port on the Katana Head.
Thanks,
AL
Title: Re: Katana Head SysEx on Midi In Port
Post by: admin on March 14, 2018, 07:58:59 PM
Quote from: alancarl on March 14, 2018, 03:09:27 PM
I have 3 Katana 100 watt Heads now with FW 2.02 and I have never been successful with any FW version in getting the MIDI in port to pass SYSEX messages ..now the USB port with either my laptop or Primova MIDX-20 I am having loads of fun with MIDIDesigner on my iPads sending SYSEX commands to both the Katana and my MBP with BTS refelcting those changes!
I just wanted to add my experience with no SYSEX over the MIDI DIN port on the Katana Head.
Thanks,
AL

Any MIDI Designer Katana Templates you could share?
Title: Re: Katana Head SysEx on Midi In Port
Post by: alancarl on March 15, 2018, 04:09:57 AM
Quote from: admsustainiac on March 14, 2018, 07:58:59 PM
Any MIDI Designer Katana Templates you could share?
Sure
I want to do a video or two as well... Editing over wifi, custom control layouts. I have found ability to quickly bypass any fx block like the FX Floorboard provides has taught me a lot about the structure of the Katana!

I have a question for anybody to check myself about a Katana DSP gain structuring concept--
Has anybody determined the level parameter value that would deliver Unity gain for the Limiter FX block? (of course this would be with the limiter engaged where it is set to not be limiting for this test)
Al
Title: Re: Katana Head SysEx on Midi In Port
Post by: vtgearhead on March 15, 2018, 04:41:24 AM
Quote from: alancarl on March 14, 2018, 03:09:27 PM
I have 3 Katana 100 watt Heads now with FW 2.02 and I have never been successful with any FW version in getting the MIDI in port to pass SYSEX messages ..now the USB port with either my laptop or Primova MIDX-20 I am having loads of fun with MIDIDesigner on my iPads sending SYSEX commands to both the Katana and my MBP with BTS refelcting those changes!
I just wanted to add my experience with no SYSEX over the MIDI DIN port on the Katana Head.
Thanks,
AL

Are you using a MIDI-to-USB converter in your setup?  Some of those play badly with sysex.  That said, I don't have a Katana with built-in MIDI to test with.
Title: Re: Katana Head SysEx on Midi In Port
Post by: gumtown on March 15, 2018, 12:27:38 PM
Most Boss/Roland DSP controls seem to be at unity/neutral/50/50 mix at noon setting, half way, effect levels at 100% or Direct levels at 100%.

I have not played with the Limiter much, a VU meter comparing the "input vs output" would be the best way to check.
Title: Re: Katana Head SysEx on Midi In Port
Post by: alancarl on March 15, 2018, 02:03:16 PM
Quote from: vtgearhead on March 15, 2018, 04:41:24 AM
Are you using a MIDI-to-USB converter in your setup?  Some of those play badly with sysex.  That said, I don't have a Katana with built-in MIDI to test with.
Thanks Vt.., I'm sure that the MKii Iconnectmidi Mio USB midi io handles Sysex properly as it works well feeding my Primova MIDX-20.
I am confident that the MIDI port In on the Katana head is not for SYSEX.
Al
Title: Re: Katana Head SysEx on Midi In Port
Post by: joelt on March 27, 2018, 04:45:18 AM
I've got an Arduino based midi controller working over the Midi In port for the standard midi commands shown in the manual.
Struggling to get the Sysex commands to work but it's hard to tell if the message is incorrect of if the Katana just doesn't response to it over Midi In.
Going to do some more testing and I'll let you know if I make progress
Title: Re: Katana Head SysEx on Midi In Port
Post by: alancarl on March 27, 2018, 05:26:51 AM
Hey Joeit,
    If you have a computer with the Roland USB drivers installed and working and a way to generate Sysex and send it down the USB midi pipe you could test your Sysex commands. The USB port definitely passes Sysex commands. I am sure that the midi in port does not pass Sysex on my 3 Katana amp heads:-)
LMK
Thanks
Al
Title: Re: Katana Head SysEx on Midi In Port
Post by: alancarl on March 27, 2018, 05:27:59 AM
Hey Joeit,
    If you have a computer with the Roland USB drivers installed and working and a way to generate Sysex and send it down the USB midi pipe you could test your Sysex commands. The USB port definitely passes Sysex commands. I am sure that the midi in port does not pass Sysex on my 3 Katana amp heads:-)
LMK
Thanks
Al
Title: Re: Katana Head SysEx on Midi In Port
Post by: joelt on March 31, 2018, 03:36:34 AM
Hmmm using SysEx Librarian I can send a SysEx message over USB and it seems to work but when sending the message over a USB to Midi adapter to the Midi In on the Katana it doesn't seem to work. Unless there is something missing and someone has managed another way it doesn't really look possible to me.
Looks like I'll have to stick with the standard Midi functionality for now and if I want to extend it then get a Usb Host for the Arduino or convert to a Pi as I think they can act as a USB host
Title: Re: Katana Head SysEx on Midi In Port
Post by: admin on March 31, 2018, 04:26:19 AM
Quotewhen sending the message over a USB to Midi adapter to the Midi In on the Katana it doesn't seem to work


I suspect this is due to many "USB to MIDI " adapter cables have insufficient FIFO buffer memory on board which yields SYSEX errors / failure

What MIDI interface are you using?

Also same applies to many Arduino MIDI adapters. Need a storage Oscilloscope to review the MIDI data packets
https://electronics.stackexchange.com/questions/17562/how-to-read-serial-data-from-oscilloscope


MIDI Interface SYSEX Data Test
http://www.frank-buss.de/midi/

https://www.vguitarforums.com/smf/index.php?topic=23193.new#new



(https://www.vguitarforums.com/smf/proxy.php?request=http%3A%2F%2Fwww.frank-buss.de%2Fmidi%2Feof-babyface.png&hash=c9694a308c22fb031781d21fa35a59a8f7b3034b)

RME Babyface MIDI SYSEX = Good



(https://www.vguitarforums.com/smf/proxy.php?request=http%3A%2F%2Fwww.frank-buss.de%2Fmidi%2Fnote-on-ebay.png&hash=dc74b9229ac04a990bfafed8ecdd3303c267cea8)
China USB MIDI Cable = Bad
Conclusion
If you need an opto-isolator to avoid ground loops, or if you want to send SysEx messages, don't buy the cheapest available adapters.

http://www.frank-buss.de/midi/
Title: Re: Katana Head SysEx on Midi In Port
Post by: joelt on March 31, 2018, 08:56:41 AM
Yup I am using a cheap USB to Midi converter so that could be part of the problem.
I am also experiencing some missing bytes when testing my Arduino controller plugged into the USB to midi cable, it's hard to tell if that's because of how the Arduino handles hex codes or because of the cheap adapter.
My main concern is spending too much time trying to get this to work over the Midi In port if it's simply not possible, i've only seen it successful over USB but I might have missed something.

This is why I'm a software programmer, not usually hardware  ;D
Title: Re: Katana Head SysEx on Midi In Port
Post by: admin on March 31, 2018, 09:49:59 AM
Get a Roland UM ONEmKII if you need MIDI SYSEX

(https://static.roland.com/assets/images/products/main/um-one_mk2_angle_main.jpg)
https://www.roland.com/global/products/um-one_mk2/
Title: Re: Katana Head SysEx on Midi In Port
Post by: CodeSmart on March 31, 2018, 02:44:04 PM
Got pretty many covered here:

https://www.vguitarforums.com/smf/index.php?topic=21480.0
Title: Re: Katana Head SysEx on Midi In Port
Post by: alancarl on April 02, 2018, 06:16:07 AM
Quote from: admsustainiac on March 31, 2018, 04:26:19 AM

I suspect this is due to many "USB to MIDI " adapter cables have insufficient FIFO buffer memory on board which yields SYSEX errors / failure

What MIDI interface are you using?

Pretty impressive tech!
I tested the SYSEX to the KATANA MIDI in port with 2 known working USB MIDI I/O's -The IconnectMIDI Mio and the 4+ and neither satisfy the KATANA head to receive SYSEX over the MIDI in DIN port.

I maintain that currently it is not possible to control the KATANA head by sending SYSEX commands to it's MIDI DIN port.
The MIDX-20 or a computer handles this nicely over the KATANA USB port.
If anyone has actually been successful controlling the KATANA head with SYSEX over the MIDI DIN port please tell us how!

FWIW I wanted to do this more than a year ago and was not successful which then led me to cop the first of 2-MIDX-20's for my tech arsenal:-)

Thanks,
AL
Title: Re: Katana Head SysEx on Midi In Port
Post by: vtgearhead on April 02, 2018, 09:05:01 AM
I've never had access to a Katana model with built-in 5-pin MIDI, so I cannot dig into the situation.  It strikes me as odd that the amps can respond to sysex on USB and the GAFC jack, but not on the DIN connector.
Title: Re: Katana Head SysEx on Midi In Port
Post by: admin on April 02, 2018, 09:30:48 AM
Quote from: vtgearhead on April 02, 2018, 09:05:01 AM
I've never had access to a Katana model with built-in 5-pin MIDI, so I cannot dig into the situation.  It strikes me as odd that the amps can respond to sysex on USB and the GAFC jack, but not on the DIN connector.

Agreed - also the electrical circuit of the Katana 5 pin DIN MIDI Input matches the typical 5 pin MIDI Input on other Roland / Boss gear ( GT-100)

I see no reason why they would block MIDI SYSEX

Suggest retry with a Roland UM-ONE MK II
Title: Re: Katana Head SysEx on Midi In Port
Post by: alancarl on April 02, 2018, 10:48:13 AM
I think the reason that SYSEX might not work at the MIDI DIN connector could be the one way only comm... A while ago I was working with Robert of Primova to see if we could get blind SYSEX commands to flow from the MIDX-20 to the Katana USB port. We were not successful and Robert's explanation was that the normal negotiation talk between SYSEX device and Katana could not take place.
So only one midi port apparently only tells half of the story.
Thoughts?
Thanks
Al
Title: Re: Katana Head SysEx on Midi In Port
Post by: gumtown on April 02, 2018, 11:42:04 AM
One way to test sysx on the Katana midi in port is to use Katana FxFloorBoard editor, and a usb-midi adapter.
Run the editor and select the midi device in the 'Preferences' menu and set to 'debug' mode to allow a forced midi connection and blind sysx sending.
Plug the USB midi device 'midi out' into the Katana 'midi in' and press the editor's "Connect" button and try any editor controls/settings.
The midi/sysx data sent will also be displayed on the bottom status bar.
Title: Re: Katana Head SysEx on Midi In Port
Post by: joelt on April 03, 2018, 01:53:14 AM
Thanks for the thoughts all
It would be odd for them to block Sysex over Midi so I'm going to guess it's one of three things
- As mentioned above it could be the one way communication of the Midi In port (this has been a pain with my midi controller anyway to get LED statuses correct!)
- There is a bug in the Katana software that is probably very low priority for Boss
- We're doing something wrong!

The FxFloorBoard editor + usb-midi adapter test is a very good idea, I'll have to give that a try and if it doesn't work then cut my losses for now with v2 of my controller being over USB - I mostly want Tap tempo and cycle through fx colours but I can live without them for now as I'm enjoying what is basically a mini DIY GA-FC
Title: Re: Katana Head SysEx on Midi In Port
Post by: vtgearhead on April 03, 2018, 04:56:09 AM
Quote from: alancarl on April 02, 2018, 10:48:13 AM
I think the reason that SYSEX might not work at the MIDI DIN connector could be the one way only comm... A while ago I was working with Robert of Primova to see if we could get blind SYSEX commands to flow from the MIDX-20 to the Katana USB port. We were not successful and Robert's explanation was that the normal negotiation talk between SYSEX device and Katana could not take place.
So only one midi port apparently only tells half of the story.
Thoughts?
Thanks
Al

I'm not sure what you mean by "blind" SYSEX commands.  Can you explain further?
Title: Re: Katana Head SysEx on Midi In Port
Post by: CodeSmart on April 03, 2018, 08:07:03 AM
Quote from: vtgearhead on April 03, 2018, 04:56:09 AM
I'm not sure what you mean by "blind" SYSEX commands.  Can you explain further?
What we did was a special firmware that would say "yes its a katana" regardless what was connected.
Of course the initial negotiation would time out, but after that we were hoping that sending 5-pin Katana sysex would affect the amp. It did not work. The whole experiment was not very scientific and I did never dig deep into the issue since I had not much time.

Still have no time, so please go ahead try the Gumtown thing...
Title: Re: Katana Head SysEx on Midi In Port
Post by: alancarl on April 04, 2018, 06:45:52 PM
Quote from: gumtown on April 02, 2018, 11:42:04 AM
One way to test sysx on the Katana midi in port is to use Katana FxFloorBoard editor, and a usb-midi adapter.
Run the editor and select the midi device in the 'Preferences' menu and set to 'debug' mode to allow a forced midi connection and blind sysx sending.
Plug the USB midi device 'midi out' into the Katana 'midi in' and press the editor's "Connect" button and try any editor controls/settings.
The midi/sysx data sent will also be displayed on the bottom status bar.

Thanks Gummie!
    I tried your experiment with the FX Floorboard and I still arrived at the same conclusion: The KATANA Head does not read SYSEX at the 5 pin DIN MIDI In port.

I do appreciate your experiment because I learned how to send a blind SYSEX command from your FX Floorboard application to the KATANA!
I Will find uses for that knowledge :-)

Here is a screen shot showing verification in two ways of the commands that i sent from my MBP to the KATANA MIDI In port.


(https://s17.postimg.cc/5qdx0ku67/Katana_MIDI_in_test.png)

To show that I had a working MIDI connection here is one showing the MIDI Program changes that I sent to the KATANA MIDI In port that did in fact change the channels on the KATANA as I watched!

(https://s17.postimg.cc/p88kgiytr/Katana_MIDI_in_test_PC.png)

I solved this by obtaining not one but two Primova Sound MIDX-20's! This gave me the SYSEX to MIDI DIN path to the KATANA head that we are looking for here.

FWIW the MIDX-20 allows me to connect my MIDIDesigner iPad control template to the KATANA head without a computer for the gig!
I used it for a Detroit Symphony Orchestra Pops concert yesterday night and it worked great!
Thanks everyone!
AL
Title: Re: Katana Head SysEx on Midi In Port
Post by: BSilveira on January 23, 2019, 11:21:14 AM
Hello, guys. I hope you are great.
First of all, congratulations on the excellent work you've put into developing these alternative DIY solutions to control our beloved Katana amps.

After an extensive research in this forum, reading several topics on the subject at least 3 times, I couldn't figure out exactly if would be possible to use Arduino as a midi controller in order to mimic all 6 GA-FC's controls (with exp pedals), but using Katana's Midi Input.. I'm aware that midi input does not receive SysEx commands and that Arduino through the GA-FC input is not yet fully implemented.

Please, note that I only want to mimic GA-FC controls, but using the Midi input on Katana. Why? Because GA-FC is hell^3 expensive here in Brazil (just like every piece of electronic gear guitar related :'().
Also, I'm not a programming expert, neither Midi monster, so I kindly ask you to be a little slow on the explanations.

Well, I found a series of 3 videos on youtube (https://www.youtube.com/watch?v=DXhxdsGREsU&t=91s (https://www.youtube.com/watch?v=DXhxdsGREsU&t=91s)) which demonstrate step by step how to configure arduino Uno (or Nano) as a Midi controller, with pots and momentary switches.

This way, I will be extremely grateful if you Midi Gurus could answer my questions below:

1 - Would that codes from the youtube videos work with Katana if I choose the correct CC and PC commands for the amp?

2 - Will I be able to configure 3 of Arduino's analog inputs as TRS Jacks and plug expression pedals (vol, effects, wah) using the CC codes provided in the owner's manual of Katana? (2 of GA-FC and 1 from the empty Exp Jack on the back of the Head)

3 - How can I code the button Effect from the GA-FC since it doesn't have a CC command in the manual?

4 - How to manage the Tap Tempo when changing from Preset to Effects by pressing the Effects button? Will that work automatically just by coding "FX3 SW" while Effects is activated?

Many thanks to anyone that could help me with some mentoring.

Cheers!
Title: Re: Katana Head SysEx on Midi In Port
Post by: CodeSmart on January 23, 2019, 03:59:47 PM
Re-read the label of this thread. You need Sysex MIDI commands to do deep communication with the Katana.
Without an in-between translator box like the MIDX-20 there's very little CC the Katana listens to.
Title: Re: Katana Head SysEx on Midi In Port
Post by: BSilveira on January 23, 2019, 06:22:14 PM
Quote from: CodeSmart on January 23, 2019, 03:59:47 PM
Re-read the label of this thread. You need Sysex MIDI commands to do deep communication with the Katana.
Without an in-between translator box like the MIDX-20 there's very little CC the Katana listens to.

Thanks for the reply, CodeSmart!
I do understand we need SysEx commands to control extra features of the amp other than those with GA-FC, but I don't consider using "official" Midi command list of the manual a deep communication with the amp, since it is almost the same as GA-FC. MIDX-20 for sure is deep communication, the same for the FloorBoard.

This way, I was thinking about only replicate GA-FC functionalities using the Midi commands listed in the owner's manual to send messages via Arduino (with proper Midi library installed) to Katana Midi IN without any hubs in the middle.

In fact, I've seen someone doing part of it in Reddit. It is clear that he managed to add the Effects button function from the GA-FC to his rig, but the guy did not finish his project, since he did not add expression pedal functions, neither tap tempo and I think also the button to change to Panel Mode. Here is the link: https://www.reddit.com/r/arduino/comments/83udwa/my_first_arduino_project_a_midi_controller/ (https://www.reddit.com/r/arduino/comments/83udwa/my_first_arduino_project_a_midi_controller/)

Well. I'll build a protoboard with arduino to test those PC and CC commands to see for myself and also try to contact the guy from Reddit.

If someone has other ideas or some advice, I appreciate!

Cheers!
Title: Re: Katana Head SysEx on Midi In Port
Post by: SteveO on January 23, 2019, 07:36:19 PM
I have a working prototype of a USB MIDI replacement for a GAFC. However, I don't have an expression pedal input yet nor do I have taptempo. I'm going to try adding an expression pedal input later if I have time. I don't need the tap tempo.

I can share my code tomorrow but I'm not much of a programmer and it's not finished so it's messy and not concise.  I hope to start to make an enclosure for it next week. It's been tested on my desk but that's about it.

I have it working with an Arduino Nano or Uno r3 plus a usb host Sheild. I used this library but changed one line of code to make it work with the Katana: https://github.com/MrHaroldA/MS3  This is the thread that I read before using the library: https://www.vguitarforums.com/smf/index.php?topic=21864.msg156460#msg156460
Title: Re: Katana Head SysEx on Midi In Port
Post by: BSilveira on January 24, 2019, 05:20:16 AM
Quote from: TrainedChimp on January 23, 2019, 07:36:19 PM
I have a working prototype of a USB MIDI replacement for a GAFC. However, I don't have an expression pedal input yet nor do I have taptempo. I'm going to try adding an expression pedal input later if I have time. I don't need the tap tempo.

I can share my code tomorrow but I'm not much of a programmer and it's not finished so it's messy and not concise.  I hope to start to make an enclosure for it next week. It's been tested on my desk but that's about it.

I have it working with an Arduino Nano or Uno r3 plus a usb host Sheild. I used this library but changed one line of code to make it work with the Katana: https://github.com/MrHaroldA/MS3  This is the thread that I read before using the library: https://www.vguitarforums.com/smf/index.php?topic=21864.msg156460#msg156460

Interesting stuff, Mr. Chimp.
The USB Host thing with Arduino is very interesting making it similar to the MIDX 20. It is very complex for me to code at this level since I have very little programming skills (I've just started to learn Python).

The coding for Beaglebone is available on github in this link https://github.com/snhirsch/katana-midi-bridge (https://github.com/snhirsch/katana-midi-bridge) (credits to the Gurus here in this forum).
Is it possible to adapt this code to use it with Arduino? (I'm not sure this is a silly question... ;D)

Good luck to us!

Cheers!


Title: Re: Katana Head SysEx on Midi In Port
Post by: vtgearhead on January 24, 2019, 08:59:34 AM
Quote from: BSilveira on January 24, 2019, 05:20:16 AM
The coding for Beaglebone is available on github in this link https://github.com/snhirsch/katana-midi-bridge (https://github.com/snhirsch/katana-midi-bridge) (credits to the Gurus here in this forum).
Is it possible to adapt this code to use it with Arduino? (I'm not sure this is a silly question... ;D)

You could use my code for ideas and general guidance, but I think you'll have a long wait before a full-featured Python runtime is available for Arduino.  Feel free to ask any questions you might have about my katana MIDI bridge.  I no longer have time or interest in working on it and seldom use my Katana since acquiring a Helix.  But, if any of the ideas there are useful to others I'm available to discuss or explain (assuming I remember :-)).
Title: Re: Katana Head SysEx on Midi In Port
Post by: SteveO on January 24, 2019, 09:08:53 AM
BSilveira,

This is the code I have, it's not very complex. I'm actually using an LCD and OLEDs with my build; I stripped all of that out to make the important stuff easier to see. My test setup only has four buttons, but the final will have 6 or 7. It should give you an idea. You can have the full version if you rather. 

You'll need https://www.amazon.com/gp/product/B0777DR3T6/ref=ppx_yo_dt_b_asin_title_o03__o00_s00?ie=UTF8&psc=1 or something like this: https://www.amazon.com/gp/product/B01EWW9R1E/ref=ppx_yo_dt_b_asin_title_o01__o00_s00?ie=UTF8&psc=1

/* In MS3.h library change the lin below for sysex headerfrom 0x3b to 0x33 for Katana amps
   const byte MS3_HEADER[6] = {0x41, 0x00, 0x00, 0x00, 0x00, 0x33};
*/

// Uncomment this to enable verbose debug messages.
#define MS3_DEBUG_MODE

#include "Arduino.h"
#include "MS3.h"
//#include <Wire.h>
#define TOTAL_LED 4

const int SW1 = 2;
const int SW2 = 3;
const int SW3 = 4;
const int SW4 = 5;
const int SW5 = 6;
const int SW6 = 7;
const int ledPin1 = A0;
const int ledPin2 = A1;
const int ledPin3 = A2;
const int ledPin4 = A3;
byte ledArray[] = {ledPin1, ledPin2, ledPin3, ledPin4};
unsigned long db = 500; // Variable for debounce
unsigned long lastRead = millis();
int effects = 0;  // set effects sw to off -> buttons 1-4 send PC
int bank = 1;     // Set to send PCs 1-4
int effectsState1 = 0;
int effectsState2 = 0;
int effectsState3 = 0;
int fxLoopstate = 0;
int channel1 = 1;
int currentChannel = 1;
int midiByte = 0 ;
byte chn = 3;     // Midi channel
const unsigned long msg = 0;

// sysex define ################################
const unsigned long PC = 0x00010000; // change channel MS3.write(P_PATCH, 1, 2) second byte is channel number 3rd is length
const unsigned long CC16 = 0x60000030; //turn button 1 on  MS3.write(P_PATCH, 1, 1) second byte 0 = off 1 = on
const unsigned long CC17 = 0x6000034C; //turn button 2 on  MS3.write(P_PATCH, 1, 1) second byte 0 = off 1 = on
const unsigned long CC18 = 0x60000610; //turn reverb on  MS3.write(P_PATCH, 1, 1) second byte 0 = off 1 = on
const unsigned long Loop = 0x60000655;   // turn loop off on
const unsigned long rvbRed = 0x60001214; // set reverb type to red  MS3.write(P_PATCH, 1, 1)
// end sysex define ##############################
//###########################
//###########################
// Initialize the MS3 class.
MS3 katana;

//###########################
//###########################
// Loop to turn all LEDs off
void setAllLEDs(int type) {
  for (int i = 0; i < TOTAL_LED - 2; i++) {
    digitalWrite(ledArray[i], type);
  }
}
//###########################
//###########################
// blink the leds at start up
void blinkAllLeds(int numTimes, int inDelay) {
  for (int j = 0; j < numTimes; j++) {
    for (int i = 0; i < TOTAL_LED; i++) {
      digitalWrite(ledArray[i], HIGH);
      delay(inDelay);
      digitalWrite(ledArray[i], LOW);
    }
  }
}
//###########################
//###########################

void setup() {
// Wire.begin();
  while (!Serial);
  delay(1000);

  pinMode(SW1, INPUT_PULLUP); // setup button as input
  pinMode(SW2, INPUT_PULLUP); // setup button as input
  pinMode(SW3, INPUT_PULLUP); // setup button as input
  pinMode(SW4, INPUT_PULLUP); // setup button as input
  pinMode(SW5, INPUT_PULLUP); // setup button as input
  pinMode(SW6, INPUT_PULLUP); // setup button as input
  pinMode(ledPin1, OUTPUT);
  pinMode(ledPin2, OUTPUT);
  pinMode(ledPin3, OUTPUT);
  pinMode(ledPin4, OUTPUT);
  //////////////////////////// End OLED

  Serial.begin(115200);
  delay(1500);
  while (!Serial) {}

  if (!katana.begin()) {
    Serial.println(F("*** USB / MS3 init error! ***"));
    while (true);
  }
  Serial.println(F("Ready!"));
  Serial.println();

  // Set the katana into BTS edit mode
  // This allows for patch changes and effects to be changed
  unsigned long parameter = 0;
  byte data = 0;
  switch (katana.update(parameter, data)) {
    case MS3_READY:
      katana.setEditorMode();
      katana.read(PC, 0x02);
      break;
  }

  blinkAllLeds(1, 200);
  setAllLEDs(LOW);
}
//###########################
//###########################
// Query the katana
void parseData(unsigned long parameter, byte data) {
  switch (parameter) {
    case msg:
      break;
    default:
      ;
  }
}

//###########################
//###########################
// If USB connection is lost set the katana back in BTS edit mode
void setEdit(void) {
  unsigned long test = 0;
  byte dataTest = 0;
  Serial.println();
  Serial.println(F("Waiting..."));
  Serial.println();
  katana.begin();
  delay(400);
  switch (katana.update(test, dataTest)) {
    case MS3_READY:
      Serial.println(F("############ Now I'm ready!"));
      Serial.println();
      katana.setEditorMode();
      katana.read(PC, 0x02);
      break;
  }
}
//###########################
//###########################
void loop() {

  // Check for incoming data or send a queued item.
  unsigned long parameter = 0;
  byte data = 0;
  switch (katana.update(parameter, data)) {
    case MS3_NOT_READY:
      Serial.println(F("Katana NOT READY!"));
      Serial.println();
      setEdit();
      break;

    case MS3_DATA_RECEIVED:
      break;
  }


  if (digitalRead(SW3) == LOW  && millis() - lastRead > db) {
    if (bank == 1) {
      digitalWrite(ledPin3, HIGH);
      lastRead = millis();
      bank = 2;
    }

    else {
      digitalWrite(ledPin3, LOW);
      lastRead = millis();
      bank = 1;
    }
  }

  if (digitalRead(SW4) == LOW  && millis() - lastRead > db) {
    if (effects == 0) {
      effects = 1;
      digitalWrite(ledPin4, HIGH);
      lastRead = millis();
    }

    else {
      effects = 0;
      digitalWrite(ledPin4, LOW);
      lastRead = millis();
    }
  }


  if (bank == 1 && effects == 0) {
    if (digitalRead(SW1) == LOW && millis() - lastRead > db) {
      setAllLEDs(LOW);
      digitalWrite(ledPin1, HIGH);
      data = 1; // this is the channel you want to select
      katana.write(PC, data, 2);
      lastRead = millis();
    }

    if (digitalRead(SW2) == LOW && millis() - lastRead > db) {
      setAllLEDs(LOW);
      digitalWrite(ledPin2, HIGH);
      data = 2;
      katana.write(PC, data, 2);
      lastRead = millis();
    }
  }

  if (bank == 2 && effects == 0) {
    if (digitalRead(SW1) == LOW && millis() - lastRead > db) {
      setAllLEDs(LOW);
      digitalWrite(ledPin1, HIGH);
      data = 5;
      katana.write(PC, data, 2);
      lastRead = millis();
    }

    if (digitalRead(SW2) == LOW && millis() - lastRead > db) {
      setAllLEDs(LOW);
      digitalWrite(ledPin2, HIGH);
      data = 6;
      katana.write(PC, data, 2);
      lastRead = millis();
    }
  }

  if (effects == 1) {
    if (digitalRead(SW1) == LOW && millis() - lastRead > db) {
      if (effectsState1 == 0) {
        digitalWrite(ledPin1, HIGH);

        katana.write(CC16, 1, 1);
        lastRead = millis();
        effectsState1 = 1;
      }
      else {
        digitalWrite(ledPin1, LOW);
        katana.write(CC16, 0, 1);
        lastRead = millis();
        effectsState1 = 0;
      }
    }
    if (digitalRead(SW2) == LOW && millis() - lastRead > db) {
      if (effectsState2 == 0) {
        digitalWrite(ledPin2, HIGH);
        katana.write(CC17, 1, 1);
        effectsState2 = 1;
        lastRead = millis();
      }

      else {
        digitalWrite(ledPin2, LOW);
        katana.write(CC17, 0, 1);
        lastRead = millis();
        effectsState2 = 0;
      }
    }
    if (digitalRead(SW3) == LOW && millis() - lastRead > db) {
      if (effectsState3 == 0) {
        katana.write(CC17, 1, 1);
        lastRead = millis();
        effectsState3 = 1;
      }

      else {
        katana.write(CC17, 0, 1);
        lastRead = millis();
        katana.write(CC17, 0, 1);
        effectsState3 = 0;
      }
    }
    if (digitalRead(SW4) == LOW && millis() - lastRead > db) {
      if (fxLoopstate == 0) {
        katana.write(Loop, 1, 1);
        fxLoopstate = 1;
        lastRead = millis();
      }

      else {
        katana.write(Loop, 0, 1);
        lastRead = millis();
        katana.write(Loop, 0, 1);
        fxLoopstate =0;
       
      }
    }
  }
}
Title: Re: Katana Head SysEx on Midi In Port
Post by: BSilveira on January 26, 2019, 11:42:32 AM
Quote from: TrainedChimp on January 24, 2019, 09:08:53 AM
BSilveira,

This is the code I have, it's not very complex. I'm actually using an LCD and OLEDs with my build; I stripped all of that out to make the important stuff easier to see. My test setup only has four buttons, but the final will have 6 or 7. It should give you an idea. You can have the full version if you rather. 

You'll need https://www.amazon.com/gp/product/B0777DR3T6/ref=ppx_yo_dt_b_asin_title_o03__o00_s00?ie=UTF8&psc=1 or something like this: https://www.amazon.com/gp/product/B01EWW9R1E/ref=ppx_yo_dt_b_asin_title_o01__o00_s00?ie=UTF8&psc=1

/* In MS3.h library change the lin below for sysex headerfrom 0x3b to 0x33 for Katana amps
   const byte MS3_HEADER[6] = {0x41, 0x00, 0x00, 0x00, 0x00, 0x33};
*/

// Uncomment this to enable verbose debug messages.
#define MS3_DEBUG_MODE

#include "Arduino.h"
#include "MS3.h"
//#include <Wire.h>
#define TOTAL_LED 4

const int SW1 = 2;
const int SW2 = 3;
const int SW3 = 4;
const int SW4 = 5;
const int SW5 = 6;
const int SW6 = 7;
const int ledPin1 = A0;
const int ledPin2 = A1;
const int ledPin3 = A2;
const int ledPin4 = A3;
byte ledArray[] = {ledPin1, ledPin2, ledPin3, ledPin4};
unsigned long db = 500; // Variable for debounce
unsigned long lastRead = millis();
int effects = 0;  // set effects sw to off -> buttons 1-4 send PC
int bank = 1;     // Set to send PCs 1-4
int effectsState1 = 0;
int effectsState2 = 0;
int effectsState3 = 0;
int fxLoopstate = 0;
int channel1 = 1;
int currentChannel = 1;
int midiByte = 0 ;
byte chn = 3;     // Midi channel
const unsigned long msg = 0;

// sysex define ################################
const unsigned long PC = 0x00010000; // change channel MS3.write(P_PATCH, 1, 2) second byte is channel number 3rd is length
const unsigned long CC16 = 0x60000030; //turn button 1 on  MS3.write(P_PATCH, 1, 1) second byte 0 = off 1 = on
const unsigned long CC17 = 0x6000034C; //turn button 2 on  MS3.write(P_PATCH, 1, 1) second byte 0 = off 1 = on
const unsigned long CC18 = 0x60000610; //turn reverb on  MS3.write(P_PATCH, 1, 1) second byte 0 = off 1 = on
const unsigned long Loop = 0x60000655;   // turn loop off on
const unsigned long rvbRed = 0x60001214; // set reverb type to red  MS3.write(P_PATCH, 1, 1)
// end sysex define ##############################
//###########################
//###########################
// Initialize the MS3 class.
MS3 katana;

//###########################
//###########################
// Loop to turn all LEDs off
void setAllLEDs(int type) {
  for (int i = 0; i < TOTAL_LED - 2; i++) {
    digitalWrite(ledArray[i], type);
  }
}
//###########################
//###########################
// blink the leds at start up
void blinkAllLeds(int numTimes, int inDelay) {
  for (int j = 0; j < numTimes; j++) {
    for (int i = 0; i < TOTAL_LED; i++) {
      digitalWrite(ledArray[i], HIGH);
      delay(inDelay);
      digitalWrite(ledArray[i], LOW);
    }
  }
}
//###########################
//###########################

void setup() {
// Wire.begin();
  while (!Serial);
  delay(1000);

  pinMode(SW1, INPUT_PULLUP); // setup button as input
  pinMode(SW2, INPUT_PULLUP); // setup button as input
  pinMode(SW3, INPUT_PULLUP); // setup button as input
  pinMode(SW4, INPUT_PULLUP); // setup button as input
  pinMode(SW5, INPUT_PULLUP); // setup button as input
  pinMode(SW6, INPUT_PULLUP); // setup button as input
  pinMode(ledPin1, OUTPUT);
  pinMode(ledPin2, OUTPUT);
  pinMode(ledPin3, OUTPUT);
  pinMode(ledPin4, OUTPUT);
  //////////////////////////// End OLED

  Serial.begin(115200);
  delay(1500);
  while (!Serial) {}

  if (!katana.begin()) {
    Serial.println(F("*** USB / MS3 init error! ***"));
    while (true);
  }
  Serial.println(F("Ready!"));
  Serial.println();

  // Set the katana into BTS edit mode
  // This allows for patch changes and effects to be changed
  unsigned long parameter = 0;
  byte data = 0;
  switch (katana.update(parameter, data)) {
    case MS3_READY:
      katana.setEditorMode();
      katana.read(PC, 0x02);
      break;
  }

  blinkAllLeds(1, 200);
  setAllLEDs(LOW);
}
//###########################
//###########################
// Query the katana
void parseData(unsigned long parameter, byte data) {
  switch (parameter) {
    case msg:
      break;
    default:
      ;
  }
}

//###########################
//###########################
// If USB connection is lost set the katana back in BTS edit mode
void setEdit(void) {
  unsigned long test = 0;
  byte dataTest = 0;
  Serial.println();
  Serial.println(F("Waiting..."));
  Serial.println();
  katana.begin();
  delay(400);
  switch (katana.update(test, dataTest)) {
    case MS3_READY:
      Serial.println(F("############ Now I'm ready!"));
      Serial.println();
      katana.setEditorMode();
      katana.read(PC, 0x02);
      break;
  }
}
//###########################
//###########################
void loop() {

  // Check for incoming data or send a queued item.
  unsigned long parameter = 0;
  byte data = 0;
  switch (katana.update(parameter, data)) {
    case MS3_NOT_READY:
      Serial.println(F("Katana NOT READY!"));
      Serial.println();
      setEdit();
      break;

    case MS3_DATA_RECEIVED:
      break;
  }


  if (digitalRead(SW3) == LOW  && millis() - lastRead > db) {
    if (bank == 1) {
      digitalWrite(ledPin3, HIGH);
      lastRead = millis();
      bank = 2;
    }

    else {
      digitalWrite(ledPin3, LOW);
      lastRead = millis();
      bank = 1;
    }
  }

  if (digitalRead(SW4) == LOW  && millis() - lastRead > db) {
    if (effects == 0) {
      effects = 1;
      digitalWrite(ledPin4, HIGH);
      lastRead = millis();
    }

    else {
      effects = 0;
      digitalWrite(ledPin4, LOW);
      lastRead = millis();
    }
  }


  if (bank == 1 && effects == 0) {
    if (digitalRead(SW1) == LOW && millis() - lastRead > db) {
      setAllLEDs(LOW);
      digitalWrite(ledPin1, HIGH);
      data = 1; // this is the channel you want to select
      katana.write(PC, data, 2);
      lastRead = millis();
    }

    if (digitalRead(SW2) == LOW && millis() - lastRead > db) {
      setAllLEDs(LOW);
      digitalWrite(ledPin2, HIGH);
      data = 2;
      katana.write(PC, data, 2);
      lastRead = millis();
    }
  }

  if (bank == 2 && effects == 0) {
    if (digitalRead(SW1) == LOW && millis() - lastRead > db) {
      setAllLEDs(LOW);
      digitalWrite(ledPin1, HIGH);
      data = 5;
      katana.write(PC, data, 2);
      lastRead = millis();
    }

    if (digitalRead(SW2) == LOW && millis() - lastRead > db) {
      setAllLEDs(LOW);
      digitalWrite(ledPin2, HIGH);
      data = 6;
      katana.write(PC, data, 2);
      lastRead = millis();
    }
  }

  if (effects == 1) {
    if (digitalRead(SW1) == LOW && millis() - lastRead > db) {
      if (effectsState1 == 0) {
        digitalWrite(ledPin1, HIGH);

        katana.write(CC16, 1, 1);
        lastRead = millis();
        effectsState1 = 1;
      }
      else {
        digitalWrite(ledPin1, LOW);
        katana.write(CC16, 0, 1);
        lastRead = millis();
        effectsState1 = 0;
      }
    }
    if (digitalRead(SW2) == LOW && millis() - lastRead > db) {
      if (effectsState2 == 0) {
        digitalWrite(ledPin2, HIGH);
        katana.write(CC17, 1, 1);
        effectsState2 = 1;
        lastRead = millis();
      }

      else {
        digitalWrite(ledPin2, LOW);
        katana.write(CC17, 0, 1);
        lastRead = millis();
        effectsState2 = 0;
      }
    }
    if (digitalRead(SW3) == LOW && millis() - lastRead > db) {
      if (effectsState3 == 0) {
        katana.write(CC17, 1, 1);
        lastRead = millis();
        effectsState3 = 1;
      }

      else {
        katana.write(CC17, 0, 1);
        lastRead = millis();
        katana.write(CC17, 0, 1);
        effectsState3 = 0;
      }
    }
    if (digitalRead(SW4) == LOW && millis() - lastRead > db) {
      if (fxLoopstate == 0) {
        katana.write(Loop, 1, 1);
        fxLoopstate = 1;
        lastRead = millis();
      }

      else {
        katana.write(Loop, 0, 1);
        lastRead = millis();
        katana.write(Loop, 0, 1);
        fxLoopstate =0;
       
      }
    }
  }
}


Thank you very much, Chimp.
This is a step further to what I was thinking, but I'll give the midi bridge a try.

I have an Arduino nano, so I don't think the USB shield will work. I suppose I need an Arduino Uno.

I'll let you guys know when I finish my project. It may take I while since I need to import components from the USA or China.

Cheers!
Title: Re: Katana Head SysEx on Midi In Port
Post by: SteveO on January 26, 2019, 12:03:49 PM
The nano works just fine. However, the shield doesn't mount on the nano itself, you just have to do some homework to wire it up properly and make sure the shield only gets 3.3 v. Just make sure whatever you use has enough pins for the number of switches and LEDS you want to use or you'll have to get fancier. I decided to use a Teensy 3.2. The mini usb host can mount right on top of an Arduino mircro pro, but I don't know much about those.

Title: Re: Katana Head SysEx on Midi In Port
Post by: SteveO on February 05, 2019, 08:11:03 AM
BSilveira,

I just remembered that  I "cut the trace inside VBUS jumper" on the host shield  as mentioned in the second paragraph under the Power Options part of this page: https://www.circuitsathome.com/usb-host-shield-hardware-manual/ shown here: https://www.pjrc.com/teensy/td_libs_USBHostShield.html. I googled these pictures: https://geekhack.org/index.php?PHPSESSID=jnim6u2dcno62u8vpbm8sl9ias67hb3o&action=dlattach;topic=80421.0;attach=130856;image (https://geekhack.org/index.php?PHPSESSID=jnim6u2dcno62u8vpbm8sl9ias67hb3o&action=dlattach;topic=80421.0;attach=130856;image) and https://geekhack.org/index.php?PHPSESSID=jnim6u2dcno62u8vpbm8sl9ias67hb3o&action=dlattach;topic=80421.0;attach=130858;image (https://geekhack.org/index.php?PHPSESSID=jnim6u2dcno62u8vpbm8sl9ias67hb3o&action=dlattach;topic=80421.0;attach=130858;image)

Also, I started a new thread here about using Teensy here:https://www.vguitarforums.com/smf/index.php?topic=25185.0 (https://www.vguitarforums.com/smf/index.php?topic=25185.0) I haven't tested my newest code with an Arduino, just a Teensy 3.2.
Title: Re: Katana Head SysEx on Midi In Port
Post by: scion19801 on August 13, 2019, 11:58:34 AM
Quote from: SteveO on January 23, 2019, 07:36:19 PM
I have a working prototype of a USB MIDI replacement for a GAFC. However, I don't have an expression pedal input yet nor do I have taptempo. I'm going to try adding an expression pedal input later if I have time. I don't need the tap tempo.

I can share my code tomorrow but I'm not much of a programmer and it's not finished so it's messy and not concise.  I hope to start to make an enclosure for it next week. It's been tested on my desk but that's about it.

I have it working with an Arduino Nano or Uno r3 plus a usb host Sheild. I used this library but changed one line of code to make it work with the Katana: https://github.com/MrHaroldA/MS3  This is the thread that I read before using the library: https://www.vguitarforums.com/smf/index.php?topic=21864.msg156460#msg156460
do you have any info or pics on how you had this setup? I just tried to compile it and got multiple errors using code you had listed for using arduino uno and usb host shield. trying to do a cheap knock off of the ga-fc as i have the uno and switches, just need some leds and the usb host shield, then i should be able to get something working.....
Title: Re: Katana Head SysEx on Midi In Port
Post by: alancarl on January 14, 2023, 09:04:11 AM
Quote from: admin on April 02, 2018, 09:30:48 AMAgreed - also the electrical circuit of the Katana 5 pin DIN MIDI Input matches the typical 5 pin MIDI Input on other Roland / Boss gear ( GT-100)

I see no reason why they would block MIDI SYSEX

Suggest retry with a Roland UM-ONE MK II

Hi fellow katana tweakedz:-)
I have an explanation for my findings that the katana head amp does not pass system exclusive information at its MIDI port(with substitutions and comparisons of all connected hardware and software I am confident that this is in fact true)
I'm working on a similar iPad editor wired to one of my boss waza TAE's.. it has 5 pin DIN for MIDI in and 5 pin DIN for MIDI out and it in fact does receive and send system exclusive over those 5 pin DIN ports...
—-/So I hypothesize that Roland saw no need to implement system exclusive on the devices with only a MIDI In port w that would then accommodate the so-called blind transfers:-)
It's a terrific discovery that I made with the waza TAE midi in and out ports because I have one less thing in the rig—-which is my USB control hop interpreter raspberry pi 3B plus!!
Al
Title: Re: Katana Head SysEx on Midi In Port
Post by: gumtown on January 14, 2023, 12:41:33 PM
Quote from: scion19801 on August 13, 2019, 11:58:34 AMdo you have any info or pics on how you had this setup? I just tried to compile it and got multiple errors using code you had listed for using arduino uno and usb host shield. trying to do a cheap knock off of the ga-fc as i have the uno and switches, just need some leds and the usb host shield, then i should be able to get something working.....
An Arduino UNO will not work with the code, as it is designed for the higher spec Teensy3.x and upward.
Title: Re: Katana Head SysEx on Midi In Port
Post by: gumtown on January 14, 2023, 12:45:43 PM
Quote from: alancarl on January 14, 2023, 09:04:11 AMHi fellow katana tweakedz:-)
I have an explanation for my findings that the katana head amp does not pass system exclusive information at its MIDI port(with substitutions and comparisons of all connected hardware and software I am confident that this is in fact true)
I'm working on a similar iPad editor wired to one of my boss waza TAE's.. it has 5 pin DIN for MIDI in and 5 pin DIN for MIDI out and it in fact does receive and send system exclusive over those 5 pin DIN ports...
—-/So I hypothesize that Roland saw no need to implement system exclusive on the devices with only a MIDI In port w that would then accommodate the so-called blind transfers:-)
It's a terrific discovery that I made with the waza TAE midi in and out ports because I have one less thing in the rig—-which is my USB control hop interpreter raspberry pi 3B plus!!
Al
I believe it to be true, that the Katana head midi in only listens to program change and cc# controller but not sysex.
You might want to cast your gaze at either the CME Widi uHost or the Airstep, as both connect to the Katana usb port and provide BLE Bluetooth midi capable of system exclusive, so your iPad could interface wireless to the Katana.
Title: Re: Katana Head SysEx on Midi In Port
Post by: alancarl on January 14, 2023, 02:51:10 PM
Thanks Colin
I actually have and use both of those BTLe options:-)
It's better now with the newer generations of BTLe implementations but I tend to favor wired connections when possible over wireless routes to reduce the variables in a live setting and the parameter changes/updates are usually smoother and quicker.
What I still am hoping for is class compliant usb in all of Roland/Boss products...:-)
Thanks again for all of your contributions in the betterment of controlling our great Boss devices Gumtown!
Al