timecode-coder

Crates.iotimecode-coder
lib.rstimecode-coder
version0.3.0
created_at2022-12-04 21:03:12.122906+00
updated_at2022-12-04 21:11:59.205293+00
descriptionA pure Rust no_std library for decoding and encoding timecode in real-time
homepage
repositoryhttps://github.com/michaelhugi/rust-timecode-parser
max_upload_size
id729786
size44,830
Michael Hugi (michaelhugi)

documentation

README

Rust timecode coder

A pure Rust no_std library for encoding and decoding timecode in real-time.

Decode LTC

Add dependency to Cargo.toml

[dependencies]
timecode-coder = { version = "x.x.x", features = ["decode_ltc"] }

Let's say you have a function that receives buffers from your audio interface:

use timecode_coder::ltc_decoder::LtcDecoder;

struct MyAudioHandler {
    decoder: LtcDecoder<u16>,
}

impl MyAudioHandler {
    // Sampling rate can by any Type that implements `FromPrimitive` 
    fn new(sampling_rate: u32) -> Self {
        Self {
            decoder: LtcDecoder::new(sampling_rate)
        }
    }
    fn new_buffer(&mut self, samples: [u16; 512]) {
        for sample in samples {
            if let Some(timecode_frame) = get_timecode_frame(sample) {
                /// New TimecodeFrame received
            }
        }
    }
}

TimecodeFrame provides:

  • hours
  • minutes
  • seconds
  • frames
  • frame-rate (auto detected)

Warning. Drop frames are not yet supported. They will be detected as normal '25fps' or '30fps'

Encode LTC

not yet implemented

Decode MIDI

not yet implemented

Encode MIDI

not yet implemented

Commit count: 13

cargo fmt