Yamaha TG77 Voice Preset - Updated - Aug 16 2026

Hey folks… I’ve been bench testing the sysex and creating a preset for the TG77 with AI assistance.

I’ve shared it in the preset library…

Let me know what you all think and I’m open to changes to make it better. There are some duplicates in the preset with the front page “Performance LIVE” goup. I just put things there that might be joyfully tweakable from the start.

Main or Front page

You’ll see the EXIT and QUIT buttons in the lower right… these are to simulate the TG77 front-panel buttons, they don’t touch parameter data and only function to assist navigation of the TG77’s screen.

EXIT backs out one menu level per press, like pressing EXIT on the TG77 itself.

QUIT exits Edit mode entirely and discards any unsaved changes. It does not store the patch.

Sequence: Tap EXIT, EXIT, QUIT. Two EXIT presses back out of a parameter screen to the main Voice Edit screen. QUIT then exits without saving. Sometimes a patch change helps clear the TG77 screen.

Why they exist: Editing a Voice from the E1 leaves the TG77 sitting in Edit mode. Powering off or switching voices while still in Edit mode risks losing or overwriting the patch. EXIT/QUIT give a safe way out — confirmed on the bench - not perfect but useable.

1 Like

Looks great.. presume this will work with my SY77? Will give it a go and feedback.

Si

1 Like

I think it should work… love some ideas on improving it if you have any

Hi Steven,

I’m trying out the preset basics. Looks promising, but I’m hitting some obstacles.

  • Can’t change the base MIDI channel. Are better said, I can change it to let’s say 7. But when saving and transmitting it’s back to 1. Are you enforcing the MIDI channel somewhere during load?

  • None of the control atrributes are being shown in the editor

  • Cutoff,resonance, Exit and Quit react though, so there are signs of live :slight_smile:

  • Is the preset supposed to parse when selecting a voice (on the right channel) ?

Big errors… I’m on it. It persisted in all of my recent uploaded presets - I’ve fixed them and uploaded the fixes in place of the faulty ones. THANK YOU SO MUCH for finding these.

▎ “Can’t change the base MIDI channel. I can change it to channel 7, but when saving and transmitting it’s back to 1.”

Turns out that’s exactly what was happening, and it’s a good catch. TG77 already had a proper “read the live channel” function (getChannelByte()) that worked correctly — but two other places that actually send MIDI (Program Change, and the SysEx parameter-edit path) never called it. They just had channel 1 baked in as a constant. So switching the channel on the E1 itself genuinely worked — it just never made it into those two message types, which is why it looked like it kept “reverting.”

Fix was straightforward once found: swapped both hardcoded constants for a function that reads the E1’s live channel setting fresh every time a message goes out, instead of a number frozen at load time. Same channel you set on the device is now the channel that actually gets used, everywhere.

2 Likes

And got the control attributes :partying_face:

Web app is using schemaVersion 3 for its .eproj files; my version of Claude Code was exporting and writing with schemaVersion 2. Controls rendered fine, but without the newer format the app couldn’t select them, so the attributes panel never opened.

1 Like

Testing the last version.

  • My TG77 is on Device ID 1. But it shows “ERROR: Device Number Mismatch” on its screen when receiving data from the Preset (for instance when going to page “Effects” or tweaking “Cutoff”). Previous version did not do that.
  • Controls are now showing up on the editor
  • Channel remains on the chosen channel 7. Good!
  • Will you foresee patch parsing? Be sure then to store the various elements and filters in arrays, so when selecting a specific element, all shown parameters change accordingly. This might be quite complicated, so if you plan doing this, first concentrate on this, instead of the visual remarks below.

On the visuals:

  • Page Element/Pitch:
    • If you want some ideas on how to represent Algorithms go check my TX7 preset for some idea’s (operators that output sound are in white, all others are color coded)
    • If possible, name the Coarse / Fine Frequencies. Helps understand FM.
  • Envelopes in general : given the complexity of the TG77 envelopes, it would be nice to have a good visual representation of each of the EG’s, next to the controls.
  • Common/Ctrl: I’d change the Port- pad into a list control with 2 options, and only use pads for real on/off
  • AWM Osc: please name the Waves (show number + name)

Keep up the good work!

1 Like

THANKS for this… I’ll pull the TG77 out onto the desk again tonight and try a few things. LOVE the algorithms in the TX7 and yes I should definitely add that!

I would love an extended ADSR envelope for these kind of synths. Suggestions on the EG graphic? I tried using roomi-fields widgets…( Electra One Widgets ) but I failed LOL

Can you define patch parsing for me? :folded_hands:

I’m sure there are better explanations. But the TG77 can send MIDI information out about all its parameter values for any patch. You can ‘parse’ that information so the mapped parameters on the E1 populate with the corresponding patch values. Why? If the filter envelope attack value is 100 in the loaded patch on the TG77 then it would be nice to have your preset on the E1 to also show 100 for the attack control instead of some fixed default value. Here is a great step-by-step guide and better explanation:

1 Like

Got it! Yes Absolutely I want the E1 to immediately display the patch parameters when a new patch is loaded… I’ll dig into that ASAP

