/ HALion Developer Resource / HALion Macro Page / Templates /
MIDI Player
On this page:
Description
The MIDI Player template contains controls for selecting MIDI files, adjusting the performance parameters like Swing, Gate Scale, etc., and for using the eight variations of the MIDI Player module. In addition, there are controls for exporting the current MIDI File via drag and drop.
Functionality such as using the eight variations, exporting the current MIDI file, etc., cannot be realized with standard macro page controls. The Internal control is used if this is the case. The performance parameters like Swing, Gate Scale, Vel Scale, etc. are connected to the eight variations by corresponding UI variables and they must be part of this template. To ensure the operation of the performance parameters, the eight variations and the MIDI file export, the preconfigured properties must not be modified. The look and the size of the controls can be modified freely. All controls for functions that are not needed for your instrument can be omitted on your macro page.
To explore the functionality and connections:
- Load the Init Basic Controls.vstpreset from the Basic Controls library.
- Open the Macro Page Designer, go to the GUI Tree and navigate to "Pages > MIDI Player Page > MIDI Player Parameter".
- Select "MIDI Player Template" and click Edit Element to examine the template.
❕ The other control templates inside the MIDI Player Parameter group are directly connected to the MIDI Player module and do not require detailed explanation.
Template Properties
Poperty | Description |
---|---|
Name | The name of the element. This name will be displayed in the GUI Tree. |
Position/Size | Position X, Position Y, Width, Height: Position and size of the element in pixels. Position X/Y defines the position of the upper left corner. |
Attach | Defines how an element behaves when its parent element is resized. You can set the following parameters:
|
Tooltip | Text that appears as a tooltip when the mouse hovers over the element. |
Template | Determines the template to be referenced. |
Template Parameters
Parameter | Description |
---|---|
Scope | Defines the path to the MIDI Player module to be controlled. For example: @0:MIDI Player controls the first MIDI Player module in the program. |
Product | Product specifies the root folder for the location of the MIDI files (.mid). Set this to HALion if you want to load MIDI files from the standard file path for subpresets. Load From (see below) must be set to MIDI Files , which specifies the path to the folder that contains the MIDI files.If you wish to deliver your own MIDI files as part of your library, you can set Product to the name of your instrument, e.g., You can also include both, the HALion root folder and the root folder of your instrument, by setting Product to |
Load From | Load From specifies the subpath to the location of the MIDI files inside the root folder. The root folder is set by Product (see above). You can specify this subfolder freely. However, if you want to see the factory MIDI files, Load From must be set to MIDI Files and Product must contain HALion .Any MIDI files you want to distribute with your library must be added to the corresponding location inside the VST Sound. For example, if Load From is set to |
Content Locations for Different Configurations
# | Configuration | Content visible in MIDI File Selector |
---|---|---|
1 | Product = Load From = | Only MIDI files from HALion, including any MIDI files the user has saved on hard disk. |
2 | Product = Load From = | Only MIDI files from the specified library. |
3 | Product = Load From = | All MIDI files from HALion, the specified library and any MIDI files the user has saved on hard disk. |
❕ The location of the MIDI files inside the VST Sound must match the path defined by the Product and Load From parameters, otherwise the MIDI File selector cannot access them.
Components inside the Template
Controls and Subtemplates
To ensure the operation of the controls and subtemplates, the preconfigured properties must not be modified. The look and the size of the controls can be modified freely. All controls for functions that are not needed for your instrument can be omitted on your macro page.
Item | Description |
---|---|
DragMIDI | This Group contains controls for exporting the current MIDI file via drag and drop.
|
Variation | A Group with three subgroups that provide the necessary elements to switch between variations, to drag variations to the trigger pads, and to open the context menu of the variation switches. The aformentioned functionalities are implemented by Internal controls. Their preconfigured properties should not be modified. Also, the z-order of the subgroups in the GUI Tree is not supposed to change. "Drag Zones" must be topmost, followed by "Variation Popup", and then "Variation Selector" as bottommost group.
|
MIDI File Selector | This Group contains controls for selecting MIDI files and for loading MIDI files from disk using drag and drop.
|
MIDIP Swing | A knob template that adjusts the swing of the variation. Its Value must be set to @Swing . |
MIDIP Gate Scale | A knob template that adjusts the gate scale of the variation. Its Value must be set to @GateScale . |
MIDIP Vel Scale | A knob template that adjusts the velocity scale of the variation. Its Value must be set to @VelocityScale . |
MIDIP Quantize Grid | A menu template for selecting the note value of the quantization grid of the variation. Its Value must be set to @QuantizeGrid . |
MIDIP Quantize Amount | A knob template that adjusts the amount of quantization for the MIDI file of the variation. Its Value must be set to @QuantizeAmount . |