Yamaha TG33

I’m handling more than 600+ bytes in sysex messages.

That is definitely an old limit. No idea what the max is, but I’m passing 1421 bytes with the PCM 80 editor

4 Likes

I messaged the guy at patchbase to see if he can provide the sysex documentation for the 2 op fm waveforms.

I am honestly horrible with anything computer related. If anyone would be willing to update this preset, I would provide some financial compensation

The mk2 does not impose limits on sysex messages. The only soft restriction is a limit of 512 bytes on sysex templates entered in the web editor. I am quite sure this would not be handled as an individual sysex template. From my perspective, the preset can be extended with that functionality.

1 Like

I got a response from the guy who built the Patchbase editor. Please see below:

" On Page 116 in that PDF you’ll see the descriptions of the different bytes in a TG33 patch dump. If you look under Element B (the first FM element of a patch), the “CONNECT” bits are the algorithm select (shown in Patch Base as FM or Mix). All of those different labeled areas represent the different FM parameters. Below I’m pasting some (lightly edited for intelligibilty) code from the Patch Base editor that should give a better idea of what those different bytes are. The part on the left with “[[” is basically the name of the parameter, and then the byte number, the bits within that byte, and ranges are given.

Hopefully you can make sense of the pseudo-code below, but I’m happy to answer any questions on it. I’m not interested in hoarding any of this undocumented stuff; it just takes time to make it publicly presentable so it’s hard for me to get around to it !

[[.detune]] = (byte: 0x5c, bits: 0…3, maxVal: 15)
[[.scale]] = (byte: 0x5c, bits: 4…5, maxVal: 3)

[[.algo]] = (byte: 0x48, bit: 4, options: [“FM”,“Mix”])

[[.wave, .type]] = (byte: 0x5a, bits: 4…6, options: opWaveOptions)
[[.ratio]] = (byte: 0x5a, bits: 0…3, maxVal: 15)
[[.fixed]] = (byte: 0x59, bit: 0)
[[.amp, .mod]] = (byte: 0x45, bit: 5)
[[.pitch, .mod]] = (byte: 0x46, bit: 6)

[[.mod, .detune]] = (byte: 0x4c, bits: 0…3, maxVal: 15)
[[.mod, .scale]] = (byte: 0x4c, bits: 4…5, maxVal: 3)
[[.mod, .wave, .type]] = (byte: 0x4a, bits: 4…6, options: opWaveOptions)
[[.mod, .ratio]] = (byte: 0x4a, bits: 0…3, maxVal: 15)
[[.mod, .fixed]] = (byte: 0x49, bit: 0)
[[.mod, .amp, .mod]] = (byte: 0x45, bit: 4)
[[.mod, .pitch, .mod]] = (byte: 0x46, bit: 5)

[[.mod, .env, .level, .scale]] = (byte: 0x4e, bits: 4…6, options: levelScalingOptions)
[[.mod, .env, .rate, .scale]] = (byte: 0x4e, bits: 0…3, maxVal: 7, displayOffset: 1)
[[.mod, .env, .delay]] = (byte: 0x4f, maxVal: 1)
[[.mod, .env, .attack, .rate]] = (byte: 0x50, bits: 0…5, options: options99for63)
[[.mod, .env, .decay, .i(0), .rate]] = (byte: 0x52, bits: 0…5, options: options99for63)
[[.mod, .env, .decay, .i(1), .rate]] = (byte: 0x53, bits: 0…5, options: options99for63)
[[.mod, .env, .release, .rate]] = (byte: 0x54, bits: 0…5, options: options99for63)
[[.mod, .env, .innit, .level]] = (byte: 0x55, options: inverseOptions99)
[[.mod, .env, .attack, .level]] = (byte: 0x56, options: inverseOptions99)
[[.mod, .env, .decay, .i(0), .level]] = (byte: 0x57, options: inverseOptions99)
[[.mod, .env, .decay, .i(1), .level]] = (byte: 0x58, options: inverseOptions99)

1 Like

and this is one reason why I sold my TG-77, TX-802, and TX-816.

lol

Well, they sound great. Would be lovely to get this preset completed if anyone is feeling up to it. I’m too much of a luddite to do it :-/

I had a working TX7, but it’s not consistent with the latest firmware versions anymore. I will need to do an update to get it responsive again.
I’ve got a TG77 stashed, but it is a quite complicated sysEx implementation whereby the bytes differ in meaning and the message differs in length depending on the way the patches where made (AFM or AWM, 1 or 2 elements etc)) . Quite complicated.

I’m therefor first focusing on a XV5080 from Roland. Also complex, but less than a TG77 by the looks of it.
How is the sysEx of a TG33? If you request a patch dump from memory, is the sysEx response always of same length and meaning?

2 Likes

Yes, according to the Patchbase creator. All the sysex documentation is at the end of the TG33 manual as well.

Had a quick look at it. Typical complex way from Yamaha to describe MIDI sysEx. It does not look straightforward at first sight. You’ll need to dive deep. I’m not diving into it at this moment. Sorry

1 Like

understood. This stuff is way above my pay grade and time availabilities. Just seeing what is possible with the device and maximizing its potential for the gear I have

1 Like

Hi all,

I’m currently working on extending this TG33 preset, I had been chatting in a seperate thread but have migrated here to keep things easier, since I’m effectively working on the stuhoss preset.

With some beginners luck, some help from this forum and some reverse engineering, I’ve achieved the following:

  • Single voice patch request works, the TG33 now dumps to my Electra One Mk ii on command.
  • Some of the parameters are now being matched up, more being added bit by bit.

Obviously this will take some time, I am a total SySex noob having begun learning about it only last week once the Electra One arrived, and the Yamaha documentation is a little opaque.

I have the 2OP control on the list for sure, for once the main patch request is fully linked up and any bugs in this preset are ironed out.

It’s perfectly possible that it’s a bit too hard to get the 2OP functioning if it’s similar to the PSS480, which I’m also working on. This requires the entire sysex patch and a programme change to be sent with every single parameter change, which I’ve not yet implemented due to how entangled it is and my current lack of Lua ability,

It’s on the list though,

3 Likes

Looking forward to what you come up with and thank you so much! Would assigning a knob on the electra one to the joystick be something feasible? I love manipulating it in real time but sometimes im at a piece of gear on the other side of the rig and cant reach it haha. Would be super cool to do it right from the electra one which sits glued next to my fx rack, mixer, interface and tape machine…

I’m not sure just yet, I’m quite a beginner, but willing to try to get this up and running as best I can :+1:

The X and Y movements of the joystick can be controlled with regular midi ccs - 16 for X, 17 for Y.
Just add two new controls with those Midi CCs to the preset and you’re all set!

1 Like

Thats great youve been able to make the patch request work. Best of luck with the rest of the changes you’re making!

1 Like

Thanks Stu! I’ll add the CCs, here’s hoping I can get the rest running, I’ll pop back intermittently as I make progress and hit snags, I’ll likely publish a work in progress version once I’ve hooked up a decent amount of things so anyone willing can help debug etc.

1 Like

Would probably make the most sense for them to be on some sort of XY axis touch pad…most similar to the joystick itself. I think I recall a thread here where Martin said that the newest firmware would have touchpad capabilities, but I still need to DL it.

I’ve currently put the X Y in as just two sliders, I’ve not seen info about creating a touchpad, that would be very cool though.

2 Likes

To be clear, I could be totally mistaken on the XY thing. Looking forward to seeing what you accomplish with this though! I don’t use my TG33 enough due to how annoying it is to edit lol.

1 Like

I will get a copy of the preset and will add XY pad (XY Pad) to it.

2 Likes