Help understanding QY700 Midi Implementation Chart

Started by Carson, Jan 05, 2025, 07:00 PM

Previous topic - Next topic

Carson

Forgive me if this info exists elsewhere in this forum, I'm new to customizing sysex messages and the other topics I've looked through so far haven't really cleared it up much. I have seen a lot of tips on editing parameters for various other synths, but just for peace of mind I was wondering if someone could tell me which parts of the address are necessary for my particular sequencer. I'm trying to enter sysex commands into the sequencer lines to modify per step effects parameters and to access various other tone shaping controls that are inaccessible in the internal menus. Here's some excerpts from the Reference Listings that I'm looking at:

Guets are not allowed to view links. In order to access the links, please Register or Login

(3-6-5)XG PARAMETER REQUEST
11110000 F0 Exclusive status
01000011 43 YAMAHA ID
0011nnnn 3n device Number
01001100 4C Model ID
0aaaaaaa aaaaaaa Address High
0aaaaaaa aaaaaaa Address Mid
0aaaaaaa aaaaaaa Address Low
11110111 F7 End of Exclusive


Address  Size Data   Parameter Name          Description                 
H        H    H
02 01 40 2    00..7F Variation Type MSB      refer to Ef. Parameter List  "05(=DELAY L,C,R)"
              00..7F Variation Type LSB      00 : basic type
V  V  V  V      V                                V                          V
      4A 2    00..7F Variation Param 5 MSB   refer to Ef. Parameter List  depends on vari.type
              00..7F Variation Param 6 LSB
V  V  V  V      V                                V                          V


VARIATION TYPE(0 '63)
TYPE MSB TYPE LSB
DEC HEX 00            01             02
000 0  [00]No Effect
001 1  [01]Rev Hall 1 [02]Rev Hall 2
002 2  [03]Rev Room 1 [04]Rev Room 2 [05]Rev Room 3
003 3  [06]Rev Stage1 [07]Rev Stage2
004 4  [08]Rev Plate
005 5  [09]DelayL,C,R
006 6  [10]Delay L,R

I've been trying to adjust the feedback for the Delay L,C,R variation. Couple of things I'm not sure about. For XG parameter requests it says device ID 3n but I couldn't find anything in the document that suggested what n equals. Do I just enter 30 for device ID? Also in the parameter list there is a column for size that's either a 1 or 2 usually. Is that something that needs to be added into the line or is that just just a way of keeping track of how many bytes are expected for each change when reading the reference list?
Here's what I have so far:

     Yamaha Device  Model ID  Address (Param 5 MSB)       Value       Delay  L,C,R
F0 43          30        4C              02 01     4A                          7F            05                F7

This doesn't give me an error but I obviously have something wrong. I'm trying, but I don't really understand sysex formatting and how it relates to the Yamaha reference listings. If someone could point out my errors or give me some tips that would be great. I'm pretty sure my problem has something to do with not knowing whether the Delay variation type needs to be identified separately of the parameter address.
  •  

GeirH

Hi Carson,

Although the MIDI Data Format tables have a logic to them, they are huge and dense with information. Most of it has to be cross-referenced with several other tables in order to be useful, and even those experienced with MIDI may struggle to digest it all. There are ways to simplify things a bit, though, so here's a couple of suggestions:

Because the built-in tone generator of the QY700 (which includes the effects) is XG-compatible, it has the same basic parameters - and will respond to the same SysEx messages - as every other XG device. If you prefer the hands-on approach and want to test more messages to get the ball rolling, instead of getting yourself bogged down in the manual, I would recommend visiting the Guets are not allowed to view links. In order to access the links, please Register or Login website. Although it hasn't been updated in years, the contents are still highly relevant; Among other things, you'll find all of the basic Guets are not allowed to view links. In order to access the links, please Register or Login [*] listed, each with its complete SysEx string (all you have to do is calculate and substitute the value bytes). It is all presented in a straightforward way, and is a lot easier to navigate than the MIDI Data Format table. An invaluable source for learning, in my opinion!

  • Some XG devices have capabilities that go beyond what is listed on the website. The sequencer section of the QY700 is one such example; It can also be controlled via SysEx, but I believe those parameters are unique to the QY/QS series. The MIDI Data Format table has a separate chapter about it, if you want to dig deeper at some point.

My next tip is perhaps more of a hit-and-miss affair, but I'll mention it anyway: If your MIDI setup includes a computer (not that likely since you're working on a hardware sequencer), know that it is possible to control the QY700 tone generator from the computer via MIDI, using software applications like Guets are not allowed to view links. In order to access the links, please Register or Login or Guets are not allowed to view links. In order to access the links, please Register or Login. They let you edit parameters in real-time through a graphical user interface, and you can record or import the corresponding MIDI data to the QY700.

