gpt4 book ai didi

java - 如何用 jfugue 连音符

转载 作者:行者123 更新时间:2023-12-02 13:04:50 25 4
gpt4 key购买 nike

我正在尝试使用 jfugue 连续演奏大约 200 个音调。音符都在演奏,但很断断续续。是否可以让音符以平滑的方式演奏,就像乐器将两个音符连声演奏一样?

最佳答案

如果您的音高跨越多个 Octave 音阶,您将必然需要为这些音符触发新的 MIDI Note On 事件。 (如果您的 200 个音高彼此相差在半音以内,则可以使用音高轮)。由于您需要触发新音符,因此您会听到音符打开和关闭的声音,除非您可以以不明显的方式设置音符打开/音符关闭速度。您还可以选择一种适合流畅演奏的乐器(例如,可能是长笛,但不是钢琴)。

如果您不想自己列出这 200 个音调中的每一个,您可以编写一个新的 JFugue 函数,例如“:SLUR”,它可能采用起始音符值、结束音符值、总持续时间和持续时间内听到的步数。您的函数可能会创建两个音符之间的所有微音。然后,您可以调用微音预处理器将微音转换为音高轮和音符事件。

一旦将 SlurFunction 添加到预处理器上下文(请参阅 StaccatoParser.java),您就可以说:

// Start with Note 20, end at Note 80, 
// play for 2.5 * whole durations, and hear 20 steps in between.
// (Be sure there are no spaces in your function call)
new Player().play(":SLUR(20,80,2.5,20)");

在 JFugue 中编写新函数非常强大,但绝对是一项高级功能。如果您有兴趣,请参阅源代码中的 TrillFunction 示例。

关于java - 如何用 jfugue 连音符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44191422/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com