Простой способ воспроизведения одной частоты в java?

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

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

Ответ 2

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

Player player = new Player();
player.play("A C# E");

Ответ 3

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

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