60#ifndef FL_STB_HEXWAVE_INCLUDE_FL_STB_HEXWAVE_H
61#define FL_STB_HEXWAVE_INCLUDE_FL_STB_HEXWAVE_H
66#ifndef FL_STB_HEXWAVE_MAX_BLEP_LENGTH
67#define FL_STB_HEXWAVE_MAX_BLEP_LENGTH 64
71namespace third_party {
void hexwave_engine_destroy(HexWaveEngine *engine) FL_NOEXCEPT
Destroy a HexWaveEngine and free its resources.
void hexwave_create(HexWave *hex, HexWaveEngine *engine, int32_t reflect, float peak_time, float half_height, float zero_wait) FL_NOEXCEPT
Create a new oscillator with the given waveform parameters.
void hexwave_change(HexWave *hex, int32_t reflect, float peak_time, float half_height, float zero_wait) FL_NOEXCEPT
Change oscillator waveform parameters (takes effect at next cycle boundary)
void hexwave_create_legacy(HexWave *hex, int32_t reflect, float peak_time, float half_height, float zero_wait) FL_NOEXCEPT
Create oscillator using global engine (DEPRECATED)
void hexwave_init(int32_t width, int32_t oversample, float *user_buffer) FL_NOEXCEPT
Initialize the hexwave library (DEPRECATED - use hexwave_engine_create)
void hexwave_shutdown(float *user_buffer) FL_NOEXCEPT
Shutdown the hexwave library (DEPRECATED - use hexwave_engine_destroy)
HexWaveEngine * hexwave_engine_create(int32_t width, int32_t oversample, float *user_buffer) FL_NOEXCEPT
Create and initialize a new HexWaveEngine.
void hexwave_generate_samples(float *output, int32_t num_samples, HexWave *hex, float freq) FL_NOEXCEPT
Generate audio samples.
float * blep
Band-limited step table.
bool ownsBuffers
True if engine allocated blep/blamp (vs user-provided)
float * blamp
Band-limited ramp table.
int32_t oversample
Number of oversampled versions.
HexWaveParameters current
HexWaveEngine * engine
Pointer to engine with BLEP/BLAMP tables.
HexWaveParameters pending
float buffer[FL_STB_HEXWAVE_MAX_BLEP_LENGTH]
int32_t width
Width of fixup in samples (4..64)
Engine state holding BLEP/BLAMP tables.
Base definition for an LED controller.
#define FL_STB_HEXWAVE_MAX_BLEP_LENGTH