Linux 上的 Java 声音和音乐软件,第 3 部分
在本期中,我完成了对在 Linux 下运行的基于 Java 的声音和音乐应用程序的调查。我再次主要关注生产软件。
MIDI 和 Java
Java Sound API 包含对 MIDI 的强大支持,但令我惊讶的是,没有发现为 Java 编写的完整 MIDI 音序器。令人高兴的是,JavaSound 的 MIDI 功能被各种应用程序充分利用。
JSynthLib
如果您拥有 MIDI 硬件合成器,您可能已经发现,从合成器本身执行编辑和存储新声音可能是一项繁琐的任务。在 1980 年代后期,远程控制 MIDI 合成器编辑过程的软件市场蓬勃发展。起初,这些程序仅为特定机器(例如 Roland D50)或机器系列(例如 Yamaha DX/TX 系列)编写,但后来的发展趋势是所谓的通用合成器编辑器/库,它可以表面上编辑和存储任何合成器的音色。

JSynthLib(图 1)项目旨在为所有支持 Java 的平台提供通用合成器编辑器。目前,公共版本支持近四十种合成器,尽管这种支持的深度各不相同。一些机器(例如我的 Yamaha TX802 和 Kawai K4r)完全支持其所有功能,而其他机器仅部分支持。唉,上一个公共版本是三年前发布的,虽然 JSynthLib 仍然有用,但它肯定需要一些帮助之手,使其走上正轨,以扩展对更多机器的支持,并完成对程序已支持的合成器的功能集的支持。
音乐教学
Bob Keller 的 Impro-Visor 是一个“即兴顾问”,即它是一个帮助即兴演奏者学习如何在任意复杂的和弦进行上演奏的程序。真的没有什么像 Impro-Visor 这样的东西:它主要不是伴奏生成器,如 Band In A Box,也不是 Music Minus One 的纯软件版本,尽管它能够发挥这些作用。它可以协助音乐家进行和声分析,并建议即兴演奏通过和弦变化可能采取的路线。它的名字反映了它的意图,它建议演奏者关于可用的最佳音符选择,并将生成各种可能的独奏者考虑的演奏方式。Impro-Visor 是一款真正独特的软件,强烈推荐给任何学习音乐即兴演奏艺术的复杂绳索的人。

一些有用的 Java 音乐软件很好地满足了新兴的 Linux 吉他英雄和女英雄的需求。Guitar Codex Plus(图 2)适用于想要更多了解在乐器上演奏的和弦和音阶的吉他手。它可以作为和弦词典、和弦/音阶显示生成器、琶音查找器等等。该程序以常见的吉他谱形式表示这些元素,并通过 MIDI 实现它们,因此演奏者可以听到每个例子,并根据需要更改速度、调性和甚至乐器。 Guitar Scale Assistant 是一个类似的程序,具有出色的显示效果,以及超过 600 个音阶,可在指板视图中即时表示。

TuxGuitar(图 3)被宣传为“多轨谱编辑器和播放器”。谱是一种特定于乐器的音乐记谱形式,但与标准西方记谱法不同,谱(更广为人知的简称是 tab)是非抽象的,即它实际上是一种地图,指示手指应该放在哪里。Tab 的直接性对初学者具有很大的吸引力,并且 Web 上提供了大量的 tab 作品。TuxGuitar 支持流行的 GuitarPro 和 PowerTab tab 格式,这两种格式都为在 Web 存储库中最常见的基本 tab 添加了许多功能。
音乐记谱
Java 的图形功能已经足够完善,可以显示标准西方音乐记谱法所需的各种符号和标志。JMSL 环境包括一个标准乐谱输入模块,供希望以旧式方式工作的作曲家使用,JMusic 环境也支持记谱界面。

jEdit 是一款流行的 Java 文本编辑器。虽然 jEdit 主要为程序员设计,但它对普通的非编程用户也具有许多吸引力,包括用于扩展 jEdit 已经令人印象深刻的功能的插件架构。Bertalan Fodor 的 LilyPondTool(图 4)就是这样一个插件,它为 jEdit 添加了一个完整的环境,用于以出色的 LilyPond 音乐排版语言创建、编辑、查看和打印乐谱。对于希望获得一体化乐谱制作环境的 LilyPond 用户来说,jEdit/LilyPondTool 组合是一个真正的强大工具,我认为它是强烈推荐给完整的 Linux 音乐工作室的软件。
Skink 是 abc 音乐记谱软件的基于 Java 的 GUI 前端。我曾在之前的文章中写过关于 Skink 的文章,因此我不会在这里重复该内容。可以说,与 LilyPondTool 一样,Skink 将编辑、显示和渲染 abc 音乐记谱文件所需的组件组合在一起,将所有需要的工具放入一个容器中。
我还必须提及 abc4j,这是一个库,编写它的目的是“...用于通用音乐记谱法,尤其是 abc 记谱法”。该项目相对较新,但对于在 Java 中使用标准记谱显示器的程序员来说,它可能特别有趣。
Java 鼓机/节奏编程器
在搜索 Java 打击乐器/节奏软件时,有三个程序引起了我的注意。Ollie Glass 的 Breakage 类似于典型的软件鼓机,配备了步进音序器/模式编辑器、采样浏览器/加载器以及预期的传输控件。但是,Breakage 添加了人性化和摇摆控制、概率模式变形和神经网络伴奏训练器。绝对不是典型的鼓机。MuSing 从现有的节拍集中演化出节奏模式和循环。该程序的 GUI 有点不寻常,但正如我在之前对 MuSing 的 评论 中写道,我发现该界面易于学习和使用。模式(音频或 MIDI)被加载到程序中,单击一下即可生成音乐变体。orDrumbox 呈现了熟悉的基于模式的 GUI(图 5),以及一些用于随机化和以其他方式调制您的基本素材的便捷工具。该程序专为实验和快速结果而设计,我必须承认,我真的不想停止玩 orDrumbox 及其控件。

