Any chance to convert Katana patches to WAZA AIR .tsl file?

Started by Pi3141, June 08, 2020, 10:23:31 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Pi3141

Tone Studio for Katana and WAZA AIR seems to be relatively similar so I was wondering if there might be any chance to convert Katana .tsl files to WAZA AIR .tsl files.

I just uploaded my .tsl liveset for WAZA AIR which can also be used for analysis if anyone is interested:
https://www.vguitarforums.com/smf/index.php?topic=28704.0

gumtown

I made this recently, Katana AIR FxFloorBoard editor.
Although it is experimental and does not fully work with the AIR, it can load regular Katana patches in and then save them in AIR Katana format.

download link here
https://sourceforge.net/projects/fxfloorboard/files/AirFxFloorBoard/Desktop-FxFloorBoard/
Free "GR-55 FloorBoard" editor software from https://sourceforge.net/projects/grfloorboard/

Pi3141

Quote from: gumtown on June 08, 2020, 12:06:52 PM
I made this recently, Katana AIR FxFloorBoard editor.
Although it is experimental and does not fully work with the AIR, it can load regular Katana patches in and then save them in AIR Katana format.

download link here
https://sourceforge.net/projects/fxfloorboard/files/AirFxFloorBoard/Desktop-FxFloorBoard/

Very interesting. I just used your AirFxFloorBoard (Mac Version) to open a liveset for Katana and saved one of the contained patches as a Katana Air .tsl file.
Then I opened the file in a text editor and changed the device to from "KATANA-AIR" to "WAZA-AIR".
Finally I imported the .tsl file into the WAZA AIR Tone Studio smartphone app and auditioned the patch.

Unfortunately I don't have a Katana to check how the patch is supposed to sound but there are some discrepancies when I compare the active effects for this patch in AirFxFloorBoard to the active effects in the imported patch on the smartphone.
For example, the booster is set to "Natural OD" in AirFxFloorBoard but the booster in the BTS App on the smartphone is a fuzz. The selected chain in FloorBoard is chain 2 but on the smartphone it's chain 3. Reverb on in FloorBoard, no reverb on in the smartphone app.

I'd guess, the parameter mapping in the .tsl files for Katana Air and WAZA AIR might be different.

gumtown

