JFugue 5.0.8的新增功能

我想与您分享JFugue 5.0.8中的一些令人兴奋的新功能!

  • 支持断弦
  • 实时播放器事件的更新,因此每个音符都带有其语音和乐器信息
  • 添加到间隔中的新方法,用于检查给定音符是否在具有根音的间隔中
  • 替换字符串的更改:下划线参考$ _已更改为$!

新功能:支持和弦

使用JFugue,您总是可以像这样演奏和弦:

new Player()。play(“ Cmaj”);

当然,这会弹奏C大调和弦(C,E和G)-同时演奏所有三个音符,并具有默认的四分之一持续时间。

但有时,您可能想演奏具有特定风格的和弦。 例如,您可能希望C大调和弦的音符更像行军,而和弦中的前两个音符只演奏一次,而后三个音符则演奏两次。 然后,也许您认为行军与您要寻找的不符,您想尝试其他安排。

为了使这种音乐实验和发现变得尽可能简单和快捷,JFugue引入了对折断和弦的支持。 此功能使用已经在和弦进行和间隔中使用的相同“替换弦”,以提供一个索引,您可以在该索引中在给定的时间弹奏该和弦的音符。

它是这样工作的:指定和弦,然后指定冒号,然后输入逗号分隔的替换字符串。 这是前面讨论的行军示例:

new Player()。play(“ Cmaj:$ 0h + $ 1h,$ 2q,$ 2q”);

有关更多示例和更深层次的介绍,包括在这里可以找到如何参考低音或根音,无论它们如何索引,都可以在这里找到: JFugue中的Broken Chords

阅读这篇文章的末尾,获得有关断弦的超酷视频。

新功能:更新为实时播放器

您可以使用RealTimePlayer将音乐事件实时发送到JFugue播放器。 但是,如果要同时指定声音,乐器和音符,则需要将三个不同的元素发送到RealTimePlayer,并且如果还有另一个线程也在发送三个不同的元素,则可能需要这些元素交织在一起,产生您意想不到的音乐。

解决方案是创建一个音乐原子 ,使您可以同时指定语音(以及(可选)图层),乐器和音符。 然后,您可以将原子发送到RealTimePlayer,音乐将正确呈现。 原子是单个Staccato元素; 它以分号开头,然后包含一个以逗号分隔的语音(以及(可选)层次),乐器和音符元素的列表。 例如,“&V1,I [Piano],Cw”是一个原子,它更改为Voice 1,乐器Piano,并在整个持续时间内播放C音符,而其他任何语音乐器音符设置不会影响它花费的时间。处理这个原子。

Pattern上还有一个新方法,称为atomize() ,它将返回一个新的Staccato字符串,其中包含模式中每个音符的原子。

新功能:检查间隔是否有注释

Intervals中有两个新方法has(String s)has(Note n) ,如果具有根(即已调用setRoot()的 Intervals)包含您感兴趣的注释的实例,则返回true在。

更新的功能:更改为替换字符串$ _参考

现在将替换字符串用于ChordProgression(在eachChordAs()allChordsAs()方法中)或Interval(在as()方法中)以及现在用于“断弦”时,以美元符号开头的引用使您可以指定和弦,和弦的索引进程或间隔(例如, $ 0是和弦的第一个音符), $ _用于指代和弦或和弦进行本身。 替换字符串的解析器(位于ReplacementFormatUtil类中)已被重写以支持坏掉的和弦,并且在此过程中,需要更改$ _参考(因为下划线也是连接字符,用于指示同时弹奏的音符像Ch + Eq_Gq一样同时演奏 。 替换为$!

谢谢阅读!

如果您已经走了那么远,请欣赏这首关于断弦的视频!