pub fn loop_range_beats(&self) -> Option<(f64, f64)> {
        match (
            self.loop_range_samples,
            self.loop_range_seconds,
            self.loop_range_beats,
            self.tempo,
        ) {
            (_, _, Some(loop_range_beats), _) => Some(loop_range_beats),
            (_, Some((start_seconds, end_seconds)), _, Some(tempo)) => {
                Some((start_seconds / 60.0 * tempo, end_seconds / 60.0 * tempo))
            }
            (Some((start_samples, end_samples)), _, _, Some(tempo)) => Some((
                start_samples as f64 / self.sample_rate as f64 / 60.0 * tempo,
                end_samples as f64 / self.sample_rate as f64 / 60.0 * tempo,
            )),
            (_, _, _, _) => None,
        }
    }
/// The loop range in quarter notes, if the loop is active and this information is available.
/// None of the plugin API docs mention whether this is exclusive or inclusive, but just assume
/// that the end is exclusive. Will be calculated from other information if needed.
The loop range in quarter notes, if the loop is active and this information is available.
None of the plugin API docs mention whether this is exclusive or inclusive, but just assume
that the end is exclusive. Will be calculated from other information if needed.
The loop range in quarter notes if the loop is active and this information is available . None of the plugin API docs mention whether this is exclusive or inclusive but just assume that the end is exclusive . Will be calculated from other information if needed .
pub fn loop_range_beats(&self) -> Option<(f64, f64)> {
        match (
            self.loop_range_samples,
            self.loop_range_seconds,
            self.loop_range_beats,
            self.tempo,
        ) {
            (_, _, Some(loop_range_beats), _) => Some(loop_range_beats),
            (_, Some((start_seconds, end_seconds)), _, Some(tempo)) => {
                Some((start_seconds / 60.0 * tempo, end_seconds / 60.0 * tempo))
            }
            (Some((start_samples, end_samples)), _, _, Some(tempo)) => Some((
                start_samples as f64 / self.sample_rate as f64 / 60.0 * tempo,
                end_samples as f64 / self.sample_rate as f64 / 60.0 * tempo,
            )),
            (_, _, _, _) => None,
        }
    }
pub fn loop_range_beats ( & self ) -> Option < ( f64 , f64 ) > { match ( self . loop_range_samples , self . loop_range_seconds , self . loop_range_beats , self . tempo , ) { ( _ , _ , Some ( loop_range_beats ) , _ ) => Some ( loop_range_beats ) , ( _ , Some ( ( start_seconds , end_seconds ) ) , _ , Some ( tempo ) ) => { Some ( ( start_seconds / 60.0 * tempo , end_seconds / 60.0 * tempo ) ) } ( Some ( ( start_samples , end_samples ) ) , _ , _ , Some ( tempo ) ) => Some ( ( start_samples as f64 / self . sample_rate as f64 / 60.0 * tempo , end_samples as f64 / self . sample_rate as f64 / 60.0 * tempo , ) ) , ( _ , _ , _ , _ ) => None , } }
The loop range in quarter notes, if the loop is active and this information is available.
The loop range in quarter notes if the loop is active and this information is available .
&self
&self