Crate metronome_rs

Crate metronome_rs 

Source
Expand description

§Metronome RS

A Rust library for generating audio tones and metronome functionality using CPAL.

§Quick Start

use metronome_rs::{start_simple_metronome, stop_global_metronome};
use std::{thread, time::Duration};

// Start a simple 120 BPM metronome
start_simple_metronome(120.0)?;

// Let it play for 5 seconds
thread::sleep(Duration::from_secs(5));

// Stop the metronome
stop_global_metronome();

§High-Level Helpers

The library provides convenient high-level functions for common use cases:

  • start_simple_metronome(bpm) - Simple metronome without accents
  • start_metronome_with_time_signature(bpm, beats) - Metronome with time signature accents
  • play_metronome_for_duration(bpm, beats, duration_ms) - Timed metronome that auto-stops
  • start_practice_metronome(bpm, beats) - Optimized for practice with subtle accents
  • start_performance_metronome(bpm, beats) - Optimized for performance with strong accents
  • start_custom_metronome(bpm, beats, config) - Full customization control

§Subdivision Support

The library supports subdivisions for practicing complex rhythms:

  • start_metronome_with_eighth_notes(bpm, beats) - 2 subdivisions per beat
  • start_metronome_with_sixteenth_notes(bpm, beats) - 4 subdivisions per beat
  • start_metronome_with_triplets(bpm, beats) - 3 subdivisions per beat (triplets)
  • start_metronome_with_subdivisions(bpm, beats, subdivisions, volume) - Custom subdivisions

§Modules

  • audio - Audio device and configuration utilities
  • tone - Tone generation and playbook functionality
  • metronome - Metronome implementation with accent support
  • accent - Accent configuration for metronomes

Re-exports§

pub use accent::AccentConfig;
pub use accent::WaveType;
pub use audio::get_default_host;
pub use audio::get_default_output_config;
pub use audio::get_default_output_device;
pub use metronome::Metronome;
pub use metronome::get_global_metronome;
pub use metronome::play_custom_metronome_for_duration;
pub use metronome::play_metronome_for_duration;
pub use metronome::start_custom_metronome;
pub use metronome::start_metronome_with_eighth_notes;
pub use metronome::start_metronome_with_sixteenth_notes;
pub use metronome::start_metronome_with_subdivisions;
pub use metronome::start_metronome_with_time_signature;
pub use metronome::start_metronome_with_triplets;
pub use metronome::start_performance_metronome;
pub use metronome::start_practice_metronome;
pub use metronome::start_simple_metronome;
pub use metronome::stop_global_metronome;
pub use tone::beep;
pub use tone::beep_frequency;
pub use tone::create_sine_wave_generator;
pub use tone::play_beep_with_config;
pub use tone::play_beep_with_config_and_params;
pub use tone::play_beep_with_wave_type;
pub use tone::play_beep_with_wave_type_and_volume;
pub use tone::play_default_beep;
pub use tone::play_tone;
pub use tone::play_tone_with_wave_type;
pub use tone::play_tone_with_wave_type_and_volume;

Modules§

accent
audio
metronome
tone