Now, on to your specific questions:

Quote from: Carson on Jan 05, 2025, 07:00 PMCouple of things I'm not sure about. For XG parameter requests it says device ID 3n but I couldn't find anything in the document that suggested what n equals. Do I just enter 30 for device ID?

The n in the Device ID is simply the MIDI Device Number (0-15 or 0-F), which is a setting you can change on many instruments (necessary to differentiate between two or more identical instruments connected to the same MIDI system), and that has to be reflected here. As far as I can tell, the QY700 doesn't have this setting, so n=0 is probably correct.
 

Quote from: Carson on Jan 05, 2025, 07:00 PMAlso in the parameter list there is a column for size that's either a 1 or 2 usually. Is that something that needs to be added into the line or is that just just a way of keeping track of how many bytes are expected for each change when reading the reference list?

It's just the number of data bytes expected for each parameter, and doesn't figure in the actual SysEx message.


Quote from: Carson on Jan 05, 2025, 07:00 PMI've been trying to adjust the feedback for the Delay L,C,R variation. (...) Here's what I have so far:

    Yamaha Device  Model ID  Address (Param 5 MSB)      Value      Delay  L,C,R
F0 43          30        4C              02 01    4A                          7F            05                F7

This doesn't give me an error but I obviously have something wrong.

If I'm not mistaken, the Device ID should be 10 instead of 30. The message is therefore probably ignored by the QY700, or possibly interpreted as a Parameter Request.


Quote from: Carson on Jan 05, 2025, 07:00 PMGuets are not allowed to view links. In order to access the links, please Register or Login

(3-6-5)XG PARAMETER REQUEST
11110000 F0 Exclusive status
01000011 43 YAMAHA ID
0011nnnn 3n device Number
01001100 4C Model ID
0aaaaaaa aaaaaaa Address High
0aaaaaaa aaaaaaa Address Mid
0aaaaaaa aaaaaaa Address Low
11110111 F7 End of Exclusive

Sending a Parameter Request command to a device will not change the parameter, but instead prompts the device to return the current value of that parameter. It's a way to read a specific memory location on the device (i.e. "What's your Delay L,C,R Feedback value right now?"), which can be useful in some scenarios. To make changes, though, we instead have to study the Parameter Change subsection.

If you would like a more in-depth explanation on how to find what you need in the manual, I'll get back to you on that.

- H -
Yamaha EX5R, S90ES, Motif ES7, Motif-Rack ES, MU2000EX, PLG150-AN, PLG150-DX, PLG150-VL, PLG100-VH, AN200, DM2000, XGworks, SQ01, SOL2, Roland D-50, D-550, JD-990, JX8P, MKS-70, Korg DW8000, Radias, Ensoniq SD-1
  •  
    The following users thanked this post: Carson

GeirH

...and welcome to the forum, by the way!  :)


Quote from: Carson on Jan 05, 2025, 07:00 PMForgive me if this info exists elsewhere in this forum, I'm new to customizing sysex messages (...)

No problem at all. I didn't check, but if it exists, it bears repeating.

- H -
Yamaha EX5R, S90ES, Motif ES7, Motif-Rack ES, MU2000EX, PLG150-AN, PLG150-DX, PLG150-VL, PLG100-VH, AN200, DM2000, XGworks, SQ01, SOL2, Roland D-50, D-550, JD-990, JX8P, MKS-70, Korg DW8000, Radias, Ensoniq SD-1
  •  
    The following users thanked this post: Carson

Carson

Thanks for taking a look at my bumbling attempt to learn.

I forgot I already have some tools to figure this out. I was able to use midi-ox to show me the sysex changes to the effects parameters...at least the parameters there are controls for in the QY700 UI. But that gave me the evidence I needed to work out how to control the hidden parameters. I even managed to figure out how to use one sequencer channel/track to control the channel messages of another track which allowed me to have a sequence of pan/volume automation that I could turn on and off by muting the track - that track only contains sysex commands. Some extra care is needed to return the track to a default state when muting the sysex sequence.   