Java DAW
也许 Java Sound API 的局限性阻碍了开发人员创建真正的 Java 数字音频工作站 (DAW),但幸运的是,这并没有阻止他们中的一些人尝试。
XO Wave 的设计更像是一个高质量的母带处理套件,而不是 DAW,但它肯定可以作为主要的硬盘录音系统。它的设计偏向于 CD 母带制作和播客准备,该程序支持多轨音频录制和编辑,其音频引擎从 PortAudio API 获取动力。因此,如果您的 PortAudio 构建包含 JACK,XOWave 也支持 JACK。

Frinika 是一款音频/MIDI 音序器,具有多种用于音乐创作的界面,包括钢琴卷帘显示(图 6)、跟踪器风格的作曲器和标准音乐记谱视图。它还包括通过 JJack 系统对 JACK 的支持(请参阅本系列文章的第 1 部分)。我无法测试其 JACK 支持,但该系统会回退到标准的 Java Sound API 以实现其音频和 MIDI I/O 功能。当我使用程序的默认设置播放演示文件时,播放断断续续。但是,可以调整音频设置,并且仍然希望与 JJack 建立稳定的连接。
DJ Java
在 linux-sound.org 的 Linux DJ 页面上只显示了一个 DJ 混音器,但这个程序非常出色。UltraMixer 是一款用于专业 DJ 的商业全功能混音器,但也有免费版本。唉,免费版本不如完整专业版功能丰富(有关完整故事,请参阅 UltraMixer 功能比较页面)。我也无法确定该程序是否支持 JACK。也许用户可以澄清这个问题?尽管存在这种不确定性,但 UltraMixer 显然是一款设计精良的产品,拥有庞大而活跃的用户群(该程序也适用于 Windows 和 Mac),并且绝对值得认真的 Linux DJ 关注。
声音文件编辑器
Java 音频软件库包括一些著名的声音文件编辑器,每个编辑器都具有一些非凡的功能。名称奇怪的 AudioCutter Cinema 包括用于处理环绕声的独特工具,Olivier Gräumann 的 LAoE(基于图层的音频编辑器) 提供了大量处理模块和一种不寻常的编辑方法,Eisenkraut 编辑器受益于与 OSC、JACK 和 SuperCollider3 音频合成和处理环境的连接。唉,AudioCutter 和 LAoE 的开发似乎已经停滞不前。Eisenkraut 显示出巨大的潜力,具有出色的显示效果(图 7)以及 SuperCollider3 提供的可能性。但是,它需要大量的外部资源,并且充分利用其全部功能取决于用户对 SuperCollider3 的了解程度。

顺便说一句,Eisenkraut 并不是唯一利用 Java 环境中 SuperCollider3 强大功能的音频应用程序。Meloncillo 是一个用于在空间中合成声音和绘制其轨迹的助手。一个有用的 GUI 生成数据集,这些数据集可以由 SuperCollider3 或 CSound 评估和执行。未发布的 Scream 软件也使用 SuperCollider3 作为其 AmbiPan 和 AmbiGranuSampler 的音频引擎。Scream 的屏幕截图看起来非常有趣,但该项目似乎已经停滞不前。
结尾
我发现一些应用程序可以在 Linux 下打开,但无法发挥全部功能。例如,Balaftuna 是一个简洁的 x/y 控制器,用于将鼠标移动转换为 MIDI 消息。不幸的是,它的 MIDI 功能依赖于仅适用于 Windows 的组件。源代码是开源和免费的,但在有人重写受影响的代码之前,该程序将打开,但无法在 Linux 下运行。
我希望您喜欢这次 Java 音乐和声音软件领域的探索之旅。在研究阶段,我发现了很多以前不知道的应用程序,现在我有一批 Java 音频/MIDI 程序,我打算更全面地探索它们。我已经进一步研究了其中一些应用程序,因此我介绍的一些程序很有可能在以后的文章中得到更完整的评论。与此同时,我鼓励读者推荐他们自己喜欢的(基于 Java 或其他)程序供我细阅。
接下来,是对 discoDSP 的新 Discovery 合成器的评测,这是第一个可商用的原生 Linux VSTi 插件。