Expand description
§beamer-core
Core abstractions for the Beamer audio plugin framework.
This crate provides platform-agnostic and format-agnostic traits that define the interface for audio plugins. It has no external dependencies, making it suitable for use in any context.
§Main Traits
Descriptor- Plugin definition (unprepared state, holds parameters)Processor- Core DSP processing trait (prepared state)Parameters- Parameter collection traitEditorDelegate- GUI configuration and callbacks
§Types
Size- 2D size in pixelsRect- Rectangle in pixelsBuffer- Main audio I/O bufferAuxiliaryBuffers- Sidechain and aux bus accessBusInfo- Audio bus configurationParameterInfo- Parameter metadataPluginError- Error typesMidiEvent- MIDI event typesTransport- DAW transport/timing stateProcessContext- Processing context with sample rate and transport
Re-exports§
pub use buffer::AuxiliaryBuffers;pub use buffer::AuxInput;pub use buffer::AuxOutput;pub use buffer::Buffer;pub use buffer_storage::ProcessBufferStorage;pub use bus_config::CachedBusConfig;pub use bus_config::CachedBusInfo;pub use config::Config;pub use config::FourCharCode;pub use conversion_buffers::ConversionBuffers;pub use bypass::BypassAction;pub use bypass::BypassHandler;pub use bypass::BypassState;pub use bypass::CrossfadeCurve;pub use editor::EditorConstraints;pub use editor::EditorDelegate;pub use editor::NoEditor;pub use error::PluginError;pub use error::PluginResult;pub use midi::cc;pub use midi::ChannelPressure;pub use midi::ControlChange;pub use midi::MidiBuffer;pub use midi::MidiChannel;pub use midi::MidiEvent;pub use midi::MidiEventKind;pub use midi::MidiNote;pub use midi::NoteId;pub use midi::NoteOff;pub use midi::NoteOn;pub use midi::PitchBend;pub use midi::PolyPressure;pub use midi::ProgramChange;pub use midi::ChordInfo;pub use midi::NoteExpressionInt;pub use midi::NoteExpressionText;pub use midi::NoteExpressionValue;pub use midi::ScaleInfo;pub use midi::SysEx;pub use midi::Midi2Controller;pub use midi::rpn;pub use midi::ParameterNumberKind;pub use midi::ParameterNumberMessage;pub use midi::RpnTracker;pub use midi::NoteExpressionTypeFlags;pub use midi::NoteExpressionTypeInfo;pub use midi::NoteExpressionValueDesc;pub use midi::keyswitch_type;pub use midi::KeyswitchInfo;pub use midi::physical_ui;pub use midi::PhysicalUIMap;pub use midi::MpeInputDeviceSettings;pub use midi::note_expression;pub use midi::combine_14bit_cc;pub use midi::combine_14bit_raw;pub use midi::split_14bit_cc;pub use midi::split_14bit_raw;pub use midi::MAX_CHORD_NAME_SIZE;pub use midi::MAX_EXPRESSION_TEXT_SIZE;pub use midi::MAX_KEYSWITCH_TITLE_SIZE;pub use midi::MAX_NOTE_EXPRESSION_TITLE_SIZE;pub use midi::MAX_SCALE_NAME_SIZE;pub use midi::MAX_SYSEX_SIZE;pub use parameter_format::Formatter;pub use parameter_range::LinearMapper;pub use parameter_range::LogMapper;pub use parameter_range::LogOffsetMapper;pub use parameter_range::PowerMapper;pub use parameter_range::RangeMapper;pub use parameter_groups::GroupId;pub use parameter_groups::GroupInfo;pub use parameter_groups::ParameterGroups;pub use parameter_groups::ROOT_GROUP_ID;pub use parameter_info::ParameterFlags;pub use parameter_info::ParameterInfo;pub use parameter_info::ParameterUnit;pub use parameter_store::NoParameters;pub use parameter_store::ParameterStore;pub use parameter_types::BoolParameter;pub use parameter_types::EnumParameter;pub use parameter_types::EnumParameterValue;pub use parameter_types::FloatParameter;pub use parameter_types::IntParameter;pub use parameter_types::ParameterRef;pub use parameter_types::Parameters;pub use smoothing::Smoother;pub use smoothing::SmoothingStyle;pub use midi_cc_config::controller;pub use midi_cc_config::MidiCcConfig;pub use midi_cc_config::MAX_CC_CONTROLLER;pub use midi_cc_state::MidiCcState;pub use midi_cc_state::MIDI_CC_PARAM_BASE;pub use plugin::AuxInputCount;pub use plugin::AuxOutputCount;pub use plugin::BusInfo;pub use plugin::BusLayout;pub use plugin::BusType;pub use plugin::Descriptor;pub use plugin::HasParameters;pub use plugin::HostSetup;pub use plugin::MainInputChannels;pub use plugin::MainOutputChannels;pub use plugin::MaxBufferSize;pub use plugin::Midi1Assignment;pub use plugin::Midi2Assignment;pub use plugin::MidiControllerAssignment;pub use plugin::PluginSetup;pub use plugin::ProcessMode;pub use plugin::Processor;pub use plugin::SampleRate;pub use preset::fnv1a_hash;pub use preset::FactoryPresets;pub use preset::NoPresets;pub use preset::PresetInfo;pub use preset::PresetValue;pub use process_context::FrameRate;pub use process_context::ProcessContext;pub use process_context::Transport;pub use sample::Sample;pub use sysex_pool::SysExOutputPool;pub use types::ParameterId;pub use types::ParameterValue;pub use types::Rect;pub use types::Size;pub use types::MAX_AUX_BUSES;pub use types::MAX_BUSES;pub use types::MAX_CHANNELS;
Modules§
- buffer
- Audio buffer abstractions for plugin processing.
- buffer_
storage - Pre-allocated buffer storage for real-time safe audio processing.
- bus_
config - Cached bus configuration for format wrappers.
- bypass
- Bypass handling with smooth crossfading.
- config
- Plugin configuration.
- conversion_
buffers - Pre-allocated buffers for f64↔f32 sample format conversion.
- editor
- Editor and GUI-related traits.
- error
- Error types for the Beamer framework.
- midi
- MIDI event types for audio plugins.
- midi_
cc_ config - Static MIDI CC configuration for VST3 IMidiMapping support.
- midi_
cc_ state - Runtime state for MIDI CC emulation.
- parameter_
format - Parameter value formatting and parsing.
- parameter_
groups - Parameter grouping system for hierarchical organization.
- parameter_
info - Parameter metadata types.
- parameter_
range - Range mapping for parameter normalization.
- parameter_
store - Low-level parameter store for host communication.
- parameter_
types - High-level parameter types with encapsulated atomic storage.
- plugin
- Core plugin trait definitions.
- preset
- Factory preset support for Beamer plugins.
- process_
context - Transport and process context for audio plugins.
- sample
- Sample type abstraction for f32/f64 audio processing.
- setup
- Plugin setup types for declaring host information requirements.
- smoothing
- Parameter smoothing for avoiding zipper noise during automation.
- sysex_
pool - Pre-allocated SysEx output buffer pool for real-time safety.
- types
- Common types used throughout the Beamer framework.
Macros§
- fourcc
- Macro for creating FourCharCode at compile time with validation.