Простой способ воспроизвести одну частоту в Java? - PullRequest
10 голосов
/ 07 июня 2010

Я просто хочу сыграть очень простую прямую ноту, задав моему компьютеру определенную частоту в виде целого числа, и оттуда я могу выяснить, как заставить ее играть ноту длиннее или короче. Он не обязательно должен выходить из реальной звуковой карты - если он генерируется и выводится внутренним динамиком, это нормально.

Я посмотрел миди-библиотеки, которые включены в Java, и они намного больше, чем я хочу сделать. Это просто должно быть очень просто.

Ответы [ 3 ]

7 голосов
/ 07 июня 2010

Посмотрите на JFugue - это действительно легко сделать некоторые базовые вещи, и возможности есть, если вы хотите расширить позже.

Player player = new Player();
player.play("A C# E");
3 голосов
/ 07 июня 2010

Этот пример создает и воспроизводит равную темперированную шкалу .

0 голосов
/ 07 июня 2010

Насколько я знаю, нет способа сделать это без некоторого стандартного кода в Java.Наиболее простой API, вероятно, предоставляется классом Applet (также может использоваться сторонними разработчиками) в виде статического метода newAudioClip (URL url).Однако это дает вам возможность воспроизводить заранее определенные аудиоклипы, и у вас очень мало контроля над аудио.Если вам просто нужно воспроизвести аудио из небольшого заранее определенного набора клипов, этого может быть достаточно (вы можете иметь набор wav-файлов, содержащих ваши заметки, и воспроизводить их таким образом, при желании AudioClip можно зациклить).

Кроме того, API-интерфейсы midi и сэмплированного аудио гораздо более мощные, но гибкость достигается ценой: вам нужно значительно больше кода для их настройки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...