MQ Parent/Child Relationships (Instrument Editor) MQ_yes MQLT_no MQLib_no


"Parent/Child Relationships" is a term used to describe the relationship between different types of SysEx in a MIDI device. Most frequently, it applies to workstations where the instrument will frequently have two or more distinct modes: a Sound generating mode (known by a range of terms such as: Patch, Program, Sound, Tone, etc) where individual sounds are designed and a multi-timbral mode where two or more sounds can be played siimulataneously. This mode has also been given a range of different names by manufacturers such as Combi, Performance, and Multi to name three.


What is important to understand here is the relationship between the types of SysEx. In multi-timbral mode, the instrument will reference the sounds by their location in the sound bank. The multi does not actually store the sound definition but just its location. In fact some instruments contain extensive references. A Korg Kronos uses the following:


A Set List can reference Combis, Programs and Songs

Combis reference Programs and GEs

Songs reference Programs and GEs

Programs can reference Drum Kits, Wavesequences, and GEs


As you can see, this can be a complex set of relationships and keeping track of these is very important when moving items. If you don't allow the program to maintain these relationships for you, you must do so yourself.


To continue with the Kronos as an example, if parent/child relationships is turned off and you were to move a Program within a bank or to another bank, any Combi, Song, or Set List that used the Program would no longer sound correctly because they would continue to reference the previous location of the Program instead of its current location. With parent/child enabled, when a Program is moved, Midi Quest automatically finds all of the "parents" (the SysEx that references the Programs) and updates them so that they continue to reference the correct Program location.


Maintaining parent/child relationships is even more important when copying items from one Set to another in Midi Quest. Just consider what needs to happen when copying a single Combi from one Set to another. Not only do you need to copy the Combi itself, you also need to copy the Programs and custom GEs that the Combi references and you need to copy the Drum Kits, Wavesequences, and custom GEs that the Programs use. Not only do all of these items need to be copied over but they must be copied into locations that are currently not in use. This requires that all modified parent references must be updated to the correct new locations. Of course, you can do all of this yourself or you can leave the details to Midi Quest.



Enabling Parent Child Relationships


Parent/Child Relationships are enabled in Preferences.


The feature is enabled program wide but maintained on a per Set basis. If a Set is created or loaded when Parent/Child relationships are turned off, the feature will not be available until the Set is saved to disk and re-opened. Conversely, a Set created or opened from disk while Parent/Child is enabled will operate in this mode until the window is closed, regardless of changes made in Preferences.



What Does Parent/Child Relations Actually Do


Here is a list of the functions that parent/child relations actually performs within Midi Quest.


1. Display of Child Status


In bank editors, any entry which is referenced by SysEx in another bank or editor is displayed with a small yellow link icon in the upper right corner. Tapping on any entry will display a list of the items that use the entry either within the editor windows itself or on the message line at the bottom of the program window as can be seen here:


Instrument Editor Parent Child 2


In this example, the link icons can be found beside every patch (for the 01/W called a Program) with the exception of numbers 20, 50, 71, 128, 156, and 197. All other Program locations are currently referenced by one or more Combis in the Combi bank. These are the only memory locations in the Program Bank where a new Program can be safely added without altering the sound of one of the existing Combis.


In addition, when a child patch (in this case an 01/W Program) is selected in the bank, the all of the parent patches (in this case 01/W Combis) are listed on the bottom bar.



2. Display of Parent Status


In bank editors, any entry which is a parent (references SysEx contained in other banks in the Set), placing the mouse over that entry will display a list of items that the SysEx references. In this case:


Instrument Editor Parent Child 1


In this case, the Combi "The Finale" is selected and it uses Programs: Orch Perc, Timpani, Orch Hit, Marcato, Brass 2, FanFare, and Stadium!!!.



3. SysEx updates during swap operations


When child Patches are swapped within a bank or with another bank in a Set, Midi Quest will update parents so that they correctly reference the SysEx in its new location.



4. SysEx updates during copy operations


When parent Patches are copied from the Instrument Editor into the Collection, Midi Quest automatically copies all child patches and child of the child patches (for the Kronos this could include Combis, Programs, GEs, Wavesequences, and Drumkits) to the Collection as well. This allows Midi Quest to copy the child patches back into the Instrument Editor in the future when a parent Patch


note: if there are no unused locations in the destination child bank, SysEx will not be copied and parents will not be updated.