1 个不稳定版本
0.1.0 | 2022年5月31日 |
---|
#10 in #pro
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 安全库,用于解析和写入吉他谱文件。
它基于 Perlence/PyGuitarPro,TuxGuitar 和 MuseScore 源代码。
用法
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