Programming SySex on TG77

Yamaha SY77 is a 16 voice multitimbral music workstation first produced by Yamaha Corporation in 1989. The SY77 is a synthesizer whose architecture combines AFM (Advanced Frequency Modulation) synthesis, AWM2 (Advanced Wave Memory 2) for ROM-borne sample-based synthesis, and the combination of these two methods christened Realtime Convolution and Modulation Synthesis (RCM).

Moderators: Derek, parametric, Saul

User avatar United States of America
EricaEsoMusic
Member
Member
Posts: 17
Joined: Thu Jun 13, 2019 9:49 pm
Contact:

Programming SySex on TG77

Unread post by EricaEsoMusic » Thu Jul 11, 2019 1:46 am

Hello everyone,

As the assignable CC list is limited on the TG77, I'd like to learn how to control parameter changes via SySex. I've done a bunch of research and am beginning to understand but need some help.

Can anyone break down exactly what each byte does in a SySex thread for this synth? I see in the MIDI Data Format booklet that each SySex command has 11 bytes but I only understand what some of them do.

An example of one thing I want to do (and am having a problem with) is adjust the volume of each Element with an assignable fader or knob on my Novation SL mkii Midi Keyboard. One fader controlling the volume of Element 1 and another fader controlling the volume of Element 2.

On page 8 <Table 1-4> of the MIDI Data Format booklet I see the following string which I suspect could help me do this but I only understand some of it.

$F0- beginning of sequence
$43- ID number
$1n- device number
$34- ??
$03- ??
T2- choose value from table 1. element 1= $00, element 2=$20, element 3= $40, element 4=$60
$00- ??
N2- parameter number. In this example $00 effects Element Level
$00- ??
V2- LSB ??
$F7- end of sequence

I did my best to program the correct byte string but whatever value I set to V2, the element level just jumps to that value when I move the fader and then just stays there, is stuck. How do I get a full range of values 0-127 so that when I move the fader from down to up, the element vol goes from 00-127?

is it with LSB/MSB? How do I do that when this sequence only has LSB and no MSB? I see other strings in the Midi Data Booklet that contain both V1 (MSB) and V2 (LSB) but this parameter doesn't seem to have that option.

Looking to learn any all things SySex and thanks for the help!
Advertisement
1000 Free EDM Samples
User avatar Wales
Derek
Global Moderator
Global Moderator
Posts: 4922
Joined: Fri Dec 07, 2007 1:00 am
Contact:

Re: Programming SySex on TG77

Unread post by Derek » Thu Jul 11, 2019 5:40 am

I do a lot with SYSEX, so can reply later on tonight if nobody else gets there first :)
Regards
Derek Cook

http://www.carregddu.co.uk
http://www.echoes-music.co.uk
http://www.xfactory-librarians.co.uk
http://www.ex5tech.co.uk
User avatar South Africa
jnm2
Member
Member
Posts: 73
Joined: Tue Aug 21, 2018 9:15 am

Re: Programming SySex on TG77

Unread post by jnm2 » Thu Jul 11, 2019 8:56 am

Be aware that sysex messages take much more time to send and recieve, so you can easaly let things get 'stuck'.
Assignable controllers where also designed to prevent this.
User avatar Wales
Derek
Global Moderator
Global Moderator
Posts: 4922
Joined: Fri Dec 07, 2007 1:00 am
Contact:

Re: Programming SySex on TG77

Unread post by Derek » Thu Jul 11, 2019 7:46 pm

Hi, well that command string is working fine here, programming it in MIDIOX and manually typing values (always a good way to experiment with SYSEX). :)

I assume you mean when changing the fader, you mean some fader of an external device that you have programmed, not the data slider on the TG77. I can't comment on why it is behaving as you describe, other than on some devices you can program the slider/fader to jump immediately to the new value, or it waits until it "catches" the current value, and then you will see adjustments.

