4个版本

0.4.2 2024年8月9日
0.4.1 2023年3月30日
0.4.0 2023年1月30日
0.3.1 2023年1月18日

音频类中排名第130

Download history 10/week @ 2024-04-29 10/week @ 2024-05-13 9/week @ 2024-05-20 1/week @ 2024-05-27 11/week @ 2024-06-03 9/week @ 2024-06-10 15/week @ 2024-06-17 20/week @ 2024-07-01 9/week @ 2024-07-08 16/week @ 2024-07-15 4/week @ 2024-07-22 16/week @ 2024-07-29 106/week @ 2024-08-05

每月下载143

MIT/Apache

195KB
950 代码行

pacmog

Cargo Documentation Tests

pacmog是PCM文件的解码库。
专为在微控制器固件中播放嵌入式PCM文件而设计。
Rust有一个include_bytes!宏可以嵌入程序中的字节序列。使用它,可以将PCM文件嵌入到固件中并用于播放。
pacmog默认支持no_std。

格式 状态
WAV 16位
WAV 24位
WAV 32位
WAV 32位浮点
WAV 64位浮点
IMA ADPCM
AIFF 16位
AIFF 24位
AIFF 32位
AIFF 32位浮点
AIFF 64位浮点

示例

cargo run --example beep

读取一个WAV样本文件。

use pacmog::PcmReader;

let wav = include_bytes!("../tests/resources/Sine440Hz_1ch_48000Hz_16.wav");                        
let reader = PcmReader::new(wav);
let specs = reader.get_pcm_specs();
let num_samples = specs.num_samples;
let num_channels = specs.num_channels as u32;

println!("PCM info: {:?}", specs);

for sample in 0..num_samples {
    for channel in 0..num_channels {
        let sample_value = reader.read_sample(channel, sample).unwrap();
        println!("{}", sample_value);
    }
}

测试

cargo test

基准测试

cargo criterion

no_std

pacmog默认支持no_std。
无需设置。

依赖

~4MB
~76K SLoC