I realize I was over complicating the format stuff before. Some of the these midi implementation sheets aren't exactly the easiest to work through, but every success clarifies other sections of the list, so little by little...

However this next problem has me stumped. I see this part of the reference list that seems to suggest there's a way to use sysex to change the sections (A-H) in the pattern sequencer and I would really love to map the section changes to soft buttons on a midi controller because otherwise the UI makes me scroll all the way through the track list back to the top of the screen in order to switch the sections. The QY700 uses somewhat confusing terms for the sequencer and I'm not sure how much of this format carried over into the newer workstations. The pattern sequencer is divided into Styles that each contain 8 Sections (A-H) that can be made up of an arrangement of Phrases.

(3-6) SECTION CONTROL
11110000 F0 Exclusive status
01000011 43 YAMAHA ID
01111110 7E Style
00000000 00 Section Control
0sssssss ss Section
0ddddddd dd On/Off
11110111 F7 End of Exclusive
gSystem Software h = 08H-0FH, dd=ON is received, and the Pattern will be converted
into QY700 sections A-H respectively.

also... from the Sequencer Part - Receive Flow listings

SYSTEM EXCLUSIVE MESSAGE
SECTION CONTROL F0H 43H 7EH 00H ssH ddH F7H
TEST ENTRY      F0H 43H 10H 18H 5AH 00H F7H
LCD HARD COPY   F0H 43H 10H 18H 5AH 01H F7H

I can understand that the ss section data should be anything from 08-0F but I don't understand what the dd on/off data should be. I've tried using variations of the line F0 43 7E 00 08 00 F7 with all sorts of variations of the dd variable 00,01,7F etc. but nothing seems to work. Perhaps I'm not understanding what this section control is able to do exactly. When changing the pattern section manually within the QY it does not send any sysex commands to the midi out so midi-ox which makes sense because it's not expecting to change pattern sequencer sections on an external unit. But I'm confused why programming in the section changes in the song mode wouldn't send changes...it doesn't seem like sysex monitoring can show me the sequencer changes.

I'll keep plugging away.
  •  

Carson

Quote from: GeirH on Jan 08, 2025, 11:40 AMBecause the built-in tone generator of the QY700 (which includes the effects) is XG-compatible, it has the same basic parameters - and will respond to the same SysEx messages - as every other XG device. If you prefer the hands-on approach and want to test more messages to get the ball rolling, instead of getting yourself bogged down in the manual, I would recommend visiting the Guets are not allowed to view links. In order to access the links, please Register or Login website. Although it hasn't been updated in years, the contents are still highly relevant; Among other things, you'll find all of the basic Guets are not allowed to view links. In order to access the links, please Register or Login [*] listed, each with its complete SysEx string (all you have to do is calculate and substitute the value bytes). It is all presented in a straightforward way, and is a lot easier to navigate than the MIDI Data Format table. An invaluable source for learning, in my opinion!

Thanks for the page suggestions! Studi04All would've saved me a bit of time though I'm glad I figured it out the way I did. And yes, I'm mostly trying to figure out what can be done with the standalone hardware option directly on the QY700. Though I don't mind using the computer to aid in the process.

I'm waiting for my novation midi controller to show up and then I'll begin mapping some of the XG parameters. I'm hoping to add performance ability to the XG controls so that I can ultimately record some of them as sequence tracks without having to enter in a line for every step of say an EQ level change in the delay effect for example.

I'll have a look at everything you suggested and see if I can't unlock some of the deeper mysteries.
  •  

GeirH

Hi,

Your patience seems to be paying off, and then some: Creating a "controller track" to modify a different part is certainly a neat trick! Adding physical controllers is a lot of fun too, but be mindful that many keyboards can only map their knobs/faders to standard MIDI Control Change messages, and won't generate SysEx directly. There's probably software that can bridge this gap, though.

The meat and potatoes of the QY sequencer was certainly reused in other devices, such as the RM1x and RS7000 "grooveboxes". To what degree it was altered or refined over the years (beyond being adapted to different hardware), I can't tell, but its terminology is clearly recognized in the built-in sequencers of e.g. the later EX and Motif series. The Style functionality does not exist there, though, and chords are instead linked to arpeggiators. Section Control is listed in the Motif's MIDI Data tables, and could indeed be related to pattern sections, but there's absolutely no indication as to what the SysEx command does (except stating "Pattern mode only").


