Virtual vs Synchronized Editing (Instrument Editor)
Within the Instrument Editor, Midi Quest features two different methods of editing, virtual and synchronized.
For those who have used Midi Quest previously to v11, Midi Quest always operated in virtual editing mode.
What is Virtual Editing mode?
When you use Midi Quest, you actually have two different blocks of memory for each of your MIDI devices. There is the memory within the instrument itself. There is also the memory used in Midi Quest to hold SysEx for that instrument. Sometimes these are the identical - when you load all of the SysEx from the instrument - you now have the SysEx in the instrument and a copy of the SysEx in Midi Quest. Sometimes the memory blocks are entirely different - when you load Instrument SysEx from your computer's hard drive into Midi Quest - where the SysEx in your instrument may be completely different from the SysEx in Midi Quest.
This is referred to as "virtual editing" because the SysEx held in Midi Quest doesn't necessarily represent the SysEx currently stored in your instrument. Why would you want a program to work this way? Easy. It allows you to create new banks using randomization without disturbing the current contents of your instrument. It allow you to open different Sets and choose patches from each in order to create an entirely new Set without disturbing the SysEx in your instrument. You don't even need to be connected to your instrument to do important organizational work with your SysEx.
This mode allows you to do all of the editing you want
However, there are times when it makes sense for Midi Quest to act as though it is a view into your instrument's memory.
What is Synchronized editing mode?
Synchronized editing mode is a special mode that an Instrument Editor can enter (on a per Instrument basis). When Midi Quest is "synchronized" with an instrument, the state of the SysEx, as viewed in Midi Quest, is considered to be the same as in the instrument. So, Midi Quest essentially gives you a direct view into your instrument's memory.
When a Set is "synchronized" with the MIDI hardware, the way in which Midi Quest interacts with the instrument changes. Once synchronized, Midi Quest does what is necessary to maintain synchronization. Any time the contents of a bank entry changes in the Set, that entry is immediately sent to the instrument so that the instrument and Midi Quest remain synchronized.
For Midi Quest to synchronize with an instrument, it must believe that the SysEx stored within the Instrument Editor in Midi Quest and the same SysEx in the instrument are identical. Typically this can only happen in one of two ways. either all of the SysEx comprising an "Instrument" in Midi Quest is loaded from the MIDI device by Midi Quest or the entire Instrument SysEx is send from Midi Quest to the MIDI device. At those two times, the Instrument Editor become "synchronized" (if synchronization is possible for the instrument).
To be clear, other than ensuring that the option is turned on in Preferences, taking advantage of Synchronized mode requires no work on your part. Midi Quest handles all of the tracking in the background and enters this mode when it is appropriate based on each individual instrument.
Operational differences between virtual and synchronized modes
Following are some of the differences in behavior between virtual and synchronized operating modes. This is not necessary a complete list and behavior may change on a per instrument basis depending on that instrument's operational requirements.
Changing the contents of any bank entry as a result of copying, pasting, or swapping patches; in virtual mode there is no automatic communication with the instrument. In synchronized mode, modified bank entries are transmitted to the instrument.
When a bank's memory location is being edited and Store or Store In are chosen to save the contents of the editor back to a memory location, that memory location on the instrument is updated as well. In virtual mode, there is no instrument updating.
Copying patches into a synchronized bank automatically updates the instrument as well. In virtual mode, there is no instrument updating.
The Details and Technical Stuff
Synchronized editing mode is an optional mode in Midi Quest. By default, it is enabled however it can be turned off in Preferences.
Conceptually, synchronization deals only with SysEx that is considered "permanent" in the instrument. This will typically be the instrument's RAM banks and Global or Setup SysEx. Synchronization does not include an instrument's edit buffers (which Midi Quest essentially takes over in any case).
Within Midi Quest there are strict rules as to what is necessary for it to be synchronized to an instrument. One of these rules is that the MIDI device must be able to transfer patches individually at the bank level. If an instrument can't do this, then even if the SysEx on the instrument and the SysEx in Midi Quest are identical, Midi Quest will not consider itself to be synchronized with the instrument. This means that many of the oldest MIDI devices can not be synchronized because a bank can only be transferred as an entire bank. This means that all of Yamaha's DX and TX series instruments and currently all of Korg's instruments up to the OASYS can't be synchronized (along with many other older, less well known devices).
While synchronization is typically reached with a full upload or download of SysEx, it is possible to reach synchronization in other ways but custom programming is required. In the case of the Korg Kronos, Korg and Sound Quest implemented special code allowing Midi Quest to track and verify that its bank's contents are identical to those of the Kronos without having to actually load the banks. This system minimizes the amount of SysEx transfer and time required for the Kronos to become synchronized with Midi Quest and is largely automatic.
You will note in the description above for synchronized mode, Midi Quest "considers" itself to have identical settings to the instrument. The statement is qualified since you could easily walk over to the instrument and make changes there that Midi Quest knows nothing about. Once Midi Quest is synchronized to an instrument, all editing must be performed in Midi Quest in order to properly maintain synchronization.