问题标签 [gervill]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
405 浏览

java - 甲骨文Java的格维尔?

据说 Gervill是为开源 JDK 创建的,但它与 Oracle Java 兼容吗?

0 投票
2 回答
1263 浏览

java - 使用 SF2 soundbank 对 Gervill 的简单帮助

我已经下载了 Grevill gervill.jar 并使用我现有的代码从: http: //www.jsresources.org/examples/MidiPlayer.html

谁能花点功夫写一篇关于加载 SF2 音库的教程?如果没有网络上的教程,我会哭泣。

0 投票
1 回答
374 浏览

java - openjdk gervill软件混音器上的声音输出在哪里

我正在查看 openJDK 中使用的 gervill 代码,因为我想要一个不直接依赖于任何外部库的混音器。我猜想混音器会在某个地方输出原始音频数据,这些数据可以发送到实际的声音硬件或其他东西,但是无论我怎么看,我都找不到声音/样本应该发出的地方。是在softmixingmixer 类还是sofmixingdatasourceline 类我不知道。我找不到任何文档。

有谁有这个搅拌机的经验吗?

0 投票
0 回答
1842 浏览

java - Gervill 和 SF2 在某些 MIDI 文件上的声音不正确

我将不胜感激您对随附的源代码/问题的想法。
下面的代码适用于大多数 MIDI 文件。但是,有些声音不正确。
它们会产生一种哇-哇的声音。我能够通过修改 Java StandardMidiFileReader 以删除 176/1/77/0 消息(颤音深度)来规避纯钢琴曲的问题,例如下面使用的曲子。
有人知道如何真正解决这个问题吗?这不仅仅是一首音乐。

我相信 Gervill 可能存在错误,例如类路径上的 Gervill(或 Java 7,其中 Gervill 似乎是发行版的一部分(并且我刚刚发现当前的 Java 6 版本))某些其他文件无法正确播放一点也不。一个例子是http://mb-s2.sakura.ne.jp/tirol/junk/midi/wagner_walkurenritt.mid
(从大约 20 秒开始,当 Gervill 被使用时,同样有趣的 Wha-Wha 背景噪音开始)
通过替换标准合成器与 Keishi Suenaga 的 Timidity++ 扩展版本并使用相同的 SF2,所有部分听起来都很好,所以它不会损坏 MIDI 文件。

代码:对于 Java SF2 支持 Gervill 需要在类路径
Soundfont:我已经尝试过 JCLIVE.SF2 和一个 Steinway SF2;
soundfonts 可以在hammersound.net 或synthfont.com 上获得 sfarc
unpacker 可以从 melodymachine.com 下载,或者如果站点关闭 sourceforge.net/projects/miditool/files/third%20party/

我还尝试将 SF2 声音文件中的单个乐器加载到合成器上,我不依赖 com.sun.media.sound.SF2Soundbank 类,结果相同:

0 投票
1 回答
455 浏览

java - 在 Gervill SF2Soundbank 中将多个样本添加到一台仪器

我正在使用 Gervill 创建带有乐器的音库。我已经为每个音高录制了一个样本,现在我想将这些样本放入一个乐器中。我目前使用的文档是来自 openjdk6 源代码的测试。除此之外,我还找到了 Karl Helgason 的一个例子,这很有帮助。该示例将音频文件加载到音库中,但每个乐器仅使用一个样本。我修改了他的示例文件,当我使用音库进行回放时,似乎只使用了一个样本并根据请求的音高进行音调。相反,我想为每个音高使用一个特定的样本。我怀疑我的 for 循环是围绕方法的错误部分构建的,并且额外的样本正在覆盖以前保存的样本。

我的问题是每个样本应该分别有哪些部分:层?还是地区?两个都?不幸的是,格维尔术语似乎与我发现的另一个术语略有不同,所以我有点困惑。

我使用了以下源代码(我在修改后的源代码中留下了版权说明,我不是律师,所以我不确定这是否是正确的做法。):

编辑:我似乎一次听所有的样本。它们同时播放,所以我刚刚意识到以下几点:我只是设置样本的原始音高,但我没有设置范围,即我没有将样本分配给某些 MIDI 键。我在哪里可以这样做?

0 投票
0 回答
1273 浏览

java - 我们可以使用 Soundfont 和 JFugue 创建自己的作品吗?

我们可以使用 Soundfont 创建自己的作品吗?我正在使用 Tabla Soundfont 和 JFugue 来创建新的作品并播放它。但在从 Soundbank 加载乐器后,程序仍会播放 Piano 的默认声音。如何使乐器从 Soundbank 中启用。检查以下代码:

在命令提示符输出处:

C:\Javapro>javac -classpath gervill.jar;jfugue-4.0.3.jar SF2Test2.java

C:\Javapro>java -classpath gervill.jar;jfugue-4.0.3.jar;. SF2Test2

现在加载到合成器上:

0 投票
1 回答
587 浏览

java - jFugue + Gervill:使用不同的音库,声音不会改变

我正在尝试使用 jFugue + gervill 用 Ja​​va 7 创建音乐。我有以下代码

问题是,如果我更改音库,乐器的声音不会改变,而且打印的乐器总是一样的。我错了什么?

0 投票
1 回答
271 浏览

java - java 7 gervill soundbank 在 Windows 上的位置

java 7 gervill soundbank 位于 MacOSx 上的 .gervill 目录中。Windows上对应的位置是什么?另外,有谁知道为什么这两个平台上的默认声音不同

0 投票
2 回答
291 浏览

java - 笔记本电脑退出休眠后 Java MIDI 音频延迟

我正在开发一种音乐编程语言,并使用 JVM(通过 Clojure)来播放用这种语言编写的乐谱。到目前为止,我们只是使用 javax.sound.midi MidiSynthesizer 来播放乐谱。

因为 Clojure 的启动时间很慢,并且我们希望能够从命令行播放乐谱并立即听到,所以我们选择将乐谱解释器构建为后台服务器进程,并使用更轻量级的方式与其通信用 Java 编写的命令行客户端。

所有这一切在大多数情况下都很好用,但是,我们看到一个奇怪的问题,如果您启动服务器,然后关闭您的笔记本电脑*并让它休眠,然后再次打开它并让服务器播放得分,音频不会立即发生,而是延迟几秒钟。使用调试日志运行服务器,我实际上可以看到 MIDI 音符开/关事件立即发生(并且定时正确),但音频被延迟。

*这可能是也可能不是特定于平台的。我在运行 OS X 10.9.5 Mavericks 的 2014 Macbook Pro 上看到了这个问题。

为了帮助缩小范围,我整理了一个简单的示例(使用 Java,而不是 Clojure)来演示该问题:

https://github.com/daveyarwood/java-midi-delayed-audio-example

一段时间以来,我一直在为此挠头。为什么音频会延迟,我们能做些什么呢?

0 投票
0 回答
800 浏览

java - 在 Java 中使用 ASIO 和 Gervill 合成器

我正在使用 Gervill 的软件合成器来加载 SF2 音库,并从 Midi 键盘播放音乐,我想知道是否可以通过 ASIO 播放输出,可能是通过JAsioHost。我一直在尝试查看 Gervill 源代码以查找原始音频数据何时真正传递给音频驱动程序,但我似乎无法找到它,即使那样,我也不确定这是否是正确的做法。

我正在使用的链使用 SF2loader 将声音字体加载到默认合成器中,然后我使用通道 noteOn 方法播放音符。