2个不稳定版本

0.2.0 2022年3月18日
0.1.0 2022年2月27日

#41 in #wave

每月下载量 48次

MIT许可证

12KB
258

waverly

瓦雷利是一个Rust库,允许轻松解析和写入WAV文件,其主要目标是提供对WAV文件中所有元数据的访问,而不仅仅是格式和数据块。其次要目标是支持no_std。如果您只关心已经格式化为样本的数据块,有许多很好的替代方案

use std::fs::File;
use std::io::Cursor;
use waverly::Wave;

fn main() -> Result<(), waverly::WaverlyError> {
    let file = File::open("./meta/16bit-2ch-float-peak.wav")?;
    let wave: Wave = Wave::from_reader(file)?;

    let mut virt_file = Cursor::new(Vec::new());
    wave.write(&mut virt_file)?;
    Ok(())
}

待办事项

  • 解析/读取和写入WAV文件
  • 格式块
  • 数据块
  • 峰值块
  • 事实块
  • no_std支持
  • 以任何位深度生成样本的单遍生成
  • 大多数WAV元数据可以在写入时自动生成,尽可能实现这一点。
  • 跳过或目标块的功能
  • CUE点块
  • 播放列表块
  • 当通道数不等于2时支持峰值块
  • 更好的对可扩展模式的支持
  • 当二进制与块不匹配时提供更好的错误信息
  • 对附加块、可扩展模式、no_std的ATests

进一步阅读

多媒体编程接口和数据规范,从第56页开始

依赖项

~2MB
~43K SLoC