/ HALion Developer Resource / HALion Macro Page / Templates /

FlexPhraser


On this page:


Flexphraser

Description

The FlexPhaser template contains controls for selecting the phrases, adjusting the performance parameters like Swing, Gate Scale, etc., and for using the eight variations of the FlexPhraser MIDI module. In addition, there are controls for recording the MIDI output of the FlexPhraser and to export the recorded phrase via drag and drop.

Functionality such as using the eight variations, exporting the recorded MIDI output, 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 phrase 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:

  1. Load the Init Basic Controls.vstpreset from the Basic Controls library.
  2. Open the Macro Page Designer, go to the GUI Tree and navigate to "Pages > FlexPhraser Page > Arp Parameter".
  3. Select "FlexPhraser View" and click Edit Element Edit Element to examine the template.

❕ The other control templates inside the Arp Parameter group are directly connected to the FlexPhraser MIDI module and do not require detailed explanation. The control template for creating User phrases can be found in the StepSEQ group. See FlexPhraserStepSeq for details.

Template Properties

PopertyDescription
NameThe name of the element. This name will be displayed in the GUI Tree.
Position/SizePosition X, Position Y, Width, Height: Position and size of the element in pixels. Position X/Y defines the position of the upper left corner.
AttachDefines how an element behaves when its parent element is resized. You can set the following parameters:
  • Left: If the parent element is resized, the element remains attached to left edge, with the specified ratio.
  • Right: If the parent element is resized, the element moves relatively to the right edge, with the specified ratio.
  • Top: If the parent element is resized, the element remains attached to top edge, with the specified ratio.
  • Bottom: If the parent element is resized, the element moves relatively to the bottom edge, with the specified ratio.
  • Left + Right: If the parent element is resized, the element is resized horizontally relatively to the left and right edges, with the specified ratio.
TooltipText that appears as a tooltip when the mouse hovers over the element.
TemplateDetermines the template to be referenced.

Template Parameters

ParameterDescription
ScopeDefines the path to the FlexPhraser MIDI module to be controlled. For example: @0:FlexPhraser controls the first FlexPhraser in the program.
ProductProduct specifies the root folder for the location of the subpresets, both for loading and saving. Set this to HALion if you want to load phrases from the standard file path for subpresets. Load From (see below) must be set to StepSEQ Phrases, which specifies the path to the folder that contains the subpresets for the phrases. When saving User phrases, these will be written to ./Documents/Steinberg/HALion/Sub Presets/StepSEQ Phrases on hard disk. They are displayed with a user icon in the phrase selector.

If you want to deliver your own phrases as part of your library, you can set Product to the name of your instrument, e.g., MyProductName. This way, only the phrases for MyProductName will be shown in the phrase selector. The location of the phrases inside the VST Sound of your library must match the path defined by Product and Load From, otherwise the phrase selector will not see these phrases. Assuming Load From is again set to StepSEQ Phrases: Then, the User phrases must be added to the folder ./MyProductName/Sub Presets/StepSEQ Phrases inside the VST Sound. If the user saves phrases, these will be written to ./Documents/Steinberg/MyProductName/Sub Presets/StepSEQ Phrases on hard disk. They are displayed with a user icon in the phrase selector.

You can also include both, the HALion root folder and the root folder of your instrument, by setting Product to MyProductName|HALion. The phrase selector will then show the content of both locations. The path for saving a User phrase will use the first entry specified by MyProductName as root folder.

Load FromLoad From specifies the subpath to the location of the subpresets 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 phrases, Load From must be set to StepSEQ Phrases and Product must contain HALion.

Any phrases 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 StepSEQ Phrases and Product is set just to MyProductName, the subpresets inside the VST Sound must be located at ./MyProductName/Sub Presets/StepSEQ Phrases.

Save ToAllows you to specify the subpath to the location where the subpresets will be saved by default.
  • If Product has only one entry, either Halion or the name of your instrument, e.g., MyProductName, then the path of Load From will be included and prepend the path of Save To. See configurations 1 and 2 in the table below.
  • If Product has two entries, e.g., MyProductName|HALion, then only the path of Save To will be used. In this case it makes sense to set Save To to something like this: MyProductName/MySubfolder. See configuration 3 in the table below.

❕ If you need further control over the content locations, you can specify the required subfolder together with the Product: MyProductName/StepSEQ Phrases|HALion/StepSEQ Phrases. See configuration 4 in the following table.

Content Locations for Different Configurations

#ConfigurationContent in Phrase SelectorDefault Save Path
1

Product = HALion

Load From = StepSEQ Phrases

Save To = MySubfolder

Only phrases from HALion, including any phrases the user has saved on hard disk../Documents/Steinberg/HALion/Sub Presets/StepSEQ Phrases/MySubfolder
2

Product = MyProductName

Load From = StepSEQ Phrases

Save To = MySubfolder

Only phrases from the specified library, including any phrases the user has saved with the instrument on hard disk../Documents/Steinberg/MyProductName/Sub Presets/StepSEQ Phrases/MySubfolder
3

Product = MyProductName|HALion

Load From = StepSEQ Phrases

Save To = MyProductName/MySubfolder

All phrases from HALion, the specified library and any phrases the user has saved on hard disk../Documents/Steinberg/MyProductName/Sub Presets/MyProductName/MySubfolder
4

