je_score_operator

je数字谱工具箱

je简谱处理工具,包括转调、制谱、播放、midi提取与制作、五线谱识别等

友链: 简谱(图片)转调

何为je谱?

je谱为约定俗成,并无严格规定格式。但为了各种工具的使用,请按照此处的规则使用:

基本格式

优缺点

je谱资源

转调器

保持音符间音程关系不变,改变整体音高的工具。
基本原理:把音符数字化到数轴的一点,整体平移,再根据新位置转为音符。

播放器

根据je谱演奏的工具。
基本原理:数字化音符,利用这个项目播放音频。利用计时器,均匀播放,空格和换行视为休止

midi转je/番茄简谱

解析midi文件的工具。支持如下格式转换:

graph LR
    A[MIDI] <--> B[番茄简谱]
    A --> C[数字谱]
    B --> C
    A --> E[MIDI二进制、事件解析]

基本原理:利用midi协议解读音符【midi协议怎么看?】。可以解读为没有时值的je谱,也可以解读为番茄简谱脚本:一个图片形式简谱制作网站,保留时值信息。
本项目重新造了midi轮子。使用方法:midi class

midi制作

利用特定文本生成midi文件的工具。
所谓特定文本,即需要的json,需要给出音序号、时长、开始时间(可省略)。详见网站。若不写明开始时间,则默认在上一个音的后面追加。

je谱确定节奏

手动给没有时值的je谱加上时值的工具。
基本操作:输入je谱,点击开始,两个手指交替按压键盘,按下表示音开始,抬起表示音结束,根据记录的毫秒数,进行近似处理,得到“midi制作”所需的“特定文本”。
若需进一步自动化,请使用我在 noteDigger 中实现的 “数字谱对齐音频”(见下)。

五线谱→je谱

识别五线谱图片为je谱的工具。
暂时只有个初步实现。使用了我另一个项目jsPic来处理图片,因为opencv.js太大了而且不能改。目前效果很糟糕,不能用手写谱,底色要白色,图片大点。
如果想要系统地转换,请看我的文章

How I rescue je ?

je谱诞生以来一直诟病不断,就是针对其缺少时值信息的缺点。本项目的解决方法:

为了更自动化地赋予je谱时值,我借助 noteDigger 平台,实现了一个粗略的“je谱和音乐对齐”,输入音乐和je谱就能得到大概的音符时间;配合其“节拍检测”可以更进一步实现时值创建。

五线谱识别实现

文档末尾细说一下五线谱识别的实现。目前(就是这个效果堪忧的版本)使用的方法是:

怎么样,很粗糙吧。。。