Vital
|
Provides an overlay for editing WaveSource objects in the Wavetable component. More...
#include <wave_source_overlay.h>
Public Member Functions | |
WaveSourceOverlay () | |
Constructs a new WaveSourceOverlay. | |
void | resized () override |
Called when the component is resized. | |
virtual void | frameSelected (WavetableKeyframe *keyframe) override |
Called when a keyframe is selected within the Wavetable. | |
virtual void | frameDragged (WavetableKeyframe *keyframe, int position) override |
Called when a keyframe is dragged within the Wavetable. | |
virtual void | setEditBounds (Rectangle< int > bounds) override |
Sets the bounds for the editable region of this overlay. | |
virtual bool | setTimeDomainBounds (Rectangle< int > bounds) override |
Sets the bounds for the time-domain editor. | |
virtual bool | setFrequencyAmplitudeBounds (Rectangle< int > bounds) override |
Sets the bounds for the frequency amplitude editor. | |
virtual bool | setPhaseBounds (Rectangle< int > bounds) override |
Sets the bounds for the frequency phase editor. | |
void | updateFrequencyDomain (std::complex< float > *frequency_domain) |
Updates the frequency-domain editors with new data. | |
void | loadFrequencyDomain () |
Loads frequency-domain data from the editors back into the current frame. | |
void | valuesChanged (int start, int end, bool mouse_up) override |
Called when values in the WaveSourceEditor are changed. | |
void | barsChanged (int start, int end, bool mouse_up) override |
Called when values in the BarEditor are changed. | |
void | sliderValueChanged (Slider *moved_slider) override |
Called when a slider changes value. | |
void | setPowerScale (bool scale) override |
Enables or disables power scaling for the frequency amplitude editor. | |
void | setFrequencyZoom (float zoom) override |
Sets the zoom level for frequency-domain editors. | |
void | setInterpolationType (WaveSource::InterpolationStyle style, WaveSource::InterpolationMode mode) |
Sets the interpolation type for the WaveSource. | |
void | setWaveSource (WaveSource *wave_source) |
Assigns a WaveSource to this overlay. | |
![]() | |
WavetableComponentOverlay (String name) | |
Constructs a WavetableComponentOverlay. | |
WavetableComponentOverlay ()=delete | |
Deleted default constructor. | |
void | paintBackground (Graphics &g) override |
Custom paint method for background. | |
void | playheadMoved (int position) override |
Called when the wavetable playhead moves, but default does nothing. | |
void | resetOverlay () |
Resets the overlay, clearing any associated component. | |
void | initOpenGlComponents (OpenGlWrapper &open_gl) override |
Initializes OpenGL components. | |
bool | initialized () |
Checks if the overlay has been initialized. | |
void | addFrameListener (Listener *listener) |
Adds a listener for frame changes. | |
void | removeListener (Listener *listener) |
Removes a frame listener. | |
void | setPadding (int padding) |
Sets padding around controls and triggers a repaint. | |
int | getPadding () |
Gets the current padding value. | |
void | setComponent (WavetableComponent *component) |
Sets the WavetableComponent that this overlay is editing. | |
WavetableComponent * | getComponent () |
Gets the currently associated WavetableComponent. | |
![]() | |
SynthSection (const String &name) | |
Constructs a SynthSection with a given name. | |
virtual | ~SynthSection ()=default |
void | setParent (const SynthSection *parent) |
Sets the parent SynthSection. | |
float | findValue (Skin::ValueId value_id) const |
Finds a value in the skin overrides or from the parent if not found locally. | |
virtual void | reset () |
Resets the section and all sub-sections. | |
virtual void | paint (Graphics &g) override |
Called when the component should paint itself. | |
virtual void | paintSidewaysHeadingText (Graphics &g) |
Paints the section name heading text vertically if sideways_heading_ is true. | |
virtual void | paintHeadingText (Graphics &g) |
Paints the heading text for this section, either sideways or horizontally. | |
virtual void | setSkinValues (const Skin &skin, bool top_level) |
Sets skin values (colors, sizes) and applies them to sub-sections. | |
void | setSkinOverride (Skin::SectionOverride skin_override) |
virtual void | repaintBackground () |
Requests a repaint of the background. | |
void | showPopupBrowser (SynthSection *owner, Rectangle< int > bounds, std::vector< File > directories, String extensions, std::string passthrough_name, std::string additional_folders_name) |
Shows a file browser popup (e.g., for loading samples or wavetables). | |
void | updatePopupBrowser (SynthSection *owner) |
Updates the currently visible popup browser if any. | |
void | showPopupSelector (Component *source, Point< int > position, const PopupItems &options, std::function< void(int)> callback, std::function< void()> cancel={ }) |
Shows a popup selector with options. | |
void | showDualPopupSelector (Component *source, Point< int > position, int width, const PopupItems &options, std::function< void(int)> callback) |
Shows a dual popup selector for hierarchical selection. | |
void | showPopupDisplay (Component *source, const std::string &text, BubbleComponent::BubblePlacement placement, bool primary) |
Shows a brief popup display (like a tooltip). | |
void | hidePopupDisplay (bool primary) |
Hides the currently shown popup display. | |
virtual void | loadFile (const File &file) |
Loads a file (e.g., a sample or wavetable). Overridden by subclasses. | |
virtual File | getCurrentFile () |
Gets the currently loaded file. Overridden by subclasses. | |
virtual std::string | getFileName () |
Gets the name of the currently loaded file. Overridden by subclasses. | |
virtual std::string | getFileAuthor () |
Gets the author metadata of the currently loaded file. Overridden by subclasses. | |
virtual void | paintContainer (Graphics &g) |
Paints the container background, body, heading, etc. | |
virtual void | paintBody (Graphics &g, Rectangle< int > bounds) |
Paints the body background within given bounds. | |
virtual void | paintBorder (Graphics &g, Rectangle< int > bounds) |
Paints the border around given bounds. | |
virtual void | paintBody (Graphics &g) |
Paints the section body background using the entire component area. | |
virtual void | paintBorder (Graphics &g) |
Paints the border around the entire component. | |
int | getComponentShadowWidth () |
Gets the width of shadow around components. | |
virtual void | paintTabShadow (Graphics &g) |
Paints a tab-like shadow effect around the component. | |
void | paintTabShadow (Graphics &g, Rectangle< int > bounds) |
Paints a tab shadow effect within specified bounds. | |
virtual void | paintBackgroundShadow (Graphics &g) |
Stub for painting background shadows. Overridden by subclasses if needed. | |
virtual void | setSizeRatio (float ratio) |
Sets the size ratio for scaling UI elements. | |
void | paintKnobShadows (Graphics &g) |
Paints knob shadows for all sliders. | |
Font | getLabelFont () |
Gets a suitable font for label text. | |
void | setLabelFont (Graphics &g) |
Sets the Graphics context font and color for labels. | |
void | drawLabelConnectionForComponents (Graphics &g, Component *left, Component *right) |
Draws a rectangular connection between labels of two components. | |
void | drawLabelBackground (Graphics &g, Rectangle< int > bounds, bool text_component=false) |
Draws a background for a label area. | |
void | drawLabelBackgroundForComponent (Graphics &g, Component *component) |
Draws label background for a specific component. | |
Rectangle< int > | getDividedAreaBuffered (Rectangle< int > full_area, int num_sections, int section, int buffer) |
Divides an area into equal sections with buffering, returns the specified section. | |
Rectangle< int > | getDividedAreaUnbuffered (Rectangle< int > full_area, int num_sections, int section, int buffer) |
Divides an area into equal sections without extra buffering, returns the specified section. | |
Rectangle< int > | getLabelBackgroundBounds (Rectangle< int > bounds, bool text_component=false) |
Gets the background bounds for a label. | |
Rectangle< int > | getLabelBackgroundBounds (Component *component, bool text_component=false) |
Gets the label background bounds for a component. | |
void | drawLabel (Graphics &g, String text, Rectangle< int > component_bounds, bool text_component=false) |
Draws a label text below a component. | |
void | drawLabelForComponent (Graphics &g, String text, Component *component, bool text_component=false) |
Draws a label for a given component. | |
void | drawTextBelowComponent (Graphics &g, String text, Component *component, int space, int padding=0) |
Draws text below a component with optional padding. | |
virtual void | paintChildrenShadows (Graphics &g) |
Paints shadows for child sections. | |
void | paintChildrenBackgrounds (Graphics &g) |
Paints the backgrounds for all child sections. | |
void | paintOpenGlChildrenBackgrounds (Graphics &g) |
Paints the backgrounds for all OpenGL child components. | |
void | paintChildBackground (Graphics &g, SynthSection *child) |
Paints a child's background specifically. | |
void | paintChildShadow (Graphics &g, SynthSection *child) |
Paints a child's shadow specifically. | |
void | paintOpenGlBackground (Graphics &g, OpenGlComponent *child) |
Paints the background of an OpenGlComponent child. | |
void | drawTextComponentBackground (Graphics &g, Rectangle< int > bounds, bool extend_to_label) |
Draws a background for a text component area. | |
void | drawTempoDivider (Graphics &g, Component *sync) |
Draws a divider line for tempo-related controls. | |
virtual void | renderOpenGlComponents (OpenGlWrapper &open_gl, bool animate) |
Renders all OpenGL components in this section and sub-sections. | |
virtual void | destroyOpenGlComponents (OpenGlWrapper &open_gl) |
Destroys all OpenGL components in this section and sub-sections. | |
virtual void | buttonClicked (Button *clicked_button) override |
Called when a button is clicked. Updates the synth parameter accordingly. | |
virtual void | guiChanged (SynthButton *button) override |
Called when a SynthButton state changes (GUI interaction). | |
std::map< std::string, SynthSlider * > | getAllSliders () |
Gets all sliders registered in this section. | |
std::map< std::string, ToggleButton * > | getAllButtons () |
Gets all toggle buttons registered in this section. | |
std::map< std::string, ModulationButton * > | getAllModulationButtons () |
Gets all modulation buttons registered in this section. | |
virtual void | setActive (bool active) |
Sets the active state of this section and sub-sections. | |
bool | isActive () const |
Checks if the section is currently active. | |
virtual void | animate (bool animate) |
Triggers animation state change in sub-sections if needed. | |
virtual void | setAllValues (vital::control_map &controls) |
Sets values for all known parameters from a control map. | |
virtual void | setValue (const std::string &name, vital::mono_float value, NotificationType notification) |
Sets a single parameter value for a known control. | |
void | addModulationButton (ModulationButton *button, bool show=true) |
Adds a modulation button to this section. | |
void | addSubSection (SynthSection *section, bool show=true) |
Adds a subsection (another SynthSection) as a child. | |
void | removeSubSection (SynthSection *section) |
Removes a previously added subsection. | |
virtual void | setScrollWheelEnabled (bool enabled) |
Enables or disables scroll wheel support for this section and sub-sections. | |
ToggleButton * | activator () const |
Gets the activator toggle button if any. | |
void | setSkinValues (std::map< Skin::ValueId, float > values) |
Sets custom skin values for this section. | |
void | setSkinValue (Skin::ValueId id, float value) |
Sets a single skin value override. | |
float | getTitleWidth () |
float | getPadding () |
float | getPowerButtonOffset () const |
float | getKnobSectionHeight () |
float | getSliderWidth () |
float | getSliderOverlap () |
float | getSliderOverlapWithSpace () |
float | getTextComponentHeight () |
float | getStandardKnobSize () |
float | getTotalKnobHeight () |
float | getTextSectionYOffset () |
float | getModButtonWidth () |
float | getModFontSize () |
float | getWidgetMargin () |
float | getWidgetRounding () |
float | getSizeRatio () const |
int | getPopupWidth () const |
int | getDualPopupWidth () const |
![]() | |
virtual | ~ButtonListener () |
Virtual destructor. | |
![]() | |
virtual | ~Listener () |
![]() | |
virtual | ~Listener () |
virtual void | positionsUpdated () |
Called when keyframe positions or arrangement changes. | |
virtual void | wheelMoved (const MouseEvent &e, const MouseWheelDetails &wheel) |
Called when the mouse wheel is moved over the organizer. | |
![]() | |
virtual | ~Listener () |
![]() | |
virtual | ~Listener () |
Static Public Attributes | |
static constexpr int | kDefaultXGrid = 6 |
Default number of horizontal grid divisions. | |
static constexpr int | kDefaultYGrid = 4 |
Default number of vertical grid divisions. | |
static constexpr float | kDefaultPhase = -0.5f |
Default phase value for frequency phase editor. | |
static constexpr float | kBarAlpha = 0.75f |
Default alpha value for bars in BarEditor components. | |
![]() | |
static constexpr int | kMaxGrid = 16 |
Maximum grid lines used by some overlays. | |
static constexpr float | kTitleHeightForWidth = 0.1f |
Ratio constants for layout and sizing. | |
static constexpr float | kWidgetHeightForWidth = 0.08f |
static constexpr float | kShadowPercent = 0.1f |
static constexpr float | kDividerPoint = 0.44f |
static constexpr float | kTitleHeightRatio = 0.4f |
![]() | |
static constexpr int | kDefaultPowerButtonOffset = 0 |
static constexpr float | kPowerButtonPaddingPercent = 0.29f |
static constexpr float | kTransposeHeightPercent = 0.5f |
static constexpr float | kTuneHeightPercent = 0.4f |
static constexpr float | kJointModulationRadiusPercent = 0.1f |
static constexpr float | kJointModulationExtensionPercent = 0.6666f |
static constexpr float | kPitchLabelPercent = 0.33f |
static constexpr float | kJointLabelHeightPercent = 0.4f |
static constexpr double | kTransposeMouseSensitivity = 0.2 |
static constexpr float | kJointLabelBorderRatioX = 0.05f |
static constexpr int | kDefaultBodyRounding = 4 |
static constexpr int | kDefaultLabelHeight = 10 |
static constexpr int | kDefaultLabelBackgroundHeight = 16 |
static constexpr int | kDefaultLabelBackgroundWidth = 56 |
static constexpr int | kDefaultLabelBackgroundRounding = 4 |
static constexpr int | kDefaultPadding = 2 |
static constexpr int | kDefaultPopupMenuWidth = 150 |
static constexpr int | kDefaultDualPopupMenuWidth = 340 |
static constexpr int | kDefaultStandardKnobSize = 32 |
static constexpr int | kDefaultKnobThickness = 2 |
static constexpr float | kDefaultKnobModulationAmountThickness = 2.0f |
static constexpr int | kDefaultKnobModulationMeterSize = 43 |
static constexpr int | kDefaultKnobModulationMeterThickness = 4 |
static constexpr int | kDefaultModulationButtonWidth = 64 |
static constexpr int | kDefaultModFontSize = 10 |
static constexpr int | kDefaultKnobSectionHeight = 64 |
static constexpr int | kDefaultSliderWidth = 24 |
static constexpr int | kDefaultTextWidth = 80 |
static constexpr int | kDefaultTextHeight = 24 |
static constexpr int | kDefaultWidgetMargin = 6 |
static constexpr float | kDefaultWidgetFillFade = 0.3f |
static constexpr float | kDefaultWidgetLineWidth = 4.0f |
static constexpr float | kDefaultWidgetFillCenter = 0.0f |
Protected Attributes | |
WaveSource * | wave_source_ |
Pointer to the WaveSource being edited. | |
vital::WaveFrame * | current_frame_ |
Pointer to the currently selected WaveFrame in the WaveSource. | |
std::unique_ptr< WaveSourceEditor > | oscillator_ |
Editor for time-domain waveforms. | |
std::unique_ptr< BarEditor > | frequency_amplitudes_ |
BarEditor for frequency amplitudes. | |
std::unique_ptr< BarEditor > | frequency_phases_ |
BarEditor for frequency phases. | |
std::unique_ptr< TextSelector > | interpolation_type_ |
TextSelector for choosing interpolation style and mode. | |
std::unique_ptr< SynthSlider > | horizontal_grid_ |
SynthSlider for the number of horizontal grid lines in the WaveSourceEditor. | |
std::unique_ptr< SynthSlider > | vertical_grid_ |
SynthSlider for the number of vertical grid lines in the WaveSourceEditor. | |
std::unique_ptr< Component > | horizontal_incrementers_ |
Incrementer button set for horizontal grid adjustments. | |
std::unique_ptr< Component > | vertical_incrementers_ |
Incrementer button set for vertical grid adjustments. | |
std::unique_ptr< Slider > | interpolation_selector_ |
(Unused) Slider for interpolation selection in other contexts. | |
![]() | |
WavetableComponent * | current_component_ |
ControlsBackground | controls_background_ |
std::vector< Listener * > | listeners_ |
Rectangle< int > | edit_bounds_ |
int | controls_width_ |
bool | initialized_ |
int | padding_ |
![]() | |
std::map< Skin::ValueId, float > | value_lookup_ |
std::vector< SynthSection * > | sub_sections_ |
std::vector< OpenGlComponent * > | open_gl_components_ |
std::map< std::string, SynthSlider * > | slider_lookup_ |
std::map< std::string, Button * > | button_lookup_ |
std::map< std::string, ModulationButton * > | modulation_buttons_ |
std::map< std::string, SynthSlider * > | all_sliders_ |
std::map< std::string, ToggleButton * > | all_buttons_ |
std::map< std::string, ModulationButton * > | all_modulation_buttons_ |
const SynthSection * | parent_ |
SynthButton * | activator_ |
PresetSelector * | preset_selector_ |
bool | preset_selector_half_width_ |
std::unique_ptr< OffOverlay > | off_overlay_ |
Skin::SectionOverride | skin_override_ |
float | size_ratio_ |
bool | active_ |
bool | sideways_heading_ |
Additional Inherited Members | |
![]() | |
void | setControlsWidth (int width) |
Sets the total width for controls in the overlay. | |
void | notifyChanged (bool mouse_up) |
Notifies listeners that a change has occurred to the frame. | |
float | getTitleHeight () |
Gets the title height based on ratio and current edit bounds. | |
int | getDividerX () |
Gets the x position of a divider line. | |
int | getWidgetHeight () |
Gets the widget height for controls. | |
int | getWidgetPadding () |
Gets the widget padding. | |
![]() | |
void | setSliderHasHzAlternateDisplay (SynthSlider *slider) |
void | setSidewaysHeading (bool sideways) |
void | addToggleButton (ToggleButton *button, bool show) |
void | addButton (OpenGlToggleButton *button, bool show=true) |
void | addButton (OpenGlShapeButton *button, bool show=true) |
void | addSlider (SynthSlider *slider, bool show=true, bool listen=true) |
void | addOpenGlComponent (OpenGlComponent *open_gl_component, bool to_beginning=false) |
void | setActivator (SynthButton *activator) |
void | createOffOverlay () |
void | setPresetSelector (PresetSelector *preset_selector, bool half=false) |
void | paintJointControlSliderBackground (Graphics &g, int x, int y, int width, int height) |
void | paintJointControlBackground (Graphics &g, int x, int y, int width, int height) |
void | paintJointControl (Graphics &g, int x, int y, int width, int height, const std::string &name) |
void | placeJointControls (int x, int y, int width, int height, SynthSlider *left, SynthSlider *right, Component *widget=nullptr) |
void | placeTempoControls (int x, int y, int width, int height, SynthSlider *tempo, SynthSlider *sync) |
void | placeRotaryOption (Component *option, SynthSlider *rotary) |
void | placeKnobsInArea (Rectangle< int > area, std::vector< Component * > knobs) |
void | lockCriticalSection () |
void | unlockCriticalSection () |
Rectangle< int > | getPresetBrowserBounds () |
int | getTitleTextRight () |
Rectangle< int > | getPowerButtonBounds () |
Rectangle< int > | getTitleBounds () |
float | getDisplayScale () const |
virtual int | getPixelMultiple () const |
Provides an overlay for editing WaveSource objects in the Wavetable component.
The WaveSourceOverlay is responsible for handling graphical user interface elements that allow users to edit a WaveSource (time-domain waveform, frequency amplitudes, and phases). It integrates with various editors (WaveSourceEditor, BarEditor) to facilitate editing both the time-domain data and the frequency-domain data.
WaveSourceOverlay::WaveSourceOverlay | ( | ) |
Constructs a new WaveSourceOverlay.
Initializes various editors (time-domain, frequency amplitude, frequency phase) and controls (sliders, incrementers, etc.) for modifying the wave source data.
Initializes the GUI components (time-domain editor, frequency amplitude editor, frequency phase editor, interpolation controls, grid controls) and sets their default parameters and visibility states.
|
overridevirtual |
Called when values in the BarEditor are changed.
Called when values in the BarEditor components change.
Updates the frequency-domain data, recalculates the time-domain waveform, and reloads the editor.
start | The start index of changed data. |
end | The end index of changed data. |
mouse_up | Indicates whether the mouse button is released after changing values. |
Reloads the frequency-domain data into the current frame and updates the time-domain editor with the new waveform.
start | The starting index of the modified region. |
end | The ending index of the modified region. |
mouse_up | Indicates if this change was triggered upon mouse release. |
Implements BarEditor::Listener.
|
inlineoverridevirtual |
Called when a keyframe is dragged within the Wavetable.
This override does nothing for the WaveSourceOverlay.
keyframe | Pointer to the dragged WavetableKeyframe. |
position | The new position of the keyframe. |
Implements WavetableOrganizer::Listener.
|
overridevirtual |
Called when a keyframe is selected within the Wavetable.
Callback when a specific WavetableKeyframe is selected.
If the selected keyframe belongs to this overlay's WaveSource, the overlay's editors become visible and load the current frame data.
keyframe | Pointer to the selected WavetableKeyframe. |
If the keyframe belongs to this overlay's WaveSource, enables editing by loading the WaveFrame data into the editors.
keyframe | Pointer to the selected keyframe. |
Implements WavetableOrganizer::Listener.
void WaveSourceOverlay::loadFrequencyDomain | ( | ) |
Loads frequency-domain data from the editors back into the current frame.
Loads frequency-domain data from the BarEditor components back into the current frame.
Converts the updated frequency-domain data into the time-domain, normalizes, then back to frequency-domain.
Converts updated amplitude and phase data to std::complex<float>, updates the WaveFrame, and converts back and forth between time and frequency domains to apply the changes.
|
overridevirtual |
Called when the component is resized.
Called when the WaveSourceOverlay is resized.
Updates the layout and colors for the internal sub-components.
Updates the layout of internal editors and sets colors based on the current skin.
Reimplemented from SynthSection.
|
overridevirtual |
Sets the bounds for the editable region of this overlay.
Sets the bounds for the overlay’s editable area and positions sub-controls.
bounds | The bounding rectangle for the overlay’s controls. |
This method computes appropriate sizing for the interpolation selector, grid sliders, and incrementer buttons.
bounds | The bounding rectangle where controls should be placed. |
Reimplemented from WavetableComponentOverlay.
|
overridevirtual |
Sets the bounds for the frequency amplitude editor.
bounds | The bounding rectangle for the frequency amplitude editor. |
Reimplemented from WavetableComponentOverlay.
|
inlineoverridevirtual |
Sets the zoom level for frequency-domain editors.
zoom | The new zoom level. |
Reimplemented from WavetableComponentOverlay.
void WaveSourceOverlay::setInterpolationType | ( | WaveSource::InterpolationStyle | style, |
WaveSource::InterpolationMode | mode ) |
Sets the interpolation type for the WaveSource.
Sets the interpolation type on the associated WaveSource.
style | The interpolation style. |
mode | The interpolation mode (time or spectral). |
Converts the style and mode into the appropriate slider value for the interpolation selector.
style | The desired interpolation style. |
mode | The desired interpolation mode. |
|
overridevirtual |
Sets the bounds for the frequency phase editor.
bounds | The bounding rectangle for the frequency phase editor. |
Reimplemented from WavetableComponentOverlay.
|
inlineoverridevirtual |
Enables or disables power scaling for the frequency amplitude editor.
scale | If true, the frequency amplitudes will be power-scaled. |
Reimplemented from WavetableComponentOverlay.
|
overridevirtual |
Sets the bounds for the time-domain editor.
bounds | The bounding rectangle for the time-domain editor. |
Reimplemented from WavetableComponentOverlay.
|
inline |
Assigns a WaveSource to this overlay.
wave_source | Pointer to the WaveSource to edit. |
|
overridevirtual |
Called when a slider changes value.
Used to handle changes in grid size and interpolation type.
moved_slider | Pointer to the slider that has changed. |
Handles changes in grid sliders and interpolation type.
moved_slider | The slider that changed. |
Reimplemented from SynthSection.
void WaveSourceOverlay::updateFrequencyDomain | ( | std::complex< float > * | frequency_domain | ) |
Updates the frequency-domain editors with new data.
Updates the frequency-domain editors with the given complex data.
Populates frequency amplitude and phase editors from a complex float array.
frequency_domain | Pointer to the frequency-domain array of std::complex<float>. |
Computes amplitude and phase for each frequency bin, adjusting amplitudes to fit the editor's scale and normalizing phase values between 0 and 1.
frequency_domain | Pointer to an array of std::complex<float>. |
|
overridevirtual |
Called when values in the WaveSourceEditor are changed.
Called when time-domain values in the WaveSourceEditor change.
Updates the time-domain data in the current frame and recalculates frequency-domain data.
start | The start index of changed data. |
end | The end index of changed data. |
mouse_up | Indicates whether the mouse button is released after changing values. |
Updates the WaveFrame’s time-domain data and recalculates the frequency-domain data.
start | The starting index of the modified region. |
end | The ending index of the modified region. |
mouse_up | Indicates if this change was triggered upon mouse release. |
Implements WaveSourceEditor::Listener.
|
protected |
Pointer to the currently selected WaveFrame in the WaveSource.
|
protected |
BarEditor for frequency amplitudes.
|
protected |
BarEditor for frequency phases.
|
protected |
SynthSlider for the number of horizontal grid lines in the WaveSourceEditor.
|
protected |
Incrementer button set for horizontal grid adjustments.
|
protected |
(Unused) Slider for interpolation selection in other contexts.
|
protected |
TextSelector for choosing interpolation style and mode.
|
staticconstexpr |
Default alpha value for bars in BarEditor components.
|
staticconstexpr |
Default phase value for frequency phase editor.
A negative phase indicates a shift in the waveform’s starting angle.
|
staticconstexpr |
Default number of horizontal grid divisions.
|
staticconstexpr |
Default number of vertical grid divisions.
|
protected |
Editor for time-domain waveforms.
|
protected |
SynthSlider for the number of vertical grid lines in the WaveSourceEditor.
|
protected |
Incrementer button set for vertical grid adjustments.
|
protected |
Pointer to the WaveSource being edited.