Product = MyProductName/StepSEQ Phrases|HALion/StepSEQ Phrases

Load From = deactivate, leave empty

Save To = MySubfolder

All phrases from HALion, the specified library and any phrases the user has saved on hard disk../Documents/Steinberg/MyProductName/Sub Presets/StepSEQ Phrases/MySubfolder

❕ The location of the phrases inside the VST Sound must match the path defined by Product and Load From, otherwise the phrase selector will not see these phrases. If libraries deliver phrases in multiple VST Sounds, all phrases with the same path will be shown together in the phrase selector.

Components inside the Template

FlexPhraser 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.

ItemDescription
DragMIDIThis Group contains controls for recording the MIDI output of the FlexPhraser and to export the recorded phrase via drag and drop.
  • DragIcon: An Image control that provides the background bitmap of the drag area.
  • DragAvailable: This Animation control indicates if the MIDI phrase is available for exporting it. The Value of the control must be set to @EnableDragMIDI.
  • Drag MIDI recording: An Internal control that provides the drag functionality. The View property of the control must be set to dragzone_midifile.
UserA switch template that allows you to activate the User mode for the current variation. Its Value must be set to @UserMode.
VariationA 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.
  • Drag Zones: This group contains the eight Internal controls that provide the functionality for dragging a variation to a trigger pad. The View property of the respective control must be set to DragZone1, DragZone2, ..., or DragZone8 accordingly.
  • Variation Popup: This group contains the eight Internal controls that provide the context menu of the variation switches. The View property of the respective control must be set to ASB1, ASB2, ..., or ASB8 accordingly.
  • Variation Selector: This group contains eight exclusive switches to select the active variation. The Value property of all switches must be set to @ActiveState and the switches must be named ASB1, ASB2, ..., or ASB8 accordingly.
Factory/CustomA Stack containing two pages with controls to manage either the FlexPhraser factory phrases or the User phrases.
  • Factory Phrases: This Group contains the controls required to load and display factory phrases.
    • Select: This Switch control opens the phrase selector. Its Value must be set to @PhraseSelectPopup.
    • Name: This Text control displays the name of the current phrase. Its Value must be set to @phrase.
    • Background: An Image control that provides the background bitmap behind the name of the current phrase.
    • Label: A Label control to display a title.
    • Arp KeySwitchFilter: A switch template that sets the Key Switch and Noises Filter of the FlexPhraser MIDI module. Its Value must be set to @FilterNoises.
  • Custom: This Group contains the controls required to load, save, delete, and display User phrases. Furthermore, there are controls for the additional parameters Arp Mode, Key Replace, Arp Wrap and Arp Quantize of the User mode and there are controls for importing a MIDI file to be used as reference for the Arp Quantize.
    • DropMIDI: This Group contains the controls for importing the MIDI file that is needed for the Arp Quantize.
      • Internal: This Internal control is required to provide the drop functionality and a context menu to clear the MIDI data buffer. Its View property must be set to dropzone_midifile.
      • FileDropped: This Animation control indicates whether a file is present. Its Value must be set to @EnableGrooveQuantize.
      • DropIcon: An Image control that provides the background bitmap of the drop area.
    • Save: This Switch control opens the dialog for saving User phrases. Its Value must be set to @SubPresetSave. The default location for saving User phrases depends on the settings of the Template Parameters.
    • Delete: This Switch control opens the dialog for deleting User phrases. Its Value must be set to @SubPresetDelete.
    • User Phrases: This Group contains the controls required to load and display User phrases.
      • Select: This Switch control opens the phrase selector. Its Value must be set to @PhraseSelectPopup. Any User phrases you want to distribute with your library must be added to the corresponding location inside the VST Sound as specifed by Product and Load From, otherwise the phrase selector will not see these User phrases. See Template Parameters for details.
      • Name: This Text control displays the name of the current User phrase. Its Value must be set to @UsrArp.
      • Background: An Image control that provides the background bitmap behind the name of the current phrase.
      • Label: A Label control to display a title.
    • KeyReplace: A Disable group for the following parameters. Its Value must be set to @showkeyreplace.
      • Key Replace: A menu template to specify the Key Replace mode. Its Value must be set to @KeyReplace.
      • Arp Wrap: A menu template to specify the number of steps for wrapping the arpeggio. Its Value must to be set to @Wrap.
    • Arp Mode: A menu template to select the Arp Mode. Its Value must be set to @UserArpMode.
    • Arp Quantize: A value box template, to set the amount of the groove quantization. Its Value must be set to @GrooveQuantizeDepth.
Arp MuteA switch template that allows you to mute the variation. Its Value must be set to @Mute.
Arp OctavesA knob template that adjusts the octave range of the variation. Its Value must be set to @OctaveRange.
Arp Vel ScaleA knob template that adjusts the velocity scale of the variation. Its Value must be set to @VelocityScale.
Arp Gate ScaleA knob template that adjusts the gate scale of the variation. Its Value must be set to @GateScale.
Arp SwingA knob template that adjusts the swing of the variation. Its Value must be set to @Swing.
Arp TempoScaleA value box template that adjusts the note value of the tempo scale of the variation. Its Value must be set to @TempoScale.
TempoA Disable control that specifies whether the contained "Arp Tempo" template is active. Its Value must be set to @Sync.
  • Arp Tempo: A value box template that adjusts the the tempo in bpm. Its Value must be set to @Tempo.