any max/msp people out there using a Yamaha TX81z?

Mar 29, 2011 at 4:10am

any max/msp people out there using a Yamaha TX81z?

hi,
just got a cheap used TX81z. im interested in building a sysex patch in max/msp to change various parameters.
but sysex gets my head all confused and i cant seem to get it working at all.

anyone out there build a patch for the TX81z that i could have a look at?
more specifically, im trying to format the sysex correctly for use with the sxformat object to send out parameter and value changes to the TX81z.

please help!, im stuck right now…..
thanks, gd

#55894
Mar 29, 2011 at 5:19am

I suspect someone made an editor librarian for this years ago in max (ie version 2) DZ would probably know.
but there is this– don’t know if it’s possible to integrate with max but I assume it would be:

http://www.jsynthlib.org/

#200874
Mar 29, 2011 at 8:37am

It’s not as hard as you think. You just have to read the manual and do a bit of head scratching. It says what it starts and ends with and then the variable numbers in between. Each 8 bit number is represented as a 3 digital number so instead of XXXX XXXX you get 256 or the decimal representation of the 8 binary bits. If you look at the first and last numbers of the TX81z sysex requirements the rest becomes pretty easy.

I got the TX81z a few days ago and I was thinking the same myself (that sysex is hard) but I had a look and a bit of fiddle and it wrecked my head for a bit but then was pretty obvious. Just look at the first and last numbers and I think there is a sxformat object example with a typical Yamaha DX sysex so it starts to make more sense.

Not a patch I am afraid. I found I couldn’t do it in Ableton (as it filters sysex) and have not gone back yet.

#200875
Mar 30, 2011 at 3:40am

ive got some of the numbers correct for the sxformat object (from the manual – but i cant decipher all of what i need), but im afraid something is not right or im missing something, because when i try to change a parameter or value, nothing happens on the TX81z. i feel like im stuck. if you have something thats working with the sxformat object, let me know what the number string is…thanks!

#200876
Mar 30, 2011 at 7:59am

unfortunately it is always a bit difficutl to convert hexadecimal to something else,
because you cant write it in max.

or does anybody eventually build a converter using textfield and sprint?

one could also make a simple document using a resource editor such as
resorcerer. you´d type the desired bytes from the hardware manual into
a hex editor, save it to disk, and read it into maxmsp using [filein] … and voila,
decimal representation.

edit: or cant [capture x] dump out content?

#200877
Aug 2, 2011 at 2:24pm

Um, you can write hex in Max. Just prefix a number with “0x”, e.g. “0×10″ in a message box is converted to “16″ as soon as you’ve finished editing.

I’ve been controlling a TX81Z with SysEx for ages, just with a bunch of [pak] objects, one for each parameter.

Hint: the TX81Z manual has OP2 and OP3 reversed.

#200878
Aug 2, 2011 at 2:28pm

P.S. The bit order for operator on/off is reversed too.

P.P.S. The TX81Z has a feeble MIDI buffer – it gets full pretty quick. Stick a [speedlim 50] between your GUI control and the [pak] (or whatever you’re using to mash the value into a valid sysex message) to lighten the load.

The TX sounds absolutely awesome and glitchy when you mangle these params live… loads of brilliant stepping and spazzing. It’s one of the dirtiest FM synths I’ve ever used.

#200879
Aug 2, 2011 at 3:17pm

@asterisk:

After re-reading this thread I realise this probably wasn’t all that much help to you yet. I don’t have Max on this machine, but here’s an example to get you started…

For VCED parameters:

pseudopatch:
                              [number]
                               |
                              [speedlim 50]
                               |
[pak 0xf0 0x43 0x10* 18 param* i 0xf7]
                               |
                              [midiout]

* 0×10 assuming your TX81Z is set to MIDI Channel 1. For MIDI Channel 2, substitute 0×11. For MIDI Channel 16, substitute 0x1f, etc. etc.

* Stick the desired parameter number from the TX81Z manual here.

For ACED parameters:

pseudopatch:
                              [number]
                               |
                              [speedlim 50]
                               |
[pak 0xf0 0x43 0x10* 19 param* i 0xf7]
                               |
                              [midiout]

* 0×10 assuming your TX81Z is set to MIDI Channel 1. For MIDI Channel 2, substitute 0×11. For MIDI Channel 16, substitute 0x1f, etc. etc.

* Stick the desired parameter number from the TX81Z manual here.

I would post my TX editor, but it’s got a lot more sysex trickery in there that would only serve to confuse. Plus I spent hours on it! ;)

#200880
Aug 2, 2011 at 3:52pm

@christripledot

I’d be real grateful if you would take a moment to explain the function/meaning of the remaining hex values in this list – I’m comtemplating hacking into my DX9 synth via Max, and have no sysex skills.

thanks
Brendan

#200881
Aug 2, 2011 at 4:11pm

Hey Brendan! No problem:

• 0xf0 is always the first byte of a SysEx message. It means “Here comes some SysEx”.

• 0×43 is Yamaha’s manufacturer ID number.

• 0x1n is the basic MIDI receive channel for your device what you want to SysEx, innit. I’m assuming you can count in hex… for MIDI ch. 1, use 0×10. For MIDI ch. 16, use 0x1f.

