maolan-engine 0.2.32

Audio engine for the Maolan DAW with audio/MIDI tracks, routing, export, and out-of-process CLAP/VST3/LV2 plugin support
Documentation
use crate::message::SessionSlotState;

#[derive(Clone, Debug, Default)]
pub struct MeterSnapshot {
    pub hw_out_db: Vec<f32>,
    pub track_meters: Vec<(String, Vec<f32>)>,
}

#[derive(Clone, Debug)]
pub struct TransportSnapshot {
    pub sample: usize,
    pub tempo_bpm: f64,
    pub playing: bool,
    pub transport_running: bool,
    pub tsig_num: u16,
    pub tsig_denom: u16,
}

impl Default for TransportSnapshot {
    fn default() -> Self {
        Self {
            sample: 0,
            tempo_bpm: 120.0,
            playing: false,
            transport_running: false,
            tsig_num: 4,
            tsig_denom: 4,
        }
    }
}

#[derive(Clone, Debug)]
pub struct SessionRuntimeSlotSnapshot {
    pub track_name: String,
    pub scene_index: usize,
    pub state: SessionSlotState,
    pub play_position_samples: usize,
    pub elapsed_samples: usize,
}

#[derive(Clone, Debug, Default)]
pub struct SessionRuntimeSnapshot {
    pub slots: Vec<SessionRuntimeSlotSnapshot>,
}