use thiserror::Error;
#[derive(Debug, Error, Clone, PartialEq, Eq)]
pub enum SoundRenderError {
#[error("sample rate must be positive")]
InvalidSampleRate,
#[error("renderer only supports mono or stereo output")]
InvalidChannelCount,
#[error("audio buffer length is not aligned to the renderer channel count")]
ChannelMisalignedSamples,
#[error("audio buffer too large to encode")]
BufferTooLarge,
#[error("timbre policy rejected preview pitch")]
TimbrePreviewRejected,
#[error("timbre preview has no renderable partials")]
EmptyTimbrePreview,
}