如何用jfugue诋毁笔记

时间:2017-05-25 23:45:04

标签: java jfugue

我正在尝试使用jfugue连续播放约200个音高。这些音符都在播放,但它很不稳定。是否可以让音符以平滑的方式播放,就像一个sl两个音符的乐器一样?

1 个答案:

答案 0 :(得分:0)

如果您的音高跨越多个八度音阶,您必须为这些音符触发新的MIDI Note On事件。 (如果您的200个音高在彼此的半音范围内,则可以使用音高轮)。由于您需要触发新音符,您将听到音符开启和关闭,除非您可以设置音符/音符关闭速度,使其不明显。你也可以选择一种能够顺利演奏的乐器(例如,长笛,但不是钢琴)。

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

将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示例。