The file formats are very different,
the AIR is all in sequential hexadecimal midi system exclusive data, encapsulated in a JSON type format.
here is a small part of an AIR patch file
Quote
{
  "name": "test ",
  "formatRev": "0000",
  "device": "KATANA-AIR",
  "data": [
    [{
      "memo": "",
      "paramSet": {
        "User%Patch": ["43", "52", "49", "53", "50", "20", "43", "4C", "45", "41", "4E", "20", "20", "20", "20", "20", "07", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "32", "32", "32", "32", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "01", "2C", "32", "36", "00", "32", "33", "00", "00", "32", "32", "32", "32", "32", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "01", "08", "2C", "0A", "54", "46", "4E", "12", "3C", "00", "01", "00", "32", "00", "01", "01", "05", "64", "00", "00", "32", "32", "00", "00", "32", "32", "32", "07", "0A", "0A", "02", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "32", "0A", "32", "32", "32", "00", "32", "00", "01", "00", "32", "01", "01", "01", "05", "64", "00", "00", "32", "32", "00", "00", "32", "32", "32", "07", "0A", "0A", "02", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "14", "0E", "01", "14", "17", "01", "14", "14", "0E", "14", "00", "00", "00", "00", "01", "03", "0B"


here is a part of WAZA AIR (headphones device) patch file, which is very similar to the AIR patch format,
possibly just changing the "device" type from "Katana-Air" to "WAZA-Air" with a text editor might make them interchangeable.
Quote
{"name":"Export","formatRev":"0000","device":"WAZA-AIR","data":[[{"memo":"","paramSet":{"User%Patch":["57","45","54","20","20","20","20","20","20","20","20","20","20","20","20","20","07","00","00","00","00","00","00","00","00","00","00","00","00","00","00","00","00","00","32","32","32","32","00","00","00","00","00","00","00","00","00","00","00","0A","31","3C","32","00","32","28","00","00","32","32","32","32","32","00","00","00","00","00","00","00","00","00","00","00","00","00","00","00","00","00","01","08","3C","0A","28","28","47","64","64","00","01","00","32","00","01","01","05","64","00","00","32","32","05","05","32","32","32","07","0A","0A","02","00","00","00","00","00","00","00","00","00","00","00","00","00"

and here is a part of a Katana MK2 patch file format, where it uses system exclusive too, but is broken into segmented blocks
Quote
"name":"Katana_2","formatRev":"0001","device":"KATANA MkII","data":[[{"memo":{"memo":"","isToneCentralPatch":true},"paramSet":{"UserPatch%PatchName":["4c","49","51","55","49","44","20","44","52","49","56","45","20","31","20","20"],
"UserPatch%Patch_0":["00","0A","00","3C","32","00","32","4B","00","00","32","32","32","32","32","00","01","17","37","0A","40","24","32","57","11","00",

and here is the Katana original (MK1) format used through all the different firmware levels
Quote
{"version":"1.0.0","device":"GT","liveSetData":{"image":null,"url":null,"orderNumber":5,"id":"4442687544","path":null,"name":"default"},"patchList":[{"note":null,"params":{"exp_pedal_assign_delay":0,"fx2_parametric_eq_high_cut":14,"exp_pedal_assign_reverb":0,"fx2_parametric_eq_level":20,"exp_pedal_assign_chorus":0,"exp_pedal_assign_booster":0,"fx2_tone_modify_type":0,"exp_pedal_assign_flanger":0,"exp_pedal_assign_ring_mod":0,"exp_pedal_assign_phaser":0,"exp_pedal_assign_slow_gear":0,"exp_pedal_assign_rotary":0,"exp_pedal_assign_slicer":0,"fx2_tone_modify_reso":50,"fx2_tone_modify_level":50,"fx2_tone_modify_low":50,"fx2_guitar_sim_type":0,"fx2_tone_modify_high":50,"exp_pedal_assign_uni_v":0,"fx2_guitar_sim_low":50,"exp_pedal_assign_comp":0,"fx2_guitar_sim_high":50,"exp_pedal_assign_limiter":0,"fx2_guitar_sim_level":50,"exp_pedal_assign_t_wah":0,"fx2_guitar_sim_body":50,"exp_pedal_assign_auto_wah":0

Which shows that *.TSL file formats are not all the same.

Free "GR-55 FloorBoard" editor software from https://sourceforge.net/projects/grfloorboard/

Pi3141

Quote from: gumtown on June 08, 2020, 03:36:18 PM
...
here is a part of WAZA AIR (headphones device) patch file, which is very similar to the AIR patch format,
possibly just changing the "device" type from "Katana-Air" to "WAZA-Air" with a text editor might make them interchangeable.
...

That's exactly what I did, making the file importable into WAZA AIR tone studio, but it results in different patch settings than in the Katana Air patch.

How did you figure out, which number in the Katana-Air file corresponds to which patch parameter?

birgerro

Has the situation on converting Katana patches to WAZA AIR .tsl files changed since 2020?

I tried to open a few Katana AIR patches from Boss Tone Exchange on the Waza-Air after changing "device" type from "KATANA-AIR" to "WAZA-AIR". That seemed to work fine when comparing the values in the app with the values in AIR FxFloorBoard (I don't own a Katana-Air). Gain was the only input with incorrect values.

I also tried to open a Katana MK2 patch in AIR FxFloorBoard and save it again for Katana Air, and then changing "device" and opening on the Waza-Air, but in this case there were more wrong values, for instance Amp Type and Booster Type.

birgerro

I'm looking into how patches for the Waza Air is encoded in the .tsl file, starting from the description is tsl-map-1.0.0.csv from https://github.com/katana-dev

The tsl-map lists the indexes for the different data fields in the patches, but says nothing of how the values are encoded. Thus I've made Python code for creating patches from scripts, with tons of enum types, scaling and limits. So far I've looked at AMP types, BST types and MOD/FX types from T.WAH up to HARMONIST, so I guess I'm about halfway through.

If anyone would like to peek at the code, I've uploaded it to github at https://github.com/birgerro/waza-tsl