For the actual, message decoding, I have taken your list and clarified/corrected it. Don't forget that MIDI data can only use 7 bit encoding in bytes as the MSB indicates a MIDI command. So data encoded in more than seven bits requires additional bytes, and you need to work out how to split it.

In a pseudo programming language representation

14 bit value LSB = value AND $7F
14 bit value MSB = ( value SHIFT RIGHT 7 BITS ) AND $7F

As a 16 bit WORD can encode 16 bits, the two top most significant bits must always be zero

To get V1 and V2 back to a data value, then that is ( LSB OR ( MSB SHIFT LEFT 7 BITS) )

$F0 - beginning of SYSEX Message
$43 - Indicates that this is a SYSEX message for a Yamaha synth ($43 is Yamaha's Midi Manufacturer's Association assigned ID)
$1n - Top four nibbles indicate that is a parameter change message. Bottom four nibbles is the SYSEX device number
$34 - Indicates that this is SYSEX data for an SY77/TG77 device
$03 - Access for variables in Table 1-4
$T2 - choose value from table 1. element 1= $00, element 2=$20, element 3= $40, element 4=$60
$00 - Top 7 bits of parameter number. Not used in most tables, so zero, but look at Table 1-12 (Microtuning) which has 138 addressable parameters (more than can be encoded in 7 bits)
$N2 - Bottom 7 bits of parameter number. In this example $00 effects Element Level
$00 - Top 7 bits of 14 bit value, not used in Table 1-4 (but look at Table 1-5, where it is used)
$V2 - Bottom 7 bits of 14 bit value
$F7 - end of SYSEX Message

As I said, I can verify that this command works as expected with my TG77 when type the command in MIDIOX and sending it.

HTH.
Regards
Derek Cook

http://www.carregddu.co.uk
http://www.echoes-music.co.uk
http://www.xfactory-librarians.co.uk
http://www.ex5tech.co.uk
User avatar United States of America
EricaEsoMusic
Member
Member
Posts: 17
Joined: Thu Jun 13, 2019 9:49 pm
Contact:

Re: Programming SySex on TG77

Unread post by EricaEsoMusic » Fri Jul 12, 2019 4:30 am

Derek, thanks for taking the time to break this all down. Extremely helpful. I'll have time early next week to dig into all this and will keep you posted.

More soon and again thanks!
-Weston
User avatar United States of America
EricaEsoMusic
Member
Member
Posts: 17
Joined: Thu Jun 13, 2019 9:49 pm
Contact:

Re: Programming SySex on TG77

Unread post by EricaEsoMusic » Thu Jul 18, 2019 9:24 pm

Ok, I figured out my hang up. Basically the fader on my midi controller was just freezing at whatever value I set the V2 to. What I didn't understand was to set the V2 Byte value to a DV (in Novation language) or Data Variable. Once I programmed my KB to have a DV on the V2 Byte, everything came together and the fader on my midi kb now varies from 00 to 127.

For my compositional purposes, I think I have what I need. However some SySex terms are still obscure to me. Can you recommend a comprehensive book to read that break down all things SySex?

Whats been really helpful for my workflow in identifying the SySex parameters I'd like to control with my KB, is running a Midi out from the TG77 and feeding into my computer and using the application MIDI Monitor to automatically identify the SySex code. This saves me a lot of time flipping thru the Yamaha DATA sheet and just stream lines the whole process.

Thanks
-Weston
User avatar Wales
Derek
Global Moderator
Global Moderator
Posts: 4922
Joined: Fri Dec 07, 2007 1:00 am
Contact:

Re: Programming SySex on TG77

Unread post by Derek » Thu Jul 18, 2019 10:49 pm

Glad you have it working.
Regards
Derek Cook

http://www.carregddu.co.uk
http://www.echoes-music.co.uk
http://www.xfactory-librarians.co.uk
http://www.ex5tech.co.uk
Post Reply

Return to “Yamaha SY77 Forum - Covers the Sy77 Keyboard and TG77 Module”