timecode-coder 0.3.0

A pure Rust no_std library for decoding and encoding timecode in real-time
Documentation
### Rust timecode coder


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

## Decode LTC


Add dependency to Cargo.toml

```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:

```rust
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)

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

## Encode LTC


**not yet implemented**

## Decode MIDI


**not yet implemented**

## Encode MIDI


**not yet implemented**