Patch Editor for Yamaha TG77,SY77 and SY99 for 1AFM poly mode This is a series of patches that cover all editable parameters for a single FM element, with filters. I included an "Algorithm" patch, but this is obviously not really that useful, all I included are the Operator input levels and the Algorithm number. I meant to try to include the Feedback Loop Programming, spreading it out over two patches if need be, but I just gave up on trying to understand how the sysex accomplishes this -- Sorry, maybe I'll figure out something and be able to upload the revised version later, OR if YOU figure it out first please email me!!! So programming feedback loops will require old-fashioned button pressing. Effects and panning are not included, this is intended to aid in creating an FM element, which is of course the most challenging work on these synths. This took a couple weeks of tedious button pressing and oganizing a mountain of minutiae. Even if you don't find it entirely useful, I can tell you this saved you a lot of time! This is a ******MEMORY HOG****** if you plan to use all of it! In fact, it will take up just about the ENTIRE memory of your PC1600. You can pare it down some, which is still easier than adding what isn't there! This is a perhaps a fatal limitation if you don't have a computer or other midi storage device for loading patches on your PC1600 (tho chances are you do), because then you can't use it for anything else, and the multi-purpose-ness of the 1600 is the best reason for having one. So DON'T LOAD THIS if you don't have external patch storage, there will not be room for your other patches!!! Even if you have external storage, you might be bothered by having to dump presets everytime you want to use it for something else. Unfortunately, it turned out that this editor is really only practical if you can see the synth's LCD display, which is unnecessary on a software editor (see Notes below about envelopes also) If you have a TG77, then it helps that you don't have to reach to press buttons if the TG is not conveniently at arms length, BUT you would still have to be within comfortable reading distance of the display. If you have an SY99 or SY77, the PC1600 may be perched on or somewhere near you keyboard, in which case you may wonder "well isn't it just as easy to just use the synth's control's?". I can't say that having a SY editor for the PC1600 will make things that much easier or faster, the difference is largely ergonomic and the way the parameters are grouped. Editing envelopes is a little easier and in general the PC1600 gives more physicality to the editing, and hearing the differences between different values among parameters is more immediate. On the front panels of the synths, besides the obstacle of going through different menu layers, you have immediate access to only one parameter at a time. On the PC1600, even though you have to flip from one patch to another to, say, edit the envelopes on Op 1 and Op 3, you can more easily hear the effects of editing that single envelope since the parameters are spread across 16 sliders, not one. I say that is still a significant difference, and the less distracted you are by navigating the menus the better you can think about what you're doing. Here is the sequence of the PC1600 patches - you can change the order or delete some, of course, but I have tried to organize them logically as steps in editing. Panning and Effects are "icing on the cake", and wouldn't fit into memory anyways. (The following is for PC1600 version, the PC1600X version may be a little more) PATCH NUMBER MEMORY SIZE: -------------------------------------------------------------------------- 00: Algorithm Input levels & # .................................. 262 01: Op1 Envelope................................................. 762 02: Op1 Output Keyboard Scaling, Sensitivity and Oscillator...... 812 03: Op2 Envelope................................................. 748 04: Op2 Output Keyboard Scaling, Sensitivity and Oscillator ..... 812 (alternates) 05 & 06: Op 3 .................................... 729 + 812 = 1541 07 & 08: Op 4 .................................... 748 + 812 = 1560 09 & 10: Op 5 .................................... 748 + 812 = 1560 11 & 12: Op 6 .................................... 748 + 812 = 1560 13: Pitch Envelope (plus Portamento time & Random Pitch)........ 696 14: LFO's (Main & Sub) , and Common Filter parameters........... 478 15: Filter 1.................................................... 600 16: Filter 2 ................................................... 568 17: Keyboard Scaling for Filter 1 & Filter 2 ................... 506 18: Name and Store.............................................. 586 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> TOTAL >>>>> 13075 (free) >>>>> 7591 ---------------------------------------------------------------------------- ********************************** NOTES ******************************** ---------------------------------------------------------------------------- *I'll try to post both the PC1600 version and the PC1600X version. The only difference: I'll include is the "Device number" byte and a few stray "Send fader" buttons on any blank buttons available - so accidently moving the fader on an important parameter won't change it (like Algorithm number for example) . * I saved this as an "all preset" file rather than individual patches as it's a large number of patches, you could really only lop off a couple of them anyways, and the I think the order they're might be helpful. *Algorithm patch (00): On the input levels, you must look at the LCD for the input value, as the PC1600 display obviously doesn't give you the value sent. Input 1 will advance thru all 8 values for every value of Input 2, so if both inputs are used then it's easier to look at the value for input 2 first, then "fine tune" to input 1. *Button Names: for toggle buttons, I made sure that, for example, "Loop S3/S4 " means that string 1 is S3 and string 2 is S4, never the other way around, so you don't have to guess which string you sent. *Effect Bypass and Edit/Compare: always buttons 14 & 15 respectively except on Name. *Envelopes: although I wanted to keep the patches as consistent as possible, I decided to arrange the Operator Envelopes differently than the Pitch Envelope and Filter Envelopes. On the Operator envelopes, the sequence, left to right is: Hold time, L0, R1, L1, R2, L2, R3, L3, R4, L4, RR1, RL1, RR2, RL2 (then Range scaling and Op output level). This allows you to "creep" along the envelope to get the desired "shape". The Pitch Envelope and Filter Envelope both have negative ranges for the Levels, this means that it is probably better if Rates and Levels are separated (LO,L1,L2, ,...R1,R2,R3....) because the zero value is in the center of the Faders' range, so when you select these patches you can quickly move the group of Level Faders to midpoint as a starting place. (You can then do levels with the left hand and rates with the right.) I could have arranged the Op envelopes this way (for consistancy), but it seemed easier to shape the envelopes if they were alternated. PLEASE NOTE: The graphic representation of the envelope in the LCD does NOT truly represent the relative segment TIMES (for rates). I don't pretend to have any expert knowledge of this but I've read that a paticular Rate value on an attack segment does not translate to the same amount of time as one elsewhere in the envelope. I'm not sure to what how much of a difference this may amount to. So even if you somewhat rely on the LCD to give you an indication of the envelope's "shape", your ears must be the final judge. Also, note that the Rates on all envelopes have had thier ranges inverted (63 to 0) so that you start with the most "vertical" rate-the envelopes are less "wild" this way! *Ratio/Fixed ranges: for Oscillator frequency, I could have given separate faders for Coarse and Fine Freq. in Fixed mode and in Ratio mode, since one range for both isn't suitable, but I wouldn't want each operator to go over two patches a piece! Instead, I have three buttons for "coarse" freq. in fixed mode: x1, x10, x100, and x1000, and the coarse freq. fader goes from 0 to 31 for ratio mode. Fine Freq. has a range of 0-99 so is applicable to both. If there is a case where you can't reach a certain value in fixed mode with the x1000 button and the 0-99 Fine Fader, you still have the option of using the cursor and increment buttons included below to get the exact value. I thought these buttons might be useful anyway because you can't really copy an operator envelope without specifying the needed fields. It's a rather ungainly accomadation, but I tried to use the same buttons for paticular functions across different patches so that remembering thier location would be less of a problem. Note that in use, making a habit of setting the "Fine Freq." fader to zero before setting your "Coarse range" makes it less confusing. Also, when you press the "Fixed/Ratio" button you will not see that parameter change on the "oscillator" page, rather it displays the "sensitivity" page for some reason - if you then go back to that page you'll see it has changed. I noticed that in Ratio mode you can produce values over 31, which you can't do from the panel. I'm not sure yet if this is a "real" number to the synth or not, (if that value is displayed but not in effect), or whether this is useful anyways. *Name : I admit this isn't the pinnacle of usefulness (just got carried away) and you may want to initialize it if you need the memory. It gives you three ways to enter a name though: one slider per character, cursor plus inc/dec buttons, or good ol' 4 characters per button format as on the front panel (button 10 is 0 and you don't have lower case this way). Because I ran out of buttons when I decided to duplicate the panel buttons, increment and decrement are duplicated by the rightmost two faders. For those buttons, values 0-63 are off,64-127 on. By setting the PC1600 range to "too" great a range, the synth "folds back" the value, and you can repeatedly increase (or decrease) the value by moving the fader back and forth **past the halfway mark.**