pub mod karplusplus;
pub mod multi_oscillator_synth;
pub mod risset_bell;
pub mod sampler;
pub mod single_oscillator_synth;
pub mod stereo_sampler;
pub use crate::synths::karplusplus::KarPlusPlus;
pub use crate::synths::multi_oscillator_synth::MultiOscillatorSynth;
pub use crate::synths::risset_bell::RissetBell;
pub use crate::synths::sampler::Sampler;
pub use crate::synths::single_oscillator_synth::SingleOscillatorSynth;
pub use crate::synths::stereo_sampler::StereoSampler;
use crate::building_blocks::{EffectType, FilterType, OscillatorType};
#[repr(C)]
pub struct SynthDescription {
pub pre_filter_effects: Vec<EffectType>,
pub filters: Vec<FilterType>,
pub oscillator_types: Vec<OscillatorType>,
pub ambisonic: bool,
}
#[repr(C)]
pub enum SynthType {
Sampler(SynthDescription),
LiveSampler(SynthDescription),
FrozenSampler(SynthDescription),
SingleOscillator(SynthDescription),
MultiOscillator(SynthDescription),
KarPlusPlus(SynthDescription),
RissetBell(bool),
}