madderscientist/noteDigger

在线前端频谱分析扒谱 front-end music transcription

noteDigger – 前端音频转MIDI工具

功能说明

  • 一个纯JavaScript网页应用,支持上传音频(或视频)文件,可视化其频谱图,并手动或自动提取音乐音符。
  • 提取的音符可通过丰富的鼠标/键盘快捷键进行编辑,然后导出为标准MIDI文件,或保存为可后续继续编辑的自定义二进制“.nd”项目文件。

为何重要

  • 大多数音频转MIDI工具是重量级桌面程序或云端服务。noteDigger 完全在浏览器中运行,无需外部库或框架,因此体积极小(仅几MB),但仍提供高级功能,如GPU加速的STFT/CQT、基于神经网络的转录、以及谐波去除。
  • 通过将整个工作流保留在客户端,保护用户隐私(音频从不离开本地设备),并在初始页面加载后支持离线使用。

核心功能(详见README)

功能 工作方式 / 提供内容
音频导入 支持拖拽或文件菜单上传MP3、WAV,甚至视频文件(MP4、MOV等)。
频谱图分析 实时STFT;可选CQT(恒Q变换),可通过WebGPU实现GPU加速。
自动处理 • 使用NNLS(非负最小二乘法)进行谐波去除,以增强基频。
• 使用传统信号处理算法进行节拍追踪与速度检测。
• 使用两个ONNX模型进行AI辅助转录:basicamt(与乐器无关的音高转录)和 septimbre(乐器分离转录)。
手动编辑 可在时间-频率画布上直接绘制音符;支持移动、拉伸、复制/粘贴、删除、锁定轨道。所有常见快捷键(Ctrl-Z/Y、Ctrl-C/X/V等)均受支持。
量化与对齐 两种导出模式:(1) 保留原始音符位置(秒)以实现“边听边画”工作流;(2) 根据用户设定的精度x量化到音乐节拍单位,支持按小节设置BPM变化。
MIDI导入/导出 可导出为标准MIDI(类型1,多轨),支持自定义速度和量化。可导入现有MIDI文件;音符将映射到轨道,速度默认为127。
项目保存 二进制“.nd”文件保存频谱图、音符、轨道和小节信息,便于后续重新打开。
用户界面 现代化、无框架UI,支持轨道拖拽、右键上下文菜单、钢琴卷帘视图,以及顶部工具栏用于切换工具(如节拍对齐、小节对齐)。
性能优化技巧 降低重绘频率,用户任意操作后统一刷新,以及使用“tinySynth”JavaScript合成器实时播放编辑后的音符。

典型工作流程(来自README摘要)

  1. 在现代浏览器(推荐Chrome)中打开应用。
  2. 上传音频文件并选择分析方法(STFT或CQT;如有GPU则启用)。
  3. 运行可选自动步骤:节拍检测 → 谐波去除 → 调性检测。
  4. 点击“AI转录”按钮(“人工智障扒谱”)生成初始音符图谱。
  5. 手动优化结果:将音符对齐节拍、合并小节、锁定轨道等。
  6. 将最终结果导出为MIDI文件(量化用于乐谱)或保存项目以供后续编辑。

技术亮点

  • WebGPU加速CQT – 即使在集成显卡上也能显著提升恒Q变换速度。
  • 浏览器内ONNX Runtime – 无需服务器即可运行两个预训练神经网络,实现音高转录与乐器分离。
  • 非负最小二乘法(NNLS) – 经典优化方法,用于减去谐波成分并突出基频。
  • 纯JS架构 – 无React/Vue等框架;所有UI组件均为手写JS类,保持打包体积极小。

适用人群

  • 希望快速、私密地从录音中提取音符的音乐人。
  • 在浏览器中探索音频信号处理的教育者或学生。
  • 寻找客户端频谱图可视化、基于WebGPU的CQT或JavaScript中ONNX推理参考实现的开发者。

试用方式


以上所有信息均直接来自仓库的README;未推断任何额外功能。

相关

  • 项目
  • 项目
  • 项目
  • Dispatch
  • Dispatch