• After that there is a number that specifies the parameter group. (On my TX81Z a single patch has its editable parameters lumped into two categories. This just tells the TX what category it’s about to mess with.) I’m not sure if any of Yamaha’s other FM synths work this way, but the relevant manuals should provide some illumination.

• Next up is the parameter number itself (see your TX/DX manual for this).

• Then comes the parameter value.

• Finally, 0xf7 means “End of SysEx”.

I highly recommend fucking up your Yamaha with SysEx. Pattr interpolation is asking a bit much – my TX chokes on all the MIDI data, but I’ve had some success by restricting the interpolation to envelopes, operator volumes, and lfo depth/speed. Some smooth morphing is possible, with care, but I find it infinitely more pleasing to just blast it with horrible quantised stepped data… crusty FM zipper noise madness!

HTH!

#200882
Aug 2, 2011 at 4:15pm

P.S. IIRC most of Yamaha’s TX/DX range were patch-compatible; i.e. they used the same patch structure. I know you can load a TX81Z patch into a DX7 and the DX will just ignore any parameters it doesn’t support. I once loaded a bunch of TX816 patches into my TX81Z without a hitch, too.

OT: maaaaahn, I want me a TX816…

#200883
Aug 2, 2011 at 4:30pm

“I´ve got some of the numbers correct for the sxformat object (from the manual – but i cant decipher all of what i need), but im afraid something is not right or im missing something, because when i try to change a parameter or value, nothing happens on the TX81z.”

I use Sysex for my Korg Ex8000. So it works and it even works really good.

One thing was special, as the the [sxformat] uses decimal numbers you really have to translate your Sysex hex-codes/string into decimal. If you don´t it wouldn´t get even the first message-byte (which always is f0 as chris already mentioned – respective 240 in dec, see excerpt below) and therefore nothing at all. [midiout] then translates it to hex (as all midi data is), you dont have to worry about that.

The patch excerpt shows a bit of the possibilities [sxformat] offers – including the built in [expr]-feature. It´s a great tool and the Sysex-Strings have a pretty common structure (Sysex-Start, ID, Midi, Parameter, Value, Sysex-End). Though I have a Lexicon Reflex which is way hard to program, it uses weird value formats which change between several FX-algos. Not sure how compliacted a TX/DX is in that.

– Pasted Max Patch, click to expand. –
#200884
Aug 2, 2011 at 4:33pm

Many thanks; comprehensive and quick reply!

Time to wipe the dust off the old DX9!

Best regards
Brendan

#200885
Aug 3, 2011 at 3:09pm

Let me know how you get on, Brendan.

Oh, and asterisk: I know the thread was well stale when I dived in, but I hope you got your TX and Max playing together. They make a powerful team!

#200886
Aug 12, 2011 at 2:39am

Matt Gregory has a very nice TX81Z editor you may wish to investigate:

http://the-all.org/tx81z/programmer.html

#200887
Aug 12, 2011 at 6:03am

Not Max, but FWIW, some time ago I built a Logic TX81Z environment if anyone needs that (ask) – note due to Logic’s inability to parse the incoming sysex it’s an output-only editor, but you can use it to automate the TX from Logic.

And there’s a Logic environment on my website that converts GM bank/program messages to TX patch-change messages. http://www.opuslocus.com/logic/

#200888
Jul 3, 2013 at 12:06pm

Resurrecting Zombie thread – I dug out the TX81z and started messing with the sysex. Thanks to Christripledot I found it a lot easier. I just started the patch but I thought I would post it up for others who might come across this post.

<code>

– Pasted Max Patch, click to expand. –

</code>

#254875
Jul 7, 2013 at 12:38pm

Hello,

I have completed my TX81z editor. I was trying to set up presets with [pattr] and [preset] but whenever I click a preset the TX81z complains MIDI Buffer Full and the patch does not load correctly. Does anybody know of a way around this?

#255153
Jul 7, 2013 at 6:01pm

One way would be to stagger your preset objects data. Set each delay to a different time.

<code>

– Pasted Max Patch, click to expand. –

</code>

#255166
Jul 8, 2013 at 10:21am

Hi Rick,

I was thinking about doing something like that but there are over 100 or so values so if I give each a 10ms delay the last ones would have a 1 second latency.

Is there any way to stagger/order&delay the values only when they come from the Preset/Pattrstorage?

#255264
Jul 10, 2013 at 1:04am

Delay only on the preset version

<code>

– Pasted Max Patch, click to expand. –

</code>

#255499
Jul 14, 2013 at 2:45pm

Thanks for that Rick – apologies for the delay in reply – it’s been freakily sunny in Ireland so the entire country is staying outdoors for as long a possible before the rain sets in again :)

Your patch looks like it will work. It looks like it’ll mean a bit of a rebuild/rethink but I’ll definitely give it a try. The TX81z is such a beautiful synth that was totally useless to me – now with this patch – the sounds and abstract sequences I’m getting out of it are unbelievable. Thanks again to everyone on the forum for helping me out.

#255999
Jul 15, 2013 at 12:59am

fwiw: Katsuhiro Chiba’s OpFour is a patch compatible clone of the TX81z…

https://www.ableton.com/en/packs/classic-synths/

#256022

You must be logged in to reply to this topic.