PianoFingering.jl 使用教程

PianoFingering.jl 使用教程

PianoFingering.jl(Experimental, a lot of bugs) Advanced automatic fingering generator for piano scores, determining optimal fingering using Model-Based Reinforcement Learning, written in the Julia language.项目地址:https://gitcode.com/gh_mirrors/pi/PianoFingering.jl

项目介绍

PianoFingering.jl 是一个自动生成钢琴乐谱指法的开源项目,使用 Julia 语言编写。该项目通过基于模型的强化学习来确定最佳指法。需要注意的是,生成的指法仅供参考,并非绝对最佳。目前该项目仅在 Linux 系统上进行了测试。

项目快速启动

环境准备

  1. 安装 Python (>3.11) 和 Julia (>1.9)
  2. 确保 Python 和 Julia 版本正确:
    ❯ python -V
    Python 3.11.3
    ❯ julia -v
    julia version 1.9.0
    
  3. 安装 music21 (>9.1.0):
    ❯ pip3 install music21
    

项目安装

  1. 克隆项目到本地并进入项目目录:
    ❯ git clone https://github.com/JuliaMusic/PianoFingering.jl.git
    ❯ cd PianoFingering.jl
    
  2. 启动 Julia 并安装依赖:
    ❯ julia
    julia> using Pkg
    julia> Pkg.activate(".")
    julia> Pkg.instantiate()
    

运行程序

  1. 将你的 musicxml 文件放入 musicxml 文件夹。
  2. 运行指法生成程序:
    ❯ julia -t auto
    julia> using Pkg
    julia> Pkg.activate(".")
    julia> using PianoFingering
    julia> fingering("example.musicxml")
    
  3. 生成的带注释的钢琴乐谱文件 example_output.musicxml 将存储在 output 文件夹中。

应用案例和最佳实践

案例一:生成标准乐谱指法

假设你有一个名为 beethoven_sonata.musicxml 的乐谱文件,你可以使用以下命令生成指法:

❯ julia -t auto
julia> using Pkg
julia> Pkg.activate(".")
julia> using PianoFingering
julia> fingering("beethoven_sonata.musicxml")

案例二:处理 PIG 格式文件

如果你有一个 PIG 格式的文本文件 pig_example.txt,可以使用以下命令生成指法:

❯ julia -t auto
julia> using Pkg
julia> Pkg.activate(".")
julia> using PianoFingering
julia> fingering("pig_example.txt")

典型生态项目

MusicXML.jl

MusicXML.jl 是一个用于处理 MusicXML 文件的 Julia 包,与 PianoFingering.jl 配合使用,可以更好地处理和生成钢琴乐谱。

MIDI.jl

MIDI.jl 是一个用于处理 MIDI 文件的 Julia 包,未来 PianoFingering.jl 计划支持输入录制好的 MIDI 文件,这将需要训练神经网络来分割左右手的音符。

通过这些生态项目的配合,PianoFingering.jl 可以更好地服务于钢琴乐谱的指法生成和处理。

PianoFingering.jl(Experimental, a lot of bugs) Advanced automatic fingering generator for piano scores, determining optimal fingering using Model-Based Reinforcement Learning, written in the Julia language.项目地址:https://gitcode.com/gh_mirrors/pi/PianoFingering.jl

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洪牧朴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值