JFugue поддерживает микротоны. (Это делается через API JavaSound в сочетании с большим количеством математики)
Другой вопрос, может ли он делать именно то, что вы ищете. Я считаю, что проблема, с которой вы столкнетесь, заключается в том, что каждая новая нота, которую вы играете, будет звучать как новая нота, а не как набор нот, связанных вместе. Это может быть особенно заметно, когда нота имеет значения атаки и затухания, отличные от 0, или если инструмент по своей сути имеет разные звуки в начале и конце ноты.
В JFugue вы можете установить атаку и затухание ноты, добавив «a» и «d», а затем значения от 0 до 128 после ноты: C5wa0d0 - нота C, 5-я октава, вся продолжительность, атака = 0 , распад=0.
Помощник микротона, как написано в настоящее время, позволяет вам определить одну частоту для строки; например, вы можете сопоставить 400 с "A400". Затем, чтобы использовать это, вы должны сказать player.play("[A400]w") (обратите внимание на скобки).
Один из способов получить то, что вы ищете, - это определить частоты и струны для любого количества микротонов, которое вы хотите, а затем создать паттерн с помощью цикла for... Pattern p = new Pattern("[A400]wa0d0 [A410]wa0d0 [A420]wa0d0"...); Вероятно, вы можете использовать шаг больше 1 Гц для каждой ноты, потому что наши уши не могут различить такие незначительные различия в частоте.
Если бы только было более элегантное решение! Но посмотрим, поможет ли это.
person
David Koelle
schedule
12.01.2010