|
| Spectrogram () |
| Constructs the Spectrogram with default parameters.
|
|
virtual | ~Spectrogram () |
| Destructor.
|
|
void | drawWaveform (OpenGlWrapper &open_gl, int index) |
| Draws the frequency-domain waveform (spectrogram line) for a given channel index.
|
|
void | render (OpenGlWrapper &open_gl, bool animate) override |
| Renders the spectrogram for both channels.
|
|
void | setAudioMemory (const vital::StereoMemory *memory) |
| Sets the StereoMemory from which audio data is read for the FFT.
|
|
void | paintBackground (Graphics &g) override |
| Paints a background using JUCE's Graphics (e.g., frequency lines).
|
|
void | setOversampleAmount (int oversample) |
| Sets the oversampling amount used for adjusting frequency scaling.
|
|
void | setMinFrequency (float frequency) |
| Sets the minimum frequency displayed in the spectrogram.
|
|
void | setMaxFrequency (float frequency) |
| Sets the maximum frequency displayed in the spectrogram.
|
|
void | setMinDb (float db) |
| Sets the minimum dB level displayed.
|
|
void | setMaxDb (float db) |
| Sets the maximum dB level displayed.
|
|
void | paintBackgroundLines (bool paint) |
| Enables or disables painting background frequency lines.
|
|
| OpenGlLineRenderer (int num_points, bool loop=false) |
| Constructs an OpenGlLineRenderer for a given number of points.
|
|
virtual | ~OpenGlLineRenderer () |
| Destructor.
|
|
virtual void | init (OpenGlWrapper &open_gl) override |
| Initializes OpenGL resources for rendering the line.
|
|
virtual void | destroy (OpenGlWrapper &open_gl) override |
| Destroys OpenGL resources allocated by this line renderer.
|
|
force_inline void | setColor (Colour color) |
| Sets the line color.
|
|
force_inline void | setLineWidth (float width) |
| Sets the line width in pixels.
|
|
force_inline void | setBoost (float boost) |
| Sets a global boost value affecting line thickness.
|
|
force_inline float | boostLeftAt (int index) const |
| Gets the left-side boost at a given point index.
|
|
force_inline float | boostRightAt (int index) const |
| Gets the right-side boost at a given point index.
|
|
force_inline float | yAt (int index) const |
| Gets the y-coordinate of a point at a given index.
|
|
force_inline float | xAt (int index) const |
| Gets the x-coordinate of a point at a given index.
|
|
force_inline void | setBoostLeft (int index, float val) |
| Sets the left-side boost for a point, marking data as dirty.
|
|
force_inline void | setBoostRight (int index, float val) |
| Sets the right-side boost for a point, marking data as dirty.
|
|
force_inline void | setYAt (int index, float val) |
| Sets the y-coordinate of a point, marking data as dirty.
|
|
force_inline void | setXAt (int index, float val) |
| Sets the x-coordinate of a point, marking data as dirty.
|
|
void | setFillVertices (bool left) |
| Sets fill vertices according to the current line and boost data.
|
|
void | setLineVertices (bool left) |
| Sets line vertices according to the current line and boost data.
|
|
force_inline void | setFill (bool fill) |
| Enables or disables filling below the line.
|
|
force_inline void | setFillColor (Colour fill_color) |
| Sets a uniform fill color if only one color is needed.
|
|
force_inline void | setFillColors (Colour fill_color_from, Colour fill_color_to) |
| Sets a gradient fill from one color to another.
|
|
force_inline void | setFillCenter (float fill_center) |
| Sets the vertical center for the fill area.
|
|
force_inline void | setFit (bool fit) |
| Enables fitting the line inside the available area.
|
|
force_inline void | setBoostAmount (float boost_amount) |
| Sets the boost amount that affects line thickness.
|
|
force_inline void | setFillBoostAmount (float boost_amount) |
| Sets the boost amount that affects fill thickness.
|
|
force_inline void | setIndex (int index) |
| Sets an index used for custom behavior (e.g., multiple line sets).
|
|
void | boostLeftRange (float start, float end, int buffer_vertices, float min) |
| Boosts left-side range of the line.
|
|
void | boostRightRange (float start, float end, int buffer_vertices, float min) |
| Boosts right-side range of the line.
|
|
void | boostRange (float *boosts, float start, float end, int buffer_vertices, float min) |
| Boosts a range for the given boost array.
|
|
void | boostRange (vital::poly_float start, vital::poly_float end, int buffer_vertices, vital::poly_float min) |
| Boosts left and right arrays using poly_float parameters.
|
|
void | decayBoosts (vital::poly_float mult) |
| Decays all boosts by a multiplicative factor, allowing animated damping.
|
|
void | enableBackwardBoost (bool enable) |
| Enables backward boost calculation for symmetrical line deformation.
|
|
force_inline int | numPoints () const |
| Gets the number of points in the line.
|
|
force_inline Colour | color () const |
| Gets the current line color.
|
|
void | drawLines (OpenGlWrapper &open_gl, bool left) |
| Draws the line and optional fill using OpenGL.
|
|
bool | anyBoostValue () |
| Checks if any boost value is set.
|
|
| OpenGlComponent (String name="") |
| Constructs an OpenGlComponent.
|
|
virtual | ~OpenGlComponent () |
| Destructor.
|
|
virtual void | resized () override |
| Called when the component is resized.
|
|
virtual void | parentHierarchyChanged () override |
| Called when the component's parent hierarchy changes.
|
|
void | addRoundedCorners () |
| Adds rounded corners to the component's edges.
|
|
void | addBottomRoundedCorners () |
| Adds rounded corners only at the bottom of the component.
|
|
void | renderCorners (OpenGlWrapper &open_gl, bool animate, Colour color, float rounding) |
| Renders the corner shapes using the given color and rounding amount.
|
|
void | renderCorners (OpenGlWrapper &open_gl, bool animate) |
| Renders corners with default body color and rounding.
|
|
void | repaintBackground () |
| Requests a repaint of the component's background on the OpenGL layer.
|
|
Colour | getBodyColor () const |
| Retrieves the component's body color.
|
|
void | setParent (const SynthSection *parent) |
| Sets a pointer to the parent SynthSection for skin value lookups.
|
|
float | findValue (Skin::ValueId value_id) |
| Finds a float value from the skin associated with this component's parent.
|
|
void | setSkinValues (const Skin &skin) |
| Applies the skin overrides to this component's colors.
|
|
void | setSkinOverride (Skin::SectionOverride skin_override) |
| Sets a skin override to control the component's color scheme.
|
|
force_inline void | checkGlError () |
| Checks for and asserts that there are no OpenGL errors.
|
|
void | setBackgroundColor (const Colour &color) |
| Sets the background color of the component for painting operations.
|
|
|
static bool | setViewPort (Component *component, Rectangle< int > bounds, OpenGlWrapper &open_gl) |
| Sets the OpenGL viewport to match a specified rectangle within a component.
|
|
static bool | setViewPort (Component *component, OpenGlWrapper &open_gl) |
| Convenience overload that sets the viewport for the entire component's local bounds.
|
|
static void | setScissor (Component *component, OpenGlWrapper &open_gl) |
| Sets the OpenGL scissor region to the entire component's local bounds.
|
|
static void | setScissorBounds (Component *component, Rectangle< int > bounds, OpenGlWrapper &open_gl) |
| Sets the OpenGL scissor region to a specified rectangle within a component.
|
|
static std::unique_ptr< OpenGLShaderProgram::Uniform > | getUniform (const OpenGlWrapper &open_gl, const OpenGLShaderProgram &program, const char *name) |
| Retrieves a uniform from the shader program if it exists.
|
|
static std::unique_ptr< OpenGLShaderProgram::Attribute > | getAttribute (const OpenGlWrapper &open_gl, const OpenGLShaderProgram &program, const char *name) |
| Retrieves an attribute from the shader program if it exists.
|
|
static String | translateFragmentShader (const String &code) |
| Translates a fragment shader code snippet to be compatible with the current GL version.
|
|
static String | translateVertexShader (const String &code) |
| Translates a vertex shader code snippet to be compatible with the current GL version.
|
|
bool | setViewPort (OpenGlWrapper &open_gl) |
| Sets the viewport for this component using the current OpenGlWrapper.
|
|
std::unique_ptr< OpenGlCorners > | corners_ |
| Optional corners for rounded edges.
|
|
bool | only_bottom_corners_ |
| Flag to round only the bottom corners.
|
|
Colour | background_color_ |
| The background color of the component.
|
|
Colour | body_color_ |
| The body color of the component.
|
|
const SynthSection * | parent_ |
| Pointer to parent SynthSection for skin lookups.
|
|
Skin::SectionOverride | skin_override_ |
| Skin override for custom appearance.
|
|
const vital::StatusOutput * | num_voices_readout_ |
| StatusOutput for voice count lookups.
|
|
Renders a frequency-domain representation (spectrogram) using OpenGL.
The Spectrogram class uses a Fourier transform to display the frequency content of audio data over time. It reads from a StereoMemory buffer, applies a window function, performs an FFT, and then visualizes the amplitude across frequencies as a line. Both left and right channels are represented, and various frequency and dB range parameters can be set.