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 accentsstart_metronome_with_time_signature(bpm, beats)- Metronome with time signature accentsplay_metronome_for_duration(bpm, beats, duration_ms)- Timed metronome that auto-stopsstart_practice_metronome(bpm, beats)- Optimized for practice with subtle accentsstart_performance_metronome(bpm, beats)- Optimized for performance with strong accentsstart_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 beatstart_metronome_with_sixteenth_notes(bpm, beats)- 4 subdivisions per beatstart_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 utilitiestone- Tone generation and playbook functionalitymetronome- Metronome implementation with accent supportaccent- 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;