/ HALion Developer Resource / HALion Macro Page / Controls /

Waveform


On this page:


Description

The Waveform control allows you to display the sample data of a connected sample file. For simple sample playback, a locator will be shown for the last played note. If you are using the Grain zone instead, the grain locators will be displayed. To display the part of the sample file that is effectively used and not the entire file, you can connect Sample Start/End and Trim Start/End. Furthermore, you can connect the Loop Start/End parameters to display the looped regions with a color overlay. Start Range and Release Start can also be connected to the sample oscillator to display the corresponding markers. In addition, the Waveform control can also display a spectrogram that can be drawn with an adjustable color scheme and opacity. (Since HALion 7.0)

❕ The waveform display does not take into account which loop (A or B) is used or whether the loop is active or not. It will always display markers and regions, as soon as valid connections are made. If you want a waveform display that also reflects the loop states, you can use the Sample Display template instead, because it contains a UI script that manages these states.

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.
NormalizeActivate this to normalize the sample level. This can be useful to better visualize samples with low level.
Loop MarkerActivate this option to show loop markers as flags instead of overlay rectangles. (Since HALion 7.0)
EditableActivate this option to make markers editable. The responsive editing area for markers depends on whether the Grain Pos parameter is connected. I Grain Pos is enabled, you can drag only the bottom of the marker (20 pixels). This is to avoid conflicts with the Grain Position marker which uses the rest of the display. Otherwise, markers can be dragged along their entire length. (Since HALion 7.0)

Osc Parameters

PopertyDescription
FilenameAllows you to connect the Filename parameter of the sample oscillator.
Play PosAllows you to connect the PlayPos parameter of the sample oscillator. This will display a locator for the sample playback. If you are using a Grain or Spectral zone, you must connect this to the PlayData parameter of the grain or spectral oscillator (Since HALion 7.0) instead. This will display a locator for each playing grain or each spectral multi-voice.
Grain PosAllows you to connect the Position parameter of the grain or spectral oscillator (Since HALion 7.0). This will display a locator for each playing grain or each spectral multi-voice. The locators only work if PlayPos is connected, too.
Sample StartAllows you to connect the Sample End parameter of the sample oscillator. This is required to display the correct sample region, otherwise the whole sample file is shown.
Sample EndAllows you to connect the Sample End parameter of the sample oscillator. This is required to display the correct sample region, otherwise the whole sample file is shown.
Trim StartAllows you to connect the Trim Start parameter of the sample oscillator. This is required to display the correct sample region if the sample was trimmed in the Sample Editor.
Trim EndAllows you to connect the Trim End parameter of the sample oscillator. This is required to display the correct sample region if the sample was trimmed in the Sample Editor.
SLoop StartAllows you to connect the SustainLoopStart (A or B) parameter of the sample oscillator. This is required if you want to display the sustain loop region.
SLoop EndAllows you to connect the SustainLoopEnd (A or B) parameter of the sample oscillator. This is required if you want to display the sustain loop region.
RLoop StartAllows you to connect the ReleaseLoopStart (A or B) parameter of the sample oscillator. This is required if you want to display the release loop region.
RLoop EndAllows you to connect the ReleaseLoopEnd (A or B) parameter of the sample oscillator. This is required if you want to display the release loop region.
Start RangeAllows you to connect the SampleStartRange parameter of the sample oscillator to show the sample start range marker.
Rel StartAllows you to connect the ReleaseStart parameter of the sample oscillator to show the release start marker.
Fade In LAllows you to connect the FadeInLength parameter of the sample oscillator. This is required if you want to display the influence of a fade in. (Since HALion 7.0)
Fade In CAllows you to connect the FadeInCurve parameter of the sample oscillator. This is required if you want to display the influence of a fade in. (Since HALion 7.0)
Fade Out LAllows you to connect the FadeOutLength parameter of the sample oscillator. This is required if you want to display the influence of a fade out. (Since HALion 7.0)
Fade Out CAllows you to connect the FadeOutCurve parameter of the sample oscillator. This is required if you want to display the influence of a fade out. (Since HALion 7.0)
Play ModeAllows you to connect the PlaybackMode parameter of the sample oscillator. This is required if you want to display the influence of the playback mode. Otherwise, the sample will never be shown reversed. (Since HALion 7.0)
Level EnvAllows you to connect the LevelEnvelope parameter of the sample oscillator. This is required if you want to display the influence of a level envelope. (Since HALion 7.0)

Colors

PopertyDescription
WaveformThe color of the waveform.
PlayPosThe color of the playback locators.
SusLoopThe color of the sustain loop region.
RelLoopThe color of the release loop region.
StartRangeThe color of the start range marker.
RelStartThe color of the release start marker. (Since HALion 7.0)

Spectral

(Since HALion 7.0)

PopertyDescription
SchemeSelects the color scheme to be used in the display.
FFT SizeConnect a control using an integer variable or a script parameter to select the FFT size of the window that is used for the analysis of the signal. This allows you to adjust the trade-off between temporal resolution and frequency resolution. Larger FFT sizes analyze more frequencies but with less accuracy in the time domain. See FFT Sizes for details.
OverlapConnect a control using an integer variable or a script parameter to select the number of overlapping FFT windows. Increasing the overlap can reduce artifacts, e.g., loosing details such as transients. See Overlap Factors for details.
Min LevelConnect a control using a float variable or a script parameter to set the minimum value of the scale (-240 to +20 dB).
Max LevelConnect a control using a float variable or a script parameter to set the maximum value of the scale (-220 to +20 dB).
OpacityConnect a control using a float variable or a script parameter to blend between sample and FFT display (-100 to +100) .

❕ For the FFT display settings to be saved and restored with Programs, they must be connected using script parameters.

FFT Sizes

ValueFFT Size in Samples
-1Selects the FFT size automatically depending on the length of the sample.
032
164
2128
3256
4512
51024
62048
74096
881912
916384
1032768
1165536

Overlap Factors

ValueOverlap Factor
0No overlap.
12 x
24 x
38 x
416 x
532 x
664 x
7128 x