#duration #sampling

sampled_data_duration

处理采样数据的持续时间,例如数字音频

4个版本 (2个重大更改)

0.3.1 2022年5月5日
0.3.0 2022年5月5日
0.2.0 2021年2月4日
0.1.0 2021年1月28日

#300音频


用于 dsf

MIT 许可证

65KB
959

Logo采样数据持续时间

pipeline status Crate API

Rust库,用于处理采样数据的持续时间,例如数字音频。

sampled_data_duration 库提供了两个结构:ConstantRateDurationMixedRateDuration

ConstantRateDuraiton 可用于表示以恒定频率采样的任何数据集的持续时间,一个典型的例子可能是一个以44.1kHz采样的音频文件。

MixedRateDuration 可用于表示具有不同采样频率的数据集集合的持续时间。一个典型的例子可能是一个包含音频文件的播放列表,其中一些以44.1kHz采样,而其他则以48kHz或96kHz等采样。

示例

use sampled_data_duration::ConstantRateDuration;
use sampled_data_duration::MixedRateDuration;

// Consider an audio file which consists of `12345678` samples per
// channel recorded at a sampling rate of 44.1kHz.
let crd = ConstantRateDuration::new(12345678, 44100);

// The default string representation is of the form
// `hh:mm:ss;samples`
assert_eq!(crd.to_string(), "00:04:39;41778");

// Get the duration in various different time-units
assert_eq!(crd.as_hours(), 0);
assert_eq!(crd.as_mins(), 4);
assert_eq!(crd.submin_secs(), 39);
assert_eq!(crd.as_secs(), 4 * 60 + 39);
assert_eq!(crd.subsec_samples(), 41778);
assert_eq!(crd.subsec_secs(), 0.9473469387755102);

// Consider and audio playlist which already consists of a file
// recorded at 96kHz.
let mut mrd = MixedRateDuration::from(ConstantRateDuration::new(87654321, 96000));

// The default string representation of the a mixed rate duration
// which consits of only one entry is of the form `hh:mm:ss;samples`
assert_eq!(mrd.to_string(), "00:15:13;6321");

// However if we add-assign `crd` to `mrd`
mrd += crd;

// Then we have a duration which is made up of different sampling
// rates and the default string representation changes to be of the
// form `hh:mm:ss.s`
assert_eq!(mrd.to_string(), "00:19:53.013190688");

已尽量遵循由 std::time::Duration 定义的命名约定。

安装

您可以通过常规方式从 crates.io 获取此库的最新版本。

API文档

您可以从 docs.rs 读取此库最新版本的API文档。

无运行时依赖项