从MIDI旋律生成DIY音乐盒的SVG打孔卡的CLI工具。
项目描述
punchline
CLI工具,用于从MIDI旋律生成SVG打孔卡(带有旋律的条纹)的DIY音乐盒。
一些基本知识
- SVG 是一种图像矢量格式,这意味着你可以将图像放大到任意大小,并在任何打印机、绘图仪 或 激光切割机 上打印。
- MIDI 是一种声音格式,它不是描述确切的音频,而是描述哪些乐器应该在何时演奏哪个音符。你可以在网上找到任何流行旋律的免费MIDI文件。
- DIY音乐盒 是一种音乐盒,它不是播放预定义的旋律,而是可以播放任何从带有孔的纸条上演奏的旋律。你可以在网上以相当低的价格购买一个。
功能
- 使用现代Python编写。
- 具有友好的CLI。
- 有良好的文档化的源代码(如果你真的想调整某些东西)。
- 高度可配置。
- 只有必要的依赖项。
- 自动找到最佳转调。
- 为音乐盒上不存在的音符找到最佳匹配。
- 支持所有类型的音乐盒。
- 支持离线工作。
- 检测可能无声的音符。
- 激光切割友好输出。
安装
您需要
python3.9 -m pip install punchline
使用方法
获取帮助
python3.9 -m punchline --help
从 SevenNationArmy.mid 的第三轨生成20音符音乐盒的打孔卡,支持升音,并将结果保存到 "7nation" 目录
python3.9 -m punchline --input SevenNationArmy.mid --tracks 3 --sharps --notes-count 20 --output 7nation
唯一必需的参数是 --input
。默认情况下,它将为15音符的非升音音乐盒生成所有音轨的条纹,并将结果存储在 "output" 目录。
您可以在 presets.md 中找到更多示例。
编辑技巧
- 您可以使用 Inkscape 编辑生成的SVG图像。它是免费的且功能强大。
- 要批量编辑特定类型元素
- 选择此类型的元素
- 右键单击它。
- 打开 "选择相同" 菜单。
- 选择 "填充和描边"
- 红色圆圈表示在音乐盒上无法完美匹配的声音。它们与大多数其他声音相比位于不同的音阶,或者当您的音乐盒不支持半音时,它们是半音(升音)。Punchline会尽力将它们放置在可以发出声音的位置,但您可能想编辑它们或完全删除。
- 注意轮廓圆圈(用白色填充而不是颜色)。这表示与同一线上的上一个声音太接近的声音。由于音乐盒的限制,它们可能无声。您可能想降低整个旋律的
--speed
,或手动移动(或删除)冲突的声音。圆圈(圆心)之间的最小距离由--min-distance
配置。
致谢
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源代码分发
punchline-1.4.0.tar.gz (13.9 kB 查看哈希值)
构建分发
punchline-1.4.0-py3-none-any.whl (13.1 kB 查看哈希值)
关闭
punchline-1.4.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 017dd699a1a78920c1989c9e6d6b8fc6a58c3d563834d7ed29f3bd3a8087b4a9 |
|
MD5 | b70af56730112b7f2a319f5240b817c2 |
|
BLAKE2b-256 | 91459028d43e71e2c7ecc2bfaca6993176f16d8c3476b66f7cd3624a1d3c6a3d |