I tried working on a MULTI preset for the TG77. I think once I get this one in better shape I can revisit it with all the appropriate updates and we can get some communal input on what will make the preset as functional as possible. I envision these hardware synths not immediately in front of us which is where the E1 shines… Anywho. thanks kiwigrass!

Be aware. The complexity of the TG_SY77 sysex replies to patch dump requests is that the answer differs on the combination of AWM and AFM used. So the regular parsing as foreseen on the E1 will not work. Claude might help solve the puzzle.

Parsing is the meticulous craft, art and joy to convert received sysex patch bits and bytes into values that are meaningful and controllable by musicians loving a particular instrument .

My own definition:-D

3 Likes

Got a Device No. on screen of the E1… so now you can pick and change the TG77’s device number on the E1 and push it to change it… working on the patch parsing. Got about 30% done last night.

Seriously would love some ideas for graphics for the EG’s

More work on it tonight

1 Like

Use the four stage EG for all EG’s, but do realise Level 4 does control both the start level as well as the end level of the EG which is a pity. so you could use it for PEG for instance, but not for start and end level, for which you then better use a classic fader like you do already.

For the rest, I first need to delve a bit in the old TG77 manual. It’s been ages I’ve programmed that synth, so it’s gonna take me a while to figure out what a good UI would look like.

New update with graphics for the Algorithms and patch parsing…

I would love a graphical envelope that could handle the complexity of this thing.

1 Like

Lots of good stuff in this update.

Big difference on the OP EG page

The new page I hope is more condusive to experimenting… the other seemed a bit clinical


So now you can select the Operator and have the paramaeters on a graph

But I added a GANG function… for some experimenting or performace where you can gang different parameters from within an Operator or across all of the operators. Here’s how it works.

GANG SYSTEM — HOW IT WORKS

Page 2 (OP EG), bottom row. Three gangs, side by side: Gang 1, Gang 2, Gang 3. Each has a knob and a button.

What it does

A gang lets one knob move several OP EG parameters at once, by the same amount.

Building a gang

  1. Press the gang’s button once. It changes to “On” — the gang is now collecting.
  2. Touch any of the 13 OP EG knobs on the page (Rate 1-4, Level 1-4, Hold, Rel-Rate, Rel-Level, L0), for whichever operator is currently selected. Each touch adds that parameter to the gang; touch again to remove it. Must be a real physical touch — a screen tap moves the value instead of collecting it. You can switch operators mid-collection, which is how you gang the same parameter across operators (e.g. L0 on Op1 + L0 on Op3).
  3. Press the button again. With at least 2 parameters collected, it goes to “Latch” and the gang’s knob goes live. Fewer than 2, and it drops back to “Off” — nothing built.
  4. Turn the gang’s knob. Every member moves together, live.
  5. Press the button do eliminate the Gang

Below the envelope graph, each active/collecting gang prints its current member list, so you can see what you’ve built before committing.

Limitations

  • No save. Gangs exist only in live memory. A power cycle or a new preset push clears all three back to “Off” — nothing persists, no way to recall a built gang later.
  • No hard size cap. The system doesn’t stop you at a fixed member count — the only real ceiling is 13 parameters per operator times however many operators you cycle through while collecting. The only enforced rule is the floor: 2 minimum, or the gang won’t latch.
  • Relative, not absolute. The knob shifts every member by the same delta from wherever it already sat — it doesn’t snap them all to one value. Deliberate, since a gang can mix parameters with no common scale (a rate and a hold time, for instance).

Few other tweaks in there

Thanks SO MUCH to NewIgnis for helping

3 Likes
  • Gang NEG-arm —

How to GANG Operators (GANG 1 example)

GANG 1 KNOB does nothing until you’ve assigned at lease one parameter from the EG OP.

Press the GANG 1 OFF pad on the E1 screen or move the knob associated.

This changes the colour from RED to GREEN and it says GANG 1 ON
knob tapping here does nothing

Now select any parameter from any OPerator and beging collecting these in a GANG… in this case GANG 1.

Now to add parameters

Navigate to the parameters on the E1 display and select each parameter by touching/tapping the physical knob alighed with it on the screen and it immediately is listed as YELLOW text on the screen and added to the GANG 1.

Touching the screen to add parameters does not work, the knob tap/touch does the “add to GANG” function.

Each parameter added to the GANG will then be under the control of the GANG 1 KNOB. Movement of the single GANG 1 KNOB will move all the parameters in the GANG by equal incremental or decremental steps.

NEGATIVE movement

To add a NEGATIVE parameter, navigate to the GANG 1 KNOB, tap the knob and it will turn from PURPLE to RED, now navigate to the parameter you which to add and select it as you have done previously; by touching the knob aligned/associated with the button/pad/parameter.

GANG 1 KNOB immediately reverts to PURPLE. Each successive parameter to be added with a NEGATIVE response must be added the same way.

The GANG 1 KNOB

***To affect your GANG control, while the GANG 1 KNOB is PURPLE

  • Tap the GANG 1 ON GREEN button or move it’s KNOB
  • Pad changes to GANG 1 Latch.***

You have now successfully built your own OPerator GANG.

Now by moving the GANG 1 KNOB (PURPLE) you will see the gang in action.

1 Like