#guitar-tabs #write #interface #line #pro #command-line-interface #chord

bin+lib guitarpro

Rust 库和吉他谱文件命令行界面 (CLI)

1 个不稳定版本

0.1.0 2022年5月31日

#10 in #pro

MIT 许可证

1.5MB
4K SLoC

包含 (压缩文件,14KB) test/all-percussion.gp,(压缩文件,9KB) test/accent.gp,(压缩文件,9KB) test/arpeggio.gp,(压缩文件,9KB) test/artificial-harmonic.gp,(压缩文件,9KB) test/barre.gp,(压缩文件,9KB) test/basic-bend.gp 等68个更多

Guitarpro

A Rust 安全库,用于解析和写入吉他谱文件。

Tests rust-clippy

它基于 Perlence/PyGuitarProTuxGuitarMuseScore 源代码。

用法

use guitarpro;

fn main() {
    let f = fs::OpenOptions::new().read(true).open("my_awesome_song.gp5").unwrap_or_else(|_error| {
        panic!("Unknown error while opening my_awesome_song.gp5");
    });
    let mut data: Vec<u8> = Vec::with_capacity(size);
    f.take(u64::from_ne_bytes(size.to_ne_bytes())).read_to_end(&mut data).unwrap_or_else(|_error|{panic!("Unable to read file contents");});
    let mut song: guitarpro::Song = gp::Song::default();
    match ext.as_str() {
        "GP3" => song.read_gp3(&data),
        "GP4" => song.read_gp4(&data),
        "GP5" => song.read_gp5(&data),
        "GPX" => println!("Guitar pro file (new version) is not supported yet"), //new Guitar Pro files
        _ => panic!("Unable to process a {} file (GP1 and GP2 files are not supported)", ext),
    }
}

路线图

  • 文档
  • 读取 GP3 文件
  • 读取 GP4 文件
  • 读取 GP5 文件:几乎可用,Coda 和类似指示不工作,使用 test/Demo v5.gp5 进行测试/修复/拉取请求/...
  • 读取 GPX 文件(版本 6)
  • 读取 GPX 文件(版本 7)
  • 写入 GP3 文件
  • 写入 GP4 文件
  • 写入 GP5 文件
  • 写入 GPX 文件(版本 6)
  • 写入 GPX 文件(版本 7)

关于我

我从2019年开始弹吉他,我有一堆吉他谱文件,有时我会从 Songsterr 获取新的文件。我想写更好的文档,但我不知道乐谱上所有能看到的东西 ;)

为了制作另一个软件(具有高级搜索、和弦检测等),我需要一个能够解析和写入吉他谱文件的库。

依赖关系

~5MB
~151K SLoC