# audio-clock crates.io Propagate a musical clock from a real-time audio thread to other threads: ```rust let tempo = 132.2; let sample_rate = 44100; let (mut updater, consumer) = audio_clock(tempo, sample_rate); // ... somehow send updater to the real-time audio thread. // From an audio callback, increment the clock, // from the real-time audio thread updater.increment(frame_count); // Somewhere else, use the clock: println!("frame processed: ", consumer.raw_frames(), 128); println!("beat count: ", consumer.beat()); println!("beat duration in seconds: ", consumer.beat_duration()); let other_consumer = consumer.clone(); // Send other_consumer to some other thread. ``` # Licence * Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0) * MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)