Vital
|
Contains classes and functions used within the Vital synthesizer framework. More...
Namespaces | |
namespace | constants |
Contains enumerations, additional constants, and helper functions related to routing and effects within Vital. | |
namespace | cr |
namespace | futils |
Provides fast approximation functions for exponentials, logarithms, trigonometric operations, and saturation curves. | |
namespace | utils |
A collection of inline helper functions and constants used for SIMD computations, interpolation, and other audio-related utilities. | |
Classes | |
class | Add |
Adds two input buffers sample-by-sample. More... | |
struct | AggregateVoice |
An aggregate grouping that pairs multiple (parallel) voices with a shared Processor instance. More... | |
class | BilinearInterpolate |
Performs bilinear interpolation among four corners (top-left, top-right, bottom-left, bottom-right). More... | |
class | ChorusModule |
A chorus effect module that modulates delayed signals to create thickening and widening of the sound. More... | |
class | CircularQueue |
A generic circular buffer (FIFO) data structure that allows adding and removing elements efficiently. More... | |
class | Clamp |
Clamps each sample to a specified [min, max] range. More... | |
class | CombFilter |
A Processor implementing a comb-based filter with multiple feedback styles. More... | |
class | CombModule |
A module that implements a comb filter effect. More... | |
class | Compressor |
A dynamic range compressor Processor that operates on a single band of audio. More... | |
class | CompressorModule |
A multiband compressor module that splits the input signal into multiple bands, applies compression to each, and then recombines them. More... | |
class | DcFilter |
A simple DC blocking filter implemented as a one-pole high-pass filter. More... | |
class | Decimator |
A ProcessorRouter that intelligently reduces audio sample rate based on configured stages. More... | |
class | Delay |
A flexible delay line effect processor that can operate in various styles and apply filtering. More... | |
class | DelayModule |
A stereo delay effect module providing adjustable delay times, feedback, filtering, and wet/dry mix. More... | |
class | DigitalSvf |
A state-variable filter (SVF) implementation, supporting multiple filter types (12/24 dB, shelving, dual modes). More... | |
class | DiodeFilter |
A diode ladder filter implementation for the Vital synthesizer. More... | |
class | DirtyFilter |
A nonlinear filter that produces a "dirty" and saturated sound, ideal for adding character to the signal. More... | |
class | Distortion |
A Processor that applies various types of distortion to an audio signal. More... | |
class | DistortionModule |
A module that applies distortion and optional filtering to an audio signal. More... | |
class | EffectsModulationHandler |
A VoiceHandler extension managing various modulation sources for effects processing. More... | |
class | Envelope |
A processor that generates an envelope signal based on typical ADSR (Attack, Decay, Sustain, Release) parameters. More... | |
class | EnvelopeModule |
A module that generates an envelope signal (ADSR-like) controlled by various parameters. More... | |
class | EqualizerModule |
A multiband equalizer module that provides low, mid, and high frequency shaping. More... | |
class | Feedback |
A processor that buffers and replays audio, providing a feedback loop mechanism. More... | |
class | FFT |
A template class to provide a statically allocated FourierTransform instance for a given number of bits. More... | |
class | FilterFxModule |
A wrapper module that hosts a filter effect. This is a specialized module for filter effects in the chain. More... | |
class | FilterModule |
A versatile filter module supporting multiple filter models and mixing options. More... | |
class | FiltersModule |
A module that manages two filter modules and provides multiple routing configurations. More... | |
class | FirHalfbandDecimator |
A FIR half-band decimator for downsampling audio by a factor of 2. More... | |
class | FlangerModule |
A flanger effect module using a modulated delay line to produce comb-filter-like sweeps. More... | |
class | FormantFilter |
A multi-formant filter for vocal/voicing effects in the Vital synthesizer. More... | |
class | FormantManager |
Manages a collection of DigitalSvf instances for formant filtering. More... | |
class | FormantModule |
A module that applies various formant filtering styles to an incoming audio signal. More... | |
class | FourierTransform |
A Fourier transform implementation using KissFFT for platforms where other accelerations are unavailable. More... | |
class | IirHalfbandDecimator |
An IIR-based half-band decimator for downsampling audio by a factor of 2. More... | |
struct | Input |
Represents a connection to an Output from another Processor. More... | |
class | Interpolate |
Interpolates between two input buffers (From, To) based on a fractional value [0..1]. More... | |
class | Inverse |
Computes 1 / x for each sample. More... | |
class | LadderFilter |
A classic transistor ladder-style filter for the Vital synthesizer. More... | |
class | LegatoFilter |
A processor that filters note triggers to implement legato behavior. More... | |
class | LfoModule |
A module that generates a Low-Frequency Oscillation (LFO) signal from a LineGenerator source. More... | |
class | LinearScale |
Multiplies each sample by a fixed scale factor. More... | |
class | LineMap |
A processor that maps a phase input through a line generator, producing a value and phase output. More... | |
class | LinkwitzRileyFilter |
A Linkwitz-Riley crossover filter splitting audio into low and high bands. More... | |
struct | matrix |
A structure representing a 4x1 matrix of poly_float rows. More... | |
class | Memory |
A specialized MemoryTemplate for poly_float::kSize channels. More... | |
class | MemoryTemplate |
A template for a memory buffer that stores time-domain samples for one or more channels. More... | |
struct | modulation_change |
A structure describing changes to the modulation routing in the engine. More... | |
struct | ModulationConnection |
A structure representing a single modulation connection between a modulation source and a destination parameter. More... | |
class | ModulationConnectionBank |
A container managing a fixed number of ModulationConnections. More... | |
class | ModulationConnectionProcessor |
A processor that applies a modulation signal to a parameter, performing mapping, scaling, and morphing. More... | |
class | ModulationSum |
A special sum operator that can accumulate control-rate and audio-rate modulation signals. More... | |
struct | ModuleData |
Holds various data structures that define the internal state of a SynthModule. More... | |
class | MultibandCompressor |
A Processor implementing multiband compression using multiple Compressor instances. More... | |
class | Multiply |
Multiplies two input buffers sample-by-sample. More... | |
class | Negate |
Negates each sample (multiplies by -1). More... | |
class | NoteHandler |
An interface for handling MIDI note events within a synthesizer or audio system. More... | |
class | OneDimLookup |
A one-dimensional lookup table for a given function with a specified resolution. More... | |
class | OnePoleFilter |
A one-pole filter implementation with optional nonlinear saturation. More... | |
class | Operator |
Base class for operator nodes that perform arithmetic or other transformations in the processing graph. More... | |
class | OscillatorModule |
A synthesis module that represents an oscillator within the Vital synthesizer. More... | |
struct | Output |
Holds and manages a buffer of samples (poly_float) for a Processor's output. More... | |
class | Parameters |
A static utility class to access parameter details globally. More... | |
class | PeakMeter |
A processor that computes both instantaneous peak and a "memory peak" of an incoming audio signal. More... | |
struct | PhaseBuffer |
Holds a buffer of poly_int values for phase information. More... | |
class | Phaser |
A multi-stage phaser effect that modulates filter cutoff with a low-frequency oscillator. More... | |
class | PhaserFilter |
A multi-stage phaser filter for the Vital synthesizer. More... | |
class | PhaserModule |
A module that provides a phaser effect for audio signals. More... | |
struct | poly_float |
Represents a vector of floating-point values using SIMD instructions. More... | |
struct | poly_int |
Represents a vector of integer values using SIMD instructions. More... | |
class | PortamentoSlope |
A processor that smoothly transitions (portamento) from a source value to a target value over a specified time. More... | |
class | PredefinedWaveFrames |
Holds a set of predefined WaveFrame shapes that can be used as basic building blocks. More... | |
class | Processor |
Base class for all signal-processing units in Vital. More... | |
class | ProcessorRouter |
A specialized Processor that manages a directed graph of Processors and ensures correct processing order. More... | |
struct | ProcessorState |
Holds shared state regarding sample rate, oversampling, and other flags. More... | |
class | ProducersModule |
A module that manages multiple audio producers (oscillators and sampler) and routes their outputs. More... | |
class | RandomLfo |
A Low-Frequency Oscillator (LFO) that generates random modulation signals. More... | |
class | RandomLfoModule |
A module that produces random low-frequency oscillations (LFOs) for modulation purposes. More... | |
class | RandomValues |
A singleton class that generates and stores random poly_float values. More... | |
class | ReorderableEffectChain |
A module that manages a chain of audio effects whose order can be dynamically changed. More... | |
class | Reverb |
A Processor implementing a dense feedback network reverb. More... | |
class | ReverbModule |
A module that applies a reverb effect to an audio signal. More... | |
class | SallenKeyFilter |
A Sallen-Key style filter capable of multiple modes (12dB, 24dB, dual modes) with nonlinear drive and resonance. More... | |
class | Sample |
Holds and manages a single sampled waveform, including stereo or mono data and multiple band-limited versions for different playback rates. More... | |
class | SampleAndHoldBuffer |
Grabs the first sample from the input, then repeats it for all samples in the output. More... | |
class | SampleModule |
A module that plays back a sample (audio file) as part of the synthesis pipeline. More... | |
class | SampleSource |
A Processor that reads from a Sample object, providing audio output with controls for looping, pitch transposition, and panning. More... | |
class | SmoothMultiply |
Multiplies an audio-rate input by a smoothly changing control-rate parameter over one block. More... | |
class | SmoothValue |
A Value processor that smoothly transitions from its current value to a target value. More... | |
class | SmoothVolume |
A specialized SmoothMultiply that interprets the control-rate input in dB for volume adjustments. More... | |
class | SoundEngine |
Core class responsible for handling note events, oversampling, and the main effects chain. More... | |
class | Square |
Squares each sample (sample * sample). More... | |
class | StatusOutput |
A helper class to track the "status" of a particular Output as a poly_float value. More... | |
class | StereoEncoder |
Encodes or decodes a stereo signal by rotating or centering the phase of the left and right channels. More... | |
class | StereoMemory |
A specialized MemoryTemplate for two-channel (stereo) audio. More... | |
class | StringLayout |
Manages a keyboard layout mapping for a computer keyboard used as a MIDI input device. More... | |
class | Subtract |
Subtracts the second input buffer from the first, sample-by-sample. More... | |
class | SynthFilter |
Abstract base class for Vital’s synthesizer filters. More... | |
class | SynthLfo |
A versatile Low-Frequency Oscillator (LFO) for audio synthesis, supporting multiple sync modes and smoothing options. More... | |
class | SynthModule |
A ProcessorRouter that encapsulates a cohesive unit of functionality in the synthesizer. More... | |
class | SynthOscillator |
A core oscillator processor that generates audio by reading wavetable data with various effects. More... | |
class | SynthVoiceHandler |
Manages per-voice processing of audio signals within the Vital synthesizer. More... | |
class | TempoChooser |
Chooses a frequency based on tempo sync or direct frequency modes. More... | |
class | TriggerRandom |
A processor that outputs a random value on a trigger event. More... | |
class | Upsampler |
A simple upsampler that duplicates samples to increase the sample rate by an integral factor. More... | |
class | Value |
A Processor that maintains and outputs a constant poly_float value. More... | |
struct | ValueDetails |
Holds metadata about a single parameter (control) in the Vital synthesizer. More... | |
class | ValueDetailsLookup |
Maintains a lookup table for all parameters defined in Vital. More... | |
class | ValueSwitch |
A specialized Value processor that selects one of multiple input sources to pass through, based on its own control value. More... | |
class | VariableAdd |
Adds together an arbitrary number of inputs. More... | |
class | VocalTract |
A model of a vocal tract for generating vowel-like formants and vocal articulations. More... | |
class | Voice |
Represents a single playing note/voice, including voice-state and event handling. More... | |
class | VoiceHandler |
A SynthModule and NoteHandler that manages a pool of polyphonic voices, handles note-on/off logic, and routes the data to multiple processors. More... | |
struct | VoiceState |
Holds state data for a single voice, such as MIDI note, velocity, pitch bend, etc. More... | |
class | WaveFrame |
Represents a single frame of a wavetable, containing both time-domain and frequency-domain data. More... | |
class | Wavetable |
A class representing a wavetable, holding multiple frames of waveforms and their frequency-domain representations. More... | |
Typedefs | |
typedef std::map< std::string, Value * > | control_map |
Maps parameter names to Value pointers representing synth control parameters. | |
typedef std::pair< Value *, mono_float > | control_change |
Represents a single control change: pairs a parameter Value with the new requested value. | |
typedef std::map< std::string, Processor * > | input_map |
Maps parameter names to Processor pointers, representing input processors for signals. | |
typedef std::map< std::string, Output * > | output_map |
Maps parameter names to Output pointers, representing output signals from various modules. | |
typedef Delay< StereoMemory > | StereoDelay |
StereoDelay is a Delay processor specialized with StereoMemory. | |
typedef Delay< Memory > | MultiDelay |
MultiDelay is a Delay processor specialized with Memory. | |
typedef float | mono_float |
typedef poly_int | poly_mask |
Alias for clarity; used as a mask type in poly_float . | |
Enumerations | |
enum | VoiceEvent { kInvalid , kVoiceIdle , kVoiceOn , kVoiceHold , kVoiceDecay , kVoiceOff , kVoiceKill , kNumVoiceEvents } |
Enumerates different states or events of a synth voice's lifecycle. More... | |
Functions | |
bool | compareValueDetails (const ValueDetails *a, const ValueDetails *b) |
Comparison function for sorting parameters by version and name. | |
Variables | |
constexpr int | kNumLfos = 8 |
Number of LFO sources available in the Vital synthesizer. | |
constexpr int | kNumOscillators = 3 |
Number of oscillators available in Vital. | |
constexpr int | kNumOscillatorWaveFrames = 257 |
Number of wave frames in each oscillator’s wavetable. | |
constexpr int | kNumEnvelopes = 6 |
Number of envelope generators in Vital. | |
constexpr int | kNumRandomLfos = 4 |
Number of random LFO sources (random modulation generators). | |
constexpr int | kNumMacros = 4 |
Number of macro controls available. | |
constexpr int | kNumFilters = 2 |
Number of filter slots in Vital. | |
constexpr int | kNumFormants = 4 |
Number of formant filters available. | |
constexpr int | kNumChannels = 2 |
Number of output channels (stereo = 2). | |
constexpr int | kMaxPolyphony = 33 |
The maximum number of voices allocated for polyphony (includes an extra for handling transitions). | |
constexpr int | kMaxActivePolyphony = 32 |
The maximum number of active voices Vital uses simultaneously. | |
constexpr int | kLfoDataResolution = 2048 |
Resolution used for generating LFO data tables. | |
constexpr int | kMaxModulationConnections = 64 |
Maximum number of modulation connections allowed. | |
constexpr int | kOscilloscopeMemorySampleRate = 22000 |
Sample rate (in Hz) at which the oscilloscope memory is sampled. | |
constexpr int | kOscilloscopeMemoryResolution = 512 |
Resolution (number of samples) in the oscilloscope memory buffer. | |
constexpr int | kAudioMemorySamples = 1 << 15 |
Size of the stereo audio memory buffer used for visualization. | |
constexpr int | kDefaultWindowWidth = 1400 |
Default width of the Vital window (in pixels). | |
constexpr int | kDefaultWindowHeight = 820 |
Default height of the Vital window (in pixels). | |
constexpr int | kMinWindowWidth = 350 |
Minimum allowable window width. | |
constexpr int | kMinWindowHeight = 205 |
Minimum allowable window height. | |
constexpr int | kDefaultKeyboardOffset = 48 |
Default starting octave offset for the computer keyboard layout. | |
constexpr wchar_t | kDefaultKeyboardOctaveUp = 'x' |
Default key for octave-up action in the computer keyboard layout. | |
constexpr wchar_t | kDefaultKeyboardOctaveDown = 'z' |
Default key for octave-down action in the computer keyboard layout. | |
const std::wstring | kDefaultKeyboard = L"awsedftgyhujkolp;'" |
The default keyboard layout (QWERTY-based) mapping keys to notes. | |
const std::string | kPresetExtension = "vital" |
File extension for Vital preset files. | |
const std::string | kWavetableExtension = "vitaltable" |
File extension for Vital wavetable files. | |
const std::string | kWavetableExtensionsList = "*." + vital::kWavetableExtension + ";*.wav;*.flac" |
A semicolon-separated list of supported wavetable file extensions, including external formats like .wav and .flac. | |
const std::string | kSampleExtensionsList = "*.wav;*.flac" |
A semicolon-separated list of supported sample file formats (e.g., wav and flac). | |
const std::string | kSkinExtension = "vitalskin" |
File extension for Vital skin/theme files. | |
const std::string | kLfoExtension = "vitallfo" |
File extension for Vital LFO shape files. | |
const std::string | kBankExtension = "vitalbank" |
File extension for Vital bank files, which group multiple presets. | |
constexpr mono_float | kPi = 3.1415926535897932384626433832795f |
Pi constant. | |
constexpr mono_float | kSqrt2 = 1.414213562373095048801688724209698f |
Square root of 2. | |
constexpr mono_float | kEpsilon = 1e-16f |
A small epsilon for floating comparisons. | |
constexpr int | kMaxBufferSize = 128 |
Maximum buffer size for processing. | |
constexpr int | kMaxOversample = 8 |
Maximum allowed oversampling factor. | |
constexpr int | kDefaultSampleRate = 44100 |
Default sample rate in Hz. | |
constexpr mono_float | kMinNyquistMult = 0.45351473923f |
Minimum ratio relative to Nyquist frequency. | |
constexpr int | kMaxSampleRate = 192000 |
Maximum expected sample rate in Hz. | |
constexpr int | kMidiSize = 128 |
MIDI note count (0-127). | |
constexpr int | kMidiTrackCenter = 60 |
MIDI note considered as center (Middle C). | |
constexpr mono_float | kMidi0Frequency = 8.1757989156f |
Frequency of MIDI note 0 (C-1). | |
constexpr mono_float | kDbfsIncrease = 6.0f |
A gain increase of 6 dB. | |
constexpr int | kDegreesPerCycle = 360 |
Degrees in a full rotation (for LFO phases). | |
constexpr int | kMsPerSec = 1000 |
Milliseconds per second. | |
constexpr int | kNotesPerOctave = 12 |
Number of semitones per octave. | |
constexpr int | kCentsPerNote = 100 |
Number of cents per semitone. | |
constexpr int | kCentsPerOctave = kNotesPerOctave * kCentsPerNote |
Cents per octave (1200). | |
constexpr int | kPpq = 960 |
Pulses per quarter note used internally. | |
constexpr mono_float | kVoiceKillTime = 0.05f |
Time in seconds after which a silent voice is considered dead. | |
constexpr int | kNumMidiChannels = 16 |
MIDI channels available per device. | |
constexpr int | kFirstMidiChannel = 0 |
The first MIDI channel index. | |
constexpr int | kLastMidiChannel = kNumMidiChannels - 1 |
The last MIDI channel index. | |
constexpr float | kPcmScale = 32767.0f |
Scaling for converting float data to 16-bit PCM. | |
constexpr float | kComplexAmplitudePcmScale = 50.0f |
Additional amplitude scale used for complex data to PCM. | |
constexpr float | kComplexPhasePcmScale = 10000.0f |
Additional phase scale used for complex data to PCM. | |
Contains classes and functions used within the Vital synthesizer framework.
The main namespace for Vital synthesizer-related classes, functions, and constants.
typedef std::pair<Value*, mono_float> vital::control_change |
Represents a single control change: pairs a parameter Value with the new requested value.
typedef std::map<std::string, Value*> vital::control_map |
Maps parameter names to Value pointers representing synth control parameters.
typedef std::map<std::string, Processor*> vital::input_map |
Maps parameter names to Processor pointers, representing input processors for signals.
typedef float vital::mono_float |
typedef Delay<Memory> vital::MultiDelay |
typedef std::map<std::string, Output*> vital::output_map |
Maps parameter names to Output pointers, representing output signals from various modules.
typedef poly_int vital::poly_mask |
Alias for clarity; used as a mask type in poly_float
.
typedef Delay<StereoMemory> vital::StereoDelay |
StereoDelay is a Delay processor specialized with StereoMemory.
enum vital::VoiceEvent |
Enumerates different states or events of a synth voice's lifecycle.
kInvalid: Invalid state. kVoiceIdle: Voice is idle and not producing sound. kVoiceOn: Voice is triggered on (note-on event). kVoiceHold: Voice is holding a steady state (sustained note). kVoiceDecay: Voice is in the release/decay phase after note-off but still audible. kVoiceOff: Voice has received a note-off event and is fading out. kVoiceKill: Voice is to be terminated and reused for another note. kNumVoiceEvents: Number of possible voice events.
Enumerator | |
---|---|
kInvalid | |
kVoiceIdle | |
kVoiceOn | |
kVoiceHold | |
kVoiceDecay | |
kVoiceOff | |
kVoiceKill | |
kNumVoiceEvents |
bool vital::compareValueDetails | ( | const ValueDetails * | a, |
const ValueDetails * | b ) |
Comparison function for sorting parameters by version and name.
This ensures that parameters are sorted first by the version in which they were added, then alphabetically by name.
a | Pointer to the first ValueDetails. |
b | Pointer to the second ValueDetails. |
|
constexpr |
Size of the stereo audio memory buffer used for visualization.
const std::string vital::kBankExtension = "vitalbank" |
File extension for Vital bank files, which group multiple presets.
|
constexpr |
Number of cents per semitone.
|
constexpr |
Cents per octave (1200).
|
constexpr |
Additional amplitude scale used for complex data to PCM.
|
constexpr |
Additional phase scale used for complex data to PCM.
|
constexpr |
A gain increase of 6 dB.
const std::wstring vital::kDefaultKeyboard = L"awsedftgyhujkolp;'" |
The default keyboard layout (QWERTY-based) mapping keys to notes.
|
constexpr |
Default key for octave-down action in the computer keyboard layout.
|
constexpr |
Default key for octave-up action in the computer keyboard layout.
|
constexpr |
Default starting octave offset for the computer keyboard layout.
|
constexpr |
Default sample rate in Hz.
|
constexpr |
Default height of the Vital window (in pixels).
|
constexpr |
Default width of the Vital window (in pixels).
|
constexpr |
Degrees in a full rotation (for LFO phases).
|
constexpr |
A small epsilon for floating comparisons.
|
constexpr |
The first MIDI channel index.
|
constexpr |
The last MIDI channel index.
|
constexpr |
Resolution used for generating LFO data tables.
const std::string vital::kLfoExtension = "vitallfo" |
File extension for Vital LFO shape files.
|
constexpr |
The maximum number of active voices Vital uses simultaneously.
|
constexpr |
Maximum buffer size for processing.
|
constexpr |
Maximum number of modulation connections allowed.
|
constexpr |
Maximum allowed oversampling factor.
|
constexpr |
The maximum number of voices allocated for polyphony (includes an extra for handling transitions).
|
constexpr |
Maximum expected sample rate in Hz.
|
constexpr |
Frequency of MIDI note 0 (C-1).
|
constexpr |
MIDI note count (0-127).
|
constexpr |
MIDI note considered as center (Middle C).
|
constexpr |
Minimum ratio relative to Nyquist frequency.
|
constexpr |
Minimum allowable window height.
|
constexpr |
Minimum allowable window width.
|
constexpr |
Milliseconds per second.
|
constexpr |
Number of semitones per octave.
|
constexpr |
Number of output channels (stereo = 2).
|
constexpr |
Number of envelope generators in Vital.
|
constexpr |
Number of filter slots in Vital.
|
constexpr |
Number of formant filters available.
|
constexpr |
Number of LFO sources available in the Vital synthesizer.
|
constexpr |
Number of macro controls available.
|
constexpr |
MIDI channels available per device.
|
constexpr |
Number of oscillators available in Vital.
|
constexpr |
Number of wave frames in each oscillator’s wavetable.
|
constexpr |
Number of random LFO sources (random modulation generators).
|
constexpr |
Resolution (number of samples) in the oscilloscope memory buffer.
|
constexpr |
Sample rate (in Hz) at which the oscilloscope memory is sampled.
|
constexpr |
Scaling for converting float data to 16-bit PCM.
|
constexpr |
Pi constant.
|
constexpr |
Pulses per quarter note used internally.
const std::string vital::kPresetExtension = "vital" |
File extension for Vital preset files.
const std::string vital::kSampleExtensionsList = "*.wav;*.flac" |
A semicolon-separated list of supported sample file formats (e.g., wav and flac).
const std::string vital::kSkinExtension = "vitalskin" |
File extension for Vital skin/theme files.
|
constexpr |
Square root of 2.
|
constexpr |
Time in seconds after which a silent voice is considered dead.
const std::string vital::kWavetableExtension = "vitaltable" |
File extension for Vital wavetable files.
const std::string vital::kWavetableExtensionsList = "*." + vital::kWavetableExtension + ";*.wav;*.flac" |
A semicolon-separated list of supported wavetable file extensions, including external formats like .wav and .flac.