Block Setup (Panel Edit)
For each editor it possible to designate different logical blocks of parameters so that they can be copied from a source to destination as a whole. For example being able to copy Oscillator 1 parameters to Oscillator 2 in an analog synth or all of the operator parameters for 2, 3, or 4 other destinations.
In order to provide these capabilities, it is necessary to include the information in the editor which is what this dialog is used for. It allows you to define as many different logical blocks as you wish and intelligently offers the user the appropriate options so that they can easily copy or swap blocks of a patch.
The one requirement for this option to work is that the parameters must be stored contiguously within the SysEx.
To define the various blocks of a patch:
The Block Setup Dialog
The screen capture above shows the available blocks for the Yamaha DX7 Voice. It includes blocks representing each of the voice's six operators as well as blocks for just the envelope parameters inside the operator.
The large list on the left contains all of the defined blocks. To add a new block, enter all of the parameters on the right hand side and press the add button. There are also buttons to reorder the blocks and delete blocks which are no longer required.
A block is defined by the following parameters:
Block Name: this is the name of the block as presented to the user
Offset of first byte in the block: this parameter tells the editor where the block starts and uses a "0" offset so the first byte of the SysEx is considered to be 0. This parameter is also in the driver "voice bytes" format. That is, this parameters accounts for any storage formatting that the instrument might use. For example, an instrument that transmits its SysEx using a low/high nibble format actually uses two bytes of SysEx for a single value. 35 parameters are transmitted as 70 SysEx bytes. The number here is entered from the parameter perspective if you enter parameter "4", Midi Quest knows that the value is stored in nibblized format and actually works from byte 8 in the SysEx.
Number of Bytes in the Block: this parameter tell the editor the size of the block. The same rules apply as above. Enter the number of parameters, not the number of bytes. Midi Quest will perform the conversion automatically based upon the format of the SysEx as specified in the driver.
For most editors you should only need to enter the three parameters list above to successfully create a block. The following options allow for creating blocks for the more complex patches which have varying sizes and contents.
Group #: allows you to assign a group # to each block you create. If the block has a group number of 1 or higher assigned then when it is selected the potential destinations must be part of the same group or they are not displayed. This allows for a number of possible situations. For example, if you have two radically different block types both with the same size. If you don't want to be able to copy one type over the other, give them different group numbers and it won't be possible.
Group Name: when a Group Name is specified, only other blocks with the same name will successfully match
The following three parameters work together as a unit.
In some cases you only want a copy option to be displayed if certain conditions are met within the patch's SysEx. For example, certain parameters are only in certain positions when the SysEx is in a certain mode. This is where the conditions options come in.
Condition Type: lists save different tests that can be performed on a particular byte in the SysEx. The option will only be displayed if the condition is met. The conditions are: no test, equal, not equal, less than, less than or equal, greater than, and greater than or equal
Offset for Condition: specifies which parameter in the SysEx will be tested for the condition. If the value is >= 0 then the value is read from the SysEx at the specified offset. If the value entered is between -1 and -2047 then the value is treated as a request to read from the editors V variables. For example, a value of -10 would test the contents of V10; a value of -25 would test the contents of V25. This allows for a very flexible set of tests to determine whether a block should be displayed or not.
Value for Condition: specifies which value to test against.
For example, if you want the block to appear only if byte "10" has the value "5" then Condition Type is set to "==", Offset for Condition is set to ""10" and "Value for condition is set to "5". The block copy option will only be available when the condition is met.
Condition Test Macro: if a non-zero value is entered, the macro is called to determine whether the block is a match for the selected macro
Driver ID: specifies an optional driver
When a Driver ID is specified, this block definition will only be available when the editor is working with SysEx created by a driver with that ID.
This is the easiest way to deal with the case where a single editor is capable of editing SysEx loaded by different drivers (eg a Patch from a Motif and a Patch from a Motif ES) where parameters can actually be located at different offsets in the SysEx or may exist in one instrument and not exist in the other. This parameter can be used to easily determine whether the block should be available or not
Use Controls to Create Block: create a block using controls instead of contiguous SysEx
This option is new in v10 and allows for the creation of non-contiguous blocks. Before opening the Block Setup dialog, select the controls in the editor that to provide the information. Once in the dialog, input the block parameters where the following entries can be left blank because they won't be used: offset, number of bytes, first byte start bit, and last byte end bit.
Check the "User Controls to Create Block" option and Midi Quest will store the ID numbers of the controls and store the count of the number of controls in the "number of bytes" parameter. You can now add the new block to the list.
Refresh button: updates the IDs to use in a control ID block. This button updates the list of control IDs that are used to create the given block.
Add button: Adds a new block to the Block list using the current values of all of the parameters
Replace button: Replaces the currently selected block in the Block list with a new block using the currently entered parameters
Delete button: deletes the currently selected Block from the Block list
Up button: moves the currently selected Block in the Block list up one position in the list
Down button: moves the currently selected Block in the Block list down one position in the list
Help button: press the Help button to display this page
OK button: press the OK button when finished working in the Block Setup dialog
note: key equivalents will only work when the editor view has focus. If the panel editor has been used then the focus has been shifted and key equivalents will not work. Click the mouse in the editor view to reset the focus and enable key equivalents.
See Also: Block Copy/Swap