Page 1 of 1

YAMAHA TG-500 programming issues. Help appreciated

Posted: Mon Apr 30, 2018 7:09 am
by JosephGeha
I have a YAMAHA TG-500 unit that I am controlling from a Roland W-30 keypad through MIDI. I am also using the W-30 16-track midi sequencer to record the notes and events of my songs and play them back through the TG-500. The sequencer is identical to the Roland MC-500.

So far everything is good. I have been able to control successfully with the sequencer the TG-500 parameters such as choosing which instruments to play on the MIDI channels and implement changes in volume, pan, sustain as as well as bank and program change commands (for example to change volume I inset a control change that looks like this :" 2 *c.chg 7 100 " where 2 is the Midi channel, 7 is control command for volume and 100 is the volume value.

I have been trying to control several other parameters than the obvious ones listed above and this is where I am facing some difficulty. According to the YAMAHA manual and MIDI implementation chart almost all parameters of the TG-500 are controllable through MIDI control change such as: (for example) VCO waveform, filter cutoff, resonance, LFO, VCA parameters, effects (reverb, chorus, echo, etc.. and various effects parameters). I just can't figure out which commands to insert and whether I need sysex commands or not. I tried to read the MIDI chart table that lists every controllable parameter and I failed to understand it. I also tried to search online but did not find anything meaningful. I am an electronics engineer and I should understand the stuff!

I am therefore appealing to the musicians who have handled this type of problems before to guide me, especially if they are familiar with MC-300 or MC-500 sequencer micro edit function syntax.. I do not have a MIDI controller keyboard to experiment with.

Thanks in advance.

Re: YAMAHA TG-500 programming issues. Help appreciated

Posted: Mon Apr 30, 2018 4:49 pm
by JosephGeha
After having posted my intial text, i thought that it is a bit vague. So i made this one with more details:

I am an owner of a YAMAHA TG-500. For control I use a Roland W-30 keyboard and built-in 16-track MIDI sequencer.

I control various TG-500 parameters through a control change command such as volume, pan, sustain, pitch bend and banks select as well as choosing performance, multi set-ups or voices.

Recently I have been interested in controlling more TG-500 parameters (such as filter sweep or resonance for example) and this is where I am facing few snags. I have read the TG-500 MIDI data format document which lists all the controllable parameters through MIDI sysex commands. But it did not work so far.

The unit is in multimode (internal set 1 for example) with delay and phase chosen as global effects.

I have chosen a piano voice patch on MIDI channel 1 and set the effects send manually at a value of 101

I want to control through MIDI the amount of effect applied to piano, for example set it to 0 (zero) at the start of the song and then somewhere in the middle of the song set it to 90. I have looked at the MIDI chart and the syntax looks like this (Page 4 of the MIDI chart):

(1) MIDI Parameter Change table ( Multi )

$F0 $43 $1n $29 $00 sub_group p_msb p_lsb v_msb v_lsb,$F7

Note) n ; Device Number
s ; parameter sub_group number
p; parameter number
v; parameter value

So the syntax should look something like:

F0 43 $1n 29 00 sub-group p_msb p_lsb v_msb v_lsb F7

Looking at the chart (page 5), s = 1 (instrument 1 piano)
P = 7 (instrument effect send) and
Value = 0 (no effect)

I inserted : F0 43 11 29 00 01 07 00 F7 and sent the command but nothing happened.

I then changed it to F0 43 11 29 00 01 07 00 00 00 F7 again nothing happened.

I read somewhere that 7F was for all receive so I changed the MIDI receive channel to all and inserted F0 43 7F …….. and tried both versions but again nothing happened.

I must be doing something wrong. Can anyone assist me?

By the way if I want to change the instrument memory bank through sysex (parameter 1 of chart on page 5) how is this done? It looks like there are 3 parameters that must be written (inst memory bank, inst memory and off/on for ind1..4)

I tried to attach the MIDI chart showing page 5 but i did not know how. It can be easily fund online by searching for "TG-500 MIDI chart" . Thanks in advance.

Re: YAMAHA TG-500 programming issues. Help appreciated

Posted: Tue May 22, 2018 9:56 pm
by Tai
I wouldn‘t try to set parameters wit Sysex Messages. Starting with F0 and ends with F7 is a Sys ex Message. A look into the MIIDI Implementation tells us, that TG500 effects could be set with Controller Messages Number 16 and the Value 0-127. That’s much easier. Three Bytes, the first telling: i‘m a controller message on channel x, the second: i want to change rhe effect (16) with the amount of the third Byte.

Sysex Messages are not allowed to be interrupted, often not recognized by certain devices or filtered by default. All this is no problem for a controller message.

Re: YAMAHA TG-500 programming issues. Help appreciated

Posted: Fri Mar 15, 2019 6:56 pm
by Amalgam
Hey Joseph,

How did your sysex programming work out for you? I'm currently also struggling to get my controller more in sync with my TG500. So far, the best I can get is setting 4 MC parameters via the TG itself (which is extremely limited), but it's a whole different story when I want to let my controller (an Arturia Keylab) send sysex messages to the TG, so I could also assign ADSR filter and amp settings.
Question: What string of hexadecimal numbers should I insert in the Sysex message in the Event Editor Window of Logic Pro X in order to control the ADSR's? (via CC75, CC73, etc.)
The best I can get is to get the string to identify the TG as a Yamaha unit, but that's about it ("F0 43...").


Pal Meentzen

Re: YAMAHA TG-500 programming issues. Help appreciated

Posted: Fri Mar 15, 2019 9:52 pm
by desmond
I'm pretty sure the full sysex spec is documented in the manual. I don't have the TG500, but do have the RM50, which is the same module/engine (albeit focused on drums) and I wrote my own sysex editors for it back in the day - the spec is fairly straightforward, from what I remember...

Re: YAMAHA TG-500 programming issues. Help appreciated

Posted: Sat Mar 16, 2019 1:09 am
by Amalgam
Okay, I'll try to describe my issue as precisely as I can:

This is the basic code for the sysex message string


And this is the Event Editor in Logic in which I should insert such a sysex message string. And at each 0 two numbers can be inserted.


In order for me to get it right, I must find out how to define a s.m.s. that works.
Let's say I want to get my AMP Attack in sync with the TG500. It's CC #80 on the controller.
The hexadecimal number for 80 is 50.

I begin with $F0 followed by $F43 for Yamaha, followed by $1n (the n refers to the device number, I don't know what that is, but I assume the n should be a 0 here, hence I say '$10') Next I put in $29 $01 (as per the command line) (followed by subgroup Layer) 1 (I guess '01' here, followed by) 13 (because that's the number for Layer Parameter AEG R1, more or less the Amp Attack) (followed by MSB) 64 (=100 decimal) (followed by LSB) 0 (followed by Parameter Value) 50 (=80 decimal) followed by 63 (MSB) and finally 50 followed by 0 (LSB), ending the string with $F7.

Nope. It's not working. What am I doing wrong here?