Java Synth: создание тестового сигнала

Я смотрел на синтезатор Java людей, но не могу понять, как создать простую версию их программы. Моя цель - создать в java простой тестовый сигнал, который пользователь сможет изменять, нажимая определенные клавиши. Например, нажатие "r" повысит амплитуду, или "f" увеличит частоту. Я просто хотел бы знать: с чего начать создание этого?

3 ответа

Решение

Ну, это было бы неприятно, но самый простой подход - создать прямоугольную волну.

В зависимости от того, создаете ли вы файл с амплитудами со знаком или без знака, вам нужно решить, следует ли колебаться между 0 а также amplitude, или же -amplitude а также +amplitude,

Частота будет определять, сколько сэмплов создавать при каждом значении перед переключением.

Трудно получить больше информации без каких-либо подробностей о том, какой выходной формат вы пытаетесь создать и т. Д., Но это может помочь вам начать. Создайте синусоидальную волну для более приятного тона:)

Увидеть Beeper для примера генерации тона.

У меня есть Термен, который работает через Java:

http://www.adonax.com/blog/?p=187 http://www.hexara.com/VSL/JTheremin.htm

Поскольку для генерации данных я использую волновую таблицу, высота звука определяется скоростью, с которой курсор перемещается по таблице. Я использую линейную интерполяцию, когда курсор попадает между элементами таблицы. Таким образом, если таблица элементов 1024 описывает одну синусоидальную волну, проход по ней по одному элементу за раз равен одной скорости, проход по ней за 1,2 элемента за раз (с линейной интерполяцией для получения промежуточных значений) будет немного быстрее и выше подача.

Другие вопросы по тегам