Quote from: Carson on Jan 09, 2025, 06:01 PM(3-6) SECTION CONTROL
11110000 F0 Exclusive status
01000011 43 YAMAHA ID
01111110 7E Style
00000000 00 Section Control
0sssssss ss Section
0ddddddd dd On/Off
11110111 F7 End of Exclusive
gSystem Software h = 08H-0FH, dd=ON is received, and the Pattern will be converted
into QY700 sections A-H respectively.

I'm not at all sure what this does, but my first guess - like yours - was that it simply selects a Style section. The cryptic blurb about "Pattern will be converted into QY700 sections" has me puzzled, though; Perhaps it instead assigns a pattern to one of the sections? With regards to the On/Off byte, my gut feeling would be that values 0-63 are interpreted as Off while 64-127 are On.


Quote from: Carson on Jan 09, 2025, 06:01 PMalso... from the Sequencer Part - Receive Flow listings

SYSTEM EXCLUSIVE MESSAGE
SECTION CONTROL F0H 43H 7EH 00H ssH ddH F7H
TEST ENTRY      F0H 43H 10H 18H 5AH 00H F7H
LCD HARD COPY  F0H 43H 10H 18H 5AH 01H F7H

No new info on Section Control here, but it at least confirms the previous string.

The Test Entry item might be some sort of diagnostic tool. I suspect that LCD Hard Copy could be a screen dump function, which instructs the QY700 to output the display's pixel values as a bunch of MIDI SysEx data (which in turn can be used to create 1:1 bitmap images, like the screenshots printed in the manual).

- H -
Yamaha EX5R, S90ES, Motif ES7, Motif-Rack ES, MU2000EX, PLG150-AN, PLG150-DX, PLG150-VL, PLG100-VH, AN200, DM2000, XGworks, SQ01, SOL2, Roland D-50, D-550, JD-990, JX8P, MKS-70, Korg DW8000, Radias, Ensoniq SD-1
  •  

Carson

Quote from: GeirH on Jan 09, 2025, 10:33 PMYour patience seems to be paying off, and then some: Creating a "controller track" to modify a different part is certainly a neat trick! Adding physical controllers is a lot of fun too, but be mindful that many keyboards can only map their knobs/faders to standard MIDI Control Change messages, and won't generate SysEx directly. There's probably software that can bridge this gap, though.
I found that the Roland A-300 Pro up to the A-800 Pro controllers can be programmed for controls to send variable sysex commands. It can be done through the Roland A-Pro editing software and I think they only allow one variable byte, which is plenty. That then led me to discovering the Novation Remote SL line of controllers that allow for similar sysex programming right on the unit itself (though you can also use the available software). I like the sound of the hardware being somewhat self contained for my purposes. Also, the Behringer BCR2000 and BCF2000 can also be setup to control sysex variables. The Behringer units have a fairly large following and people have written custom firmware for the units for all sorts of purposes. There are many threads detailing the use of the Behringer controller as a replacement for a PG-800 programmer for those Roland units. Anyhow, it seems like there are some options.

Your mention of the other units that might share some similar structure led me to looking through a few other manuals (RM1X and RS7000 are basically just updated versions of the QY line, interesting) but I eventually stumbled on this tidbit on the Yamaha website:
"This information applies to the following models: RM1X and RS7000.
To change the Pattern Sections via MIDI, the following system exclusive message must be transmitted to the unit via a keyboard controller or MIDI sequencer.

F0 43 7E 00 ss 7F F7"

I tried it out again and it totally works! My problem was the 7F. Like you, I figured the on and off messages could be any number within a range so I was just using 79 or 00 mostly. Turns out it actually has to be 7F and everything else works perfectly. Even though the Yamaha site doesn't mention this working on the QY700. I feel like I just discovered some long lost treasure. Yamaha was wrong about two things on the website. It works on the QY and the message also works from it's own internal sequencer.

Quote from: GeirH on Jan 09, 2025, 10:33 PMI suspect that LCD Hard Copy could be a screen dump function, which instructs the QY700 to output the display's pixel values as a bunch of MIDI SysEx data (which in turn can be used to create 1:1 bitmap images, like the screenshots printed in the manual).

Oh that's an interesting option. Curious how you'd go about converting data into a bitmap image. Maybe I'll put in the line and see what it spits into midi-ox.

Thanks so much for your nudging. Just having someone else throw another brain at it for a second is exactly what I needed to keep prodding and looking in different ways.

_c
  •