这个项目能做什么

Fontelle 是一款轻量级、以 Linux 为先的数字音频工作站,围绕基于 SoundFont 的采样播放构建。SF2 文件提供默认值——循环点、包络、滤波、映射、调音——其中每一项都可由你覆盖。免费且开源,由 Fopull LLC 开发。 状态:早期访问,但已是一个可用的工作室。有一个可以让你写完整首曲子的窗口;设计清单上仍有很多待办事项。 ## 安装 从最新发布中获取适合你平台的压缩包。 - **Linux**(这是它为之构建的平台):解压 tarball 并运行 `./install.sh`。它会把 `fontelle` 放到 `~/.local/bin`,并带有菜单项和图标——不会在你的主目录之外写入任何内容,不需要 root。`./install.sh --uninstall` 可以将其移除。该二进制文件需要发行版提供的 ALSA、D-Bus 和 lilv(用于 LV2 插件)——在 Debian/Ubuntu 上运行 `sudo apt install liblilv-0-0`,在 Fedora 和 Arch 上包名为 `lilv`;如果缺少任何东西,安装程序会提示。 - **Windows / macOS**:解压并运行 `fontelle`。目前二进制文件未签名,因此首次运行会出现警告(macOS:右键 → 打开)。 Fontelle 启动时会检查是否有更新版本,并从其开始菜单提供安装——在替换任何内容之前,下载内容会根据发布中公布的校验和进行验证。可以在设置选项卡中关闭该检查。 ## 为什么 现有的每个 SoundFont 播放器都把文件内部参数视为权威。Fontelle 反其道而行:SF2 提供起点,其中没有任何内容被锁定。完整设计见 `FONTELLE_TDD.md`——产品论点、不变量、crate 布局、里程碑,以及仍有待解决的开放问题。 ## 运行它 ```sh fontelle # 已安装 cargo run --release -p fontelle-app # 从检出目录运行 ``` 这会打开**开始菜单**:你最近的项目、*新建项目*、*打开项目…*,以及是否有更新的 Fontelle。选择一个,你就进入了工作室——一个通道机架、一个 soundfont 浏览器、一个编曲、一个钢琴卷帘和一个混音器,运行在真实音频设备之上。`--no-menu` 跳过菜单;`--help` 列出其余选项。 你的 soundfont 存放在 Fontelle 扫描的文件夹中,显示在浏览器底部。**打开文件夹**会在文件管理器中显示该文件夹,如果尚不存在则创建它——把你的 `.sf2` 文件放进去,它们就会出现。**更改…** 选择另一个文件夹(`Ctrl`+点击可添加一个并列文件夹而不是替换),该选择会被记住。默认是 `~/.local/share/fontelle/soundfonts`;如果你愿意,也有等效的命令行方式: ```sh cargo run --release -p fontelle-app -- --soundfonts /path/to/your/soundfonts ``` 然后:在浏览器中选择一个 soundfont,选择一个预设(普通点击会将其放到选中的通道;`Ctrl`+点击会放到新通道),然后开始绘制。 | | | |---|---| | 绘制 / 删除音符 | 鼠标左键 / 鼠标右键 | | 绘制一个到指定长度 | 从空白单元格拖出 | | 延长一个音符 | 拖动其右边缘 | | 工具 | `P` 绘制,`B` 涂画,`E` 选择,`D` 删除 | | 吸附 | `S` 循环小节 / 拍 / 1/8 / 1/16 / 1/32 / 三连音 / 关闭 | | 脱离网格,单轴 | 按住 `Alt`,按住 `Shift` | | 选择区域 | 选择工具,或 `Ctrl`+拖动 | | 剪贴板 | `Ctrl+C` / `X` / `V`,`Ctrl+B` 复制 | | 撤销 / 重做 / 保存 | `Ctrl+Z` / `Ctrl+Y` / `Ctrl+S` | | 播放 | `Space` | | 滚动 | 滚轮调整音高,`Shift`+滚轮调整时间 | | 以指针为中心缩放 | `Ctrl`+滚轮调整时间,`Ctrl+Shift`+滚轮调整音高 | | 查找 soundfont | `Ctrl+F`,然后输入——它按顺序匹配字母,所以 `gus` 可以找到 `GeneralUser GS` | | 所有快捷键 | `F1`,或开始菜单和传输栏上的 `?`——在那里点击一个即可更改 | 命令行仍然存在,而且比窗口能做更多事——离线 WAV 导出、MIDI 文件导入、实时 MIDI 输入、录制一轨。`--play-sf2 <file>` 通过一个预设播放一段演示乐句;添加 `--window` 可在编辑器中打开同一项目,`--open <project.fontelle>` 可重新打开已保存的项目。 ## 项目状态 早期访问。以下所有内容都已构建、测试并使用;`FONTELLE_TDD.md` 中的设计走得更远,而 `PROGRESS.md` 是每个部分所处状态的直白、持续更新的说明——在信任这个列表之前请先阅读它。 **作曲。** 带有轨道和片段(MIDI、音频、自动化)的编曲,循环、拉伸和剪切、淡入淡出、切割工具和预制件;带有绘制、涂画、选择和删除工具的钢琴卷帘,吸附低至 1/32 和三连音,属性轨道、幽灵音符、琶音器和连奏连接;滑音和弯音;完整撤销、自动保存和备份;重新打开时带音频的项目包。 **声音。** SoundFont 采样器,每个参数都归用户所有且可自动化;**Flopsynth**,内置合成器,带有 338 个预设的库;物理建模的鼓机;来自导入音频的采样器通道;支持热插拔的实时 MIDI、MIDI 录制、MIDI 和 FL Studio 乐谱导入;音频导入、带监听的录制、音频片段编辑器,以及离线渲染为 WAV。 **混音。** 带有发送、路由和带砖墙限制器的主总线的混音器;带湿/干和延迟补偿的插入链;轨道预设;十二个内置效果,每个都是一个家族而不是单一声音——Utility、EQ、Filter、Compressor(带侧链)、Gate、Distortion、Bitcrush、Soften、Chorus、Delay、Reverb 和 Tune,一个自动调音器。 **插件。** CLAP 和 LV2 乐器与效果,带有各自的编辑器窗口,其状态保存在项目中。 **未构建。** VST2/VST3 托管(已设计一个桥接,位于树外)、插件*导出*、采样流式传输(soundfont 完全驻留内存),以及设计的后续里程碑。Windows 和 macOS 构建来自与 Linux 相同的发布工作流,但测试较少。 关于脚手架期间做出的一个未在 TDD 中明确说明的结构性决策,请参见 `docs/scaffolding-notes.md`。 ## 构建 需要 Rust 2024 edition(MSRV 1.88.0)。在 Linux 上你还需要 ALSA、lilv(LV2)、D-Bus(用于 rtkit)以及窗口/XKB 开发头文件: ```sh sudo apt install libasound2-dev libudev-dev libxkbcommon-dev libwayland-dev \ libxcb1-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev \ liblilv-dev libdbus-1-dev cargo check --workspace ``` ## 发布 整个工作区使用一个版本号,位于根 `Cargo.toml` 中。提升它,提交,然后打标签并推送: ```sh git tag v0.2.0 && git push origin v0.2.0 ``` `release.yml` 会拒绝与树中版本不匹配的标签,构建 Linux、Windows 和 macOS 压缩包,并随 `SHA256SUMS` 一起发布——开始菜单的更新程序读取的就是它。 ## 许可证 在 MIT 或 Apache-2.0 下双许可,由你选择。 工厂三角钢琴的录音(`assets/flopsynth/samples/grand/`)取自 Alexander Holm 的 **Salamander Grand Piano**,以 CC BY 3.0 发布,并由 FreePats 项目组装为 soundfont;它们仍处于该许可证之下,并保留该署名。 工厂套件的录音(`assets/flopsynth/samples/kit/`)是 Fontelle 自己的鼓机,逐击录制;`assets/flopsynth/samples/kit/README.md` 说明了方法。 “SoundFont” 是 Creative/E-mu 的商标,此处仅作描述性使用。