The Common Pane is used by all controls that are used to display and editing parameters in the stored SysEx. For example: the sliders, knob, levels, number and string list. These parameter control how the control is edited and how it interacts with the SysEx and Midi Quest's temporary variables. The following graphic displays all of the available parameters:
Roland JX-8P Transmit macro for OSC1 waveform This example is slightly more complicated because the value to send must be read out of the SysEx. MW = 12 The macro works as follows:
The second macro (FR X W) is necessary because the instrument expects values 1, 2, 4, or 8, while Midi Quest remaps these values to 0, 1, 2, 3 for editing purposes. It is the remapped value which is passed in X initially so the macro reads the value to be sent from the SysEx with this macro command.
Korg M1 Transmit macro for OSC1 VDA rate 1 This is an example of a complicated macro which is necessary because the values sent are dependent on the current mode of the instrument as well as the possibility of both positive and negative numbers so the value is spread between two bytes. MZ = V10 The macro works as follows:
The M1 macro is much more sophisticated. The first part of the macro set up the values which must be placed in the SysEx message. The SysEx message is then created and finally the values are copied into the message and the message is transmitted. Unlike most synthesizer, the M1 uses both positive and negative values (stored in 2s complement format). To send a negative value in a MIDI message it is necessary to break the value into two bytes. The first byte contains the low 7 bits of the value; the second byte contains bits 8 - 14, obtained by shifting the byte to the left 7 and masking out any higher bits. Hopefully these three examples are sufficient to show how to write a Transmit macro. Feel free to look through all of your template to see different examples of these transmit macros.
Use Retrieve Macro The value of a parameter must be retrieved each time the parameter is displayed in the Editor window and when the parameter is edited. There are two ways in which a value can be retrieved from SysEx. When Use Retrieve Macro is unchecked, the value is extracted using the byte set by the Retrieve Offset parameter. When Use Macro is checked, the macro Retrieve Macro is used to obtain the value from the SysEx dump. The RET (W .. Z) macro is used to return the value back to Midi Quest.
Retrieve Offset When Use Retrieve Macro is unchecked, Retrieve Offset parameter contains the offset to the location where the parameter is stored in the SysEx.
Retrieve Macro When Use Retrieve Macro is checked, the Receive Macro is used to obtain the value for the parameter. The macro parameter is useful in situations where a particular gadget shows different parameters at different times based on some other parameter. An example of this would be a range of 120 programmable drums with only 10 down at a time. A variable is set up to retain which group of 10 drums is displayed. the retrieve macro then uses this variable to determine where the value to return is located and return it. Click on the button to the right of the macro to view and edit the full macro. The following is an example of the simplest retrieval macro. Other retrieval macros are usually just enhancements of this one example.
Roland D-10 Rhythm Timbre Retrieve Macro This macro is used to that 12 drum lines can be used to display the entire range of Roland drums. This is the macro for the second Timbre in the list. MW = V1 The macro works as follows:
The variable V1 holds an offset into the Drum SysEx. Four bytes are used to define each drum. If the first drums displayed in the window is the fifth drum in the list then V1 would have a value of 20. This value is stored in the temporary variable W (1). If the second drum in the window is be in edited, then it is actually the sixth drum in the list and an extra 4 bytes must be added (2). The value is then extracted (3), and returned to Midi Quest (4). Look at the macro for each drum parameter in the window. Each one has a different offset value that matches with the parameter's location in the SysEx dump. The slider controls the current value of V1.
Use Store Macro The value of a parameter must be stored each time the parameter is edited. There are two ways in which a value can be stored in a SysEx dump. When Use Macro is unchecked, the value is stored in the byte set by the Store Offset parameter. When Use Store Macro is checked, the Store Macro is used to store the value in the SysEx. When the execution of the macro starts, the variable X contains the new value for the parameter.
Store Offset When Use Store Macro is unchecked, the Store Offset parameter contains the byte where the value is stored.
Store Macro When Use Store Macro is checked, the Store Macro is used to store the value for the parameter. The macro parameter is useful in situations where a particular gadget shows different parameters at different times based on some other parameter. An example of this would be a range of 120 programmable drums with only 10 down at a time. A variable is set up to retain which group of 10 drums is displayed. the store macro then uses this variable to determine where to store the value. Click on the button to the right of the macro to view and edit the full macro. The following is an example of the simplest storage macro. Other storage macros are usually just enhancements of this one example.
Roland D-10 Rhythm Timbre Store Macro This macro is used so that 12 drum lines can be used to display the entire range of Roland drums. This is the macro for the second Timbre in the list. MW = V1 The macro works as follows:
The variable V1 hold an offset into the Drum SysEx. Four bytes are used to define each drum. if the first drum displayed in the window is the fifth drum in the list, then V1 would have a value of 20. This value is stored in the temporary variable W (1). If the second drum in the window is being edited, then it is actually the sixth drum in the list and an extra 4 bytes must be added (2). The parameter value is then stored in the SysEx (3). Look at the macro for each drum parameter in the window. Each one has a different offset value that matches with the parameter's location in the SysEx dump. The slider controls the current value of V1.
Activate Macro Activate contains space for a macro which is executed whenever the control is first selected. This macro can be used to initialize variables in Midi Quest or to send commands to the instrument when a particular parameter is selected. Click on the button to the right of the macro to view and edit the full macro.
Bitmask When a particular byte in the SysEx message stores more than one parameter, you can use the bitmask to indicate which bits the parameter is stored in. Midi Quest will then automatically extract and store the value without damaging the bits used by other parameters.
Pens The four pens listed below are used for specifying the colors that are used to draw a parameter. The first two are used to draw the foreground and background for an unedited parameter, the second pair are used when the parameter has been edited. It is important to remember that when the pens default colors are selected, the drawing colors used are taken from the currently active Skin. In addition, notice that the colors are selected by number (reference) instead of actual colors. These color number actually look to the current skin and use the actual colors defined there.
A Pen A Pen contains one of the two pen colors used to display controls on the screen. A Pen is the main color used to display a parameter, for instance a numeric gadget or a String List control will display an unedited number or string in this color. default: Color #1 Note: this parameter is not used by the String and Slider gadgets
B Pen B Pen contains the second of the two pen colors used to display gadgets on the screen. B Pen is the background color which can be used to display a parameter. In the case of numbers or characters, this color is used to surround the parameter. In the case of numbers or characters, this color is used to surround the parameter. In The case of Knobs, and Levels, this color is used as the second color to create a pattern. Usually the value of this parameter is 0 (gray). default: Color #0
C Pen C Pen is identical to A Pen with the exception that this color is used when the parameter has been edited. default: Color #2
DPen D Pen is identical to B Pen with the exception that this color is used when the parameter has been edited. default: Color #0
Updating other Controls Information for Num Control Update, and Update Control #1 through #5 In Midi Quest it is possible to have several controls representing the same parameter. For example, you might have both a slider and a number displaying the current value for a reverb level parameter. If this is the case, if the slider is being moved it is necessary to for Midi Quest to update the other control simultaneously. There are six numeric values. In the first parameter, place the ID number of additional controls whose displays are to be updated each time the value of this parameter is changed (to a maximum of 5). In the following five locations, insert the IDs of each of the gadgets to update. For example, to update controls with IDs 48 and 72 after a control has been edited, the following parameters should be set: Num Control Update = 2 Update Control #1 = 48 Update Control #2 = 72 There is an alternate option for updating other controls. This is to update a range of gadgets. When the value '16' is entered as the number of controls to update, Midi Quest actually updates the display of each gadget that has an ID between the two values entered in Update Control #1 and #2. For example, to update all of the controls with IDs between 24 and 89 after a controls has been edited, the following parameters should be set Num Control Update = 16 Update Control #1 = 24 Update Control #2 = 89 This method of updating is frequently used with there is a large number of similar items to display or edit such as a patch change table where a slider is used to select a range to display.
Convert Some instruments store parameter values in some rather unusual formats which must be converted for Midi Quest and Panel Edit use. Prime examples of this are the Matrix 6 and Matrix 1000 instruments of which both use unusual signed bit data formats. The various options in Conversion mode convert the values into formats which can be properly edited and then convert them back for storage. The most common conversion is the first option, UBYTE to SBYTE which converts an unsigned 8-bit value to a signed 8-bit value. UBYTE has a range of 0 - 255 while SBYTE has a range of -128 to 127. This format is frequently used in Korg products. Most of the conversions are required so that a signed number stored in an unusual number of bits. The conversion is necessary to create a proper 32-bit signed value for editing.
Comm Mode (Communication Mode) Communication mode selects the type of parameter updating required by the synthesizer. This parameter can have 4 values. The default value Use Macro in which Midi Quest expects there to be a Transmit macro to send changes to the instrument. This macro is called after every mouse or keyboard entry which changes the value of the parameter. If there is no macro, then no instrument update occurs when the parameter is changed. When Communication Mode is set to Macro on Release, the transmit macro is used to update the instrument only after the parameter has been changed and the mouse button lifted. This option is required for older instruments which can not accept MIDI SysEx parameter changes at the rate of mouse based editing. When Communication Mode is set to Bulk Transmit, the entire SysEx file is transmitted to the instrument when editing of that parameter is completed. This option is necessary for instruments which do not have SysEx single parameter edit commands. After a change has been made, it is necessary to retransmit the entire patch. When Communication Mode is set to 'Use V40 Setting, the contents of variable V40 determines the actual communication mode used.
Map The Map was designed to deal with parameters which do not change linearly. For example, a parameter may take on the values 0, 1, 2, 4, 8 which is not linear. To edit a parameter of this nature, it is necessary to create a map. The map converts the non-linear values on to linear values so that they can be edited. To create a map for the above situation, you would click on the Map button to open a text editor. In the editor, you would enter the following: 0 1 2 4 8 Notice that there is only one number per line. Press the OK button and Panel Edit will create the appropriate map. In addition, the minimum and maximum values apply to the MAPPED values so the the value to place in the "Min" parameter is "0" and the value to place in the "Max" parameter is "4". With a properly created map, Midi Quest will automatically convert the numbers appropriately.
Old Mode This parameter is currently unused
Randomize Type In order for Midi Quest to perform randomization, it needs to understand the quality of the parameter. At present, there are 4 defined types. If you are dealing with a parameter that does not appear to fall into one of these type definitions, please contact Sound Quest so we may consider adding an additional type. Continuous - The parameter represents a continuous range value. For example, the attack range for an envelop is usually in the range of 0 to 99 or 127. Modal - A modal parameter is a series of options which are discretely different. For example, an editor might have an effects section represented by a selection of effects: Chorus, Flange, Delay, and Echo. Each of these is discrete and unrelated to the others. Non-SysEx parameter - many editors have controls which handle how the editor is displayed or perform some other operation which has no effect on the value stored in the actual SysEx message. These controls should be set to Non SysEx Not Randomizable - set for parameter which, for whatever reason, can't be randomized. At preset, Non-SysEx parameter and Not Randomizable are handled identically by Midi Quest.
Continuous Controllers Each control in Midi Quest can be set to respond to a particular continuous controller (CC) or non-registered parameter number (NRPN). The following five parameters determine how incoming continuous controller values are interpreted. In addition, when CC or NRPN values are received and stored, they trigger output of the correct SysEx message to update the parameter on your instrument. As a result, you can store series of CC values in a sequencer, route them to Midi Quest and Midi Quest will create the correct SysEx messages to actually edit the synthesizer. While it is not recommended, it is possible to assign both a CC and NRPN to a single control.
Input Mode This parameter determines how the controller level is converted into a value to store in the editor. There are two options: scaled and linear. In scaled mode, Midi Quest maps the range of the controller (0 - 127) to the range of the parameter. For example, if the range of the parameter is also 0 - 127 then there is a linear 1:1 mapping. If the parameter has a range of 0 - 1 then an input value of 0 - 63 would produce a value of 0 for the parameter and 64 - 127 would produce a value of 1. if the range is 0 - 7 then an input of 0 - 15 would produce a value of "0", 16 - 31 will produce a value of "1", 32 to 47 produces a value of "2" and so on. In linear mode, Midi Quest maps on a number to number basis. 0 is stored as 0, 1 is stored as 1, 2 is stored as 2, and so on until the upper limit is reached. The two examples above assume that the Cntrl Input Ofs (below) parameter is set to zero.
Controller # This parameter determines which controller number (range: 0 - 121) is used to modify this parameter. A value of "-1" indicates that the control does not respond to continuous controller message. 0 - 121 specifies the number that this control responds to.
NRPN LSB# (CC#98) If the control is to respond to an NRPN message, the LSB value of the NRPN, sent on CC98 must be entered here.
NRPN MSB# (CC#99) If the control is to respond to an NRPN message, the MSB value of the NRPN, sent on CC99 must be entered here.
Input Ofs The discussion of how controller input is converted into value as described above in CC Input Mode is essentially correct except that there is one added level of sophistication which is this offset. After converting the incoming CC value to a parameter value, this offset can be used to add or subtract this offset value to create the effect you wish.
Note # Editing Midi Quest is also capable of responding to incoming MIDI notes in order to alter the value of a control. This allows you to use your keyboard or other MIDI device to set the value of a particular parameter. This option is particularly useful in situations where you are programming a drum machine on a note by note basis and wish to select the note being edited using a keyboard or drum machine pad. The other major use is for setting note and velocity ranges in Combi/Performance type editors. Following are the possible settings: None: there is no note number based editing Note #: when this option is selected, the control will continuously monitor incoming MIDI notes. Each note on event will change the value of this parameter. The incoming note number is added to Note # Ofs to produce a value. This value becomes the new value for the parameter. You would use this setting to, for example, select a drum note to edit in a Drum editor. Note # (Active): is identical to Note # except that the control only responds to incoming MIDI notes when it is active. You would use this setting to, for example, set upper or lower note ranges for a part in a Combi editor. Velocity (Active): when selected, the control receives the velocity value of note on events as input. You would use this setting to, for example, set the velocity ranges for a part in a Combi editor. Note Number (MIDI Focus): when selected, if the editor currently has MIDI focus then incoming MIDI notes are used to set the value of this parameter.
Note # Ofs This parameter is used to modify the incoming note or velocity value before it is sent to the control. This allows you to map incoming values to the value stored in the editor. To return to the drum note selection example from above, say the parameter to select the drum ranged from 0 - 40 but represented notes 36 - 76. You would want to press note 36 on the keyboard but this is stored internally as 0 so a Note # Ofs value of -36 would correctly map the input value to the value required by the software.
Simple Default When checked, if the space bar is pressed the controls default value is stored in the SysEx and a parameter update message is sent.
Automation The following parameters allow control over automation when the editor is run in a VST or AU host.
Plug-in ID Midi Quest automatically assigns an automation ID to each control. To over-ride this ID with your own, enter the value here. -1 = no automation 0 = off > 0 = new automation ID The actual automation ID used by the plug-in will be one less than the value assigned. When assigning automation IDs manually, it becomes your responsibility to ensure that the values assigned to each control are unique. Them must also end up being linear so one of your controls should have the value "1", another the value "2", another the value "3" up to the number of controls you want automated.
VST Category # Cubase offers advanced automation parameter organization options which can be used to group parameters. These options will only work in Cubase and not other VST hosts. In the Cubase world, they have been deprecated in favor of the VSTXML model of parameter organization for VST 2 plug-ins. You can, of course, continue to use these parameters if you prefer. Assigns this control to a category so the parameter is displayed in a sub menu. 0 is the default flat menu selection while 1 or greater will put the parameter into a sub-menu.
VST Category Label The parameter sets the name of the the VST sub-menu when displayed in Cubase. When a control is assigned to a sub-menu, at least one of the controls for each sub-menu must be given the name of that sub-menu.
# in Category specifies the number of items which will be placed in a given sub-menu.
Display Index specifies the index of the parameter in the sub-menu. In other words, it orders the parameter's location in the sub-menu. 0 = first item, 1 = second item, 2 = third item, and so on.
VST name specifies the display name of the automation parameter in VST. If no name is entered, Midi Quest will use the name currently assigned to the control.
Available in:
|