pub use crate::bank::{BANK_MAGIC, BANK_VERSION, BankBuilder, EffectEntry, SoundBank};
pub use crate::config::{
AudioConfig, DEFAULT_PWM_PERIOD, DEFAULT_SAMPLE_RATE_HZ, crossfade_step_q8,
};
pub use crate::engine::{AudioEngine, VoiceStealingPolicy};
pub use crate::envelope::{Adsr, AdsrSpec};
pub use crate::error::AudioError;
pub use crate::fixed::{db_to_q8, q8_to_db};
pub use crate::fx::{Overdrive, Tremolo, Wavefolder};
pub use crate::hal::{
DmaDoubleBuffer, DutyBuffer, PwmDutySink, fill_buffer_into, fill_dma_half_buffers, tick_into,
};
pub use crate::output::{
DutyMode, PwmMapper, SigmaDelta, SigmaDelta2ndOrder, pcm_to_dac_u8, pcm_to_dac_u12,
pcm_to_dac_u16, pcm_to_i16, pcm_to_i32,
};
pub use crate::pluck::KarplusPluck;
pub use crate::synth::{
PULSE_25_TABLE, SAW_TABLE, SINE_TABLE, SQUARE_TABLE, TRIANGLE_TABLE, Waveform, WavetableVoice,
generate_wavetable_fixed,
};
pub use crate::tier::{EffectKind, flags};
#[cfg(feature = "dsp")]
pub use crate::dsp::{
AudioLmsFilter, AudioMeter, AudioSpectrumAnalyzer, AudioStats, BiquadAudioFilter,
BiquadAudioFilterQ15, WindowType,
};
#[cfg(feature = "dsp")]
pub use crate::drums::{AnalogBassDrum, AnalogSnareDrum, HiHat};