Skip to main content

BeatThis

Struct BeatThis 

Source
pub struct BeatThis<M: Model> { /* private fields */ }
Expand description

High-level beat tracker composing the full pipeline.

Owns the mel spectrogram model, the beat prediction model, and the peak picker. Generic over the model type, so it works with any backend (ort, rten, tract).

Implementations§

Source§

impl<M: Model> BeatThis<M>

Source

pub fn new<R: Runtime<Model = M>>( runtime: &R, mel_model_path: &Path, beat_model_path: &Path, ) -> Result<Self>

Create a new beat tracker by loading both ONNX models via the given runtime.

  • runtime: any Runtime (e.g. OrtRuntime::default())
  • mel_model_path: path to the mel spectrogram ONNX model
  • beat_model_path: path to the beat tracking ONNX model
Source

pub fn from_models(mel_model: M, beat_model: M) -> Self

Create a beat tracker from pre-built models.

Use this when you need separate runtimes for the mel and beat models (e.g. one with profiling enabled).

Source

pub fn beat_model_mut(&mut self) -> &mut M

Get a mutable reference to the beat prediction model.

Useful for runtime-specific operations like ending ORT profiling.

Source

pub fn analyze_audio( &mut self, samples: &[f32], sample_rate: u32, ) -> Result<BeatAnalysis>

Run the full pipeline on raw audio samples.

The samples are resampled to 22050 Hz if sample_rate differs. Input should be mono f32 PCM.

Source

pub fn analyze_audio_timed( &mut self, samples: &[f32], sample_rate: u32, ) -> Result<TimedAnalysis>

Run the full pipeline on raw audio samples, returning per-stage timing.

Source

pub fn analyze_file(&mut self, path: &Path) -> Result<BeatAnalysis>

Run the full pipeline on an audio file.

Loads the file, resamples to 22050 Hz mono, computes mel spectrogram, runs beat prediction, and decodes into beat/downbeat timestamps.

Auto Trait Implementations§

§

impl<M> Freeze for BeatThis<M>
where M: Freeze,

§

impl<M> RefUnwindSafe for BeatThis<M>
where M: RefUnwindSafe,

§

impl<M> Send for BeatThis<M>
where M: Send,

§

impl<M> Sync for BeatThis<M>
where M: Sync,

§

impl<M> Unpin for BeatThis<M>
where M: Unpin,

§

impl<M> UnsafeUnpin for BeatThis<M>
where M: UnsafeUnpin,

§

impl<M> UnwindSafe for BeatThis<M>
where M: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<F, T> IntoSample<T> for F
where T: FromSample<F>,

Source§

fn into_sample(self) -> T

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.