Как генерировать звуковые эффекты в Java?

Вы можете создать скалярную функцию UDx (UDSF) в Java, C ++, R или Python. На входе будет строка, а на выходе будет целое число. https://www.vertica.com/docs/9.2.x/HTML/Content/Authoring/ExtendingVertica/UDx/ScalarFunctions/ScalarFunctions.htm

Это позволит вам использовать язык специальная логика массива для передаваемых строк. Например, в python вы можете включить эту логику:

input_list = input.split("$")
filtered_input_list = list(filter(None, input_list))
list_count = len(filtered_input_list)

Эти примеры являются хорошей отправной точкой для написания UDx для Vertica. https://github.com/vertica/UDx-Examples

15
задан David Koelle 18 November 2008 в 04:50
поделиться

3 ответа

Можно легко генерировать выбранные звуковые данные в Java и воспроизвести его, не используя собственный код. Если Вы говорите, вещи MIDI могут стать хитрыми, но я не баловался той областью.

Для генерации выбранных звуковых данных Вы имеете к вещи процесса назад. Мы собираемся действовать как A-to-D и выбрать непрерывную звуковую функцию со временем. Ваша звуковая карта делает то же самое для аудио через микрометр или строку в.

Первый, выберите частоту дискретизации (НЕ частота тона, который мы генерируем). Давайте пойдем с 44 100 Гц, так как это вероятно скорость воспроизведения звуковой карты (таким образом никакое преобразование частоты дискретизации, это не легко, если аппаратные средства не делают это).

// in hz, number of samples in one second
sampleRate = 44100

// this is the time BETWEEN Samples
samplePeriod = 1.0 / sampleRate

// 2ms
duration = 0.002;
durationInSamples = Math.ceil(duration * sampleRate);

time = 0;
for(int i = 0; i < durationInSamples; i++)
{
  // sample a sine wave at 440 hertz at each time tick
  // substitute a function that generates a sawtooth as a function of time / freq
  // rawOutput[i] = function_of_time(other_relevant_info, time);
  rawOutput[i] = Math.sin(2 * Math.PI * 440 * time);
  time += samplePeriod;
}

// now you can playback the rawOutput
// streaming this may be trickier
5
ответ дан 1 December 2019 в 04:27
поделиться

платформа медиа Java делает обоих. Можно воспроизвести зарегистрированные звуки или использовать MIDI-интерфейс для синтезирования собственных звуков и музыки. Это также предоставляет микшеру API.

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

JMF активно не сохраняется Sun, но там функционирует дистрибутивы для различных платформ.

Мой первый компьютер был Commodore 64, и я помню Слезы за Страхи, "Все Хотят Управлять Миром" при нагнетании из его микросхемы SID. Я не могу сказать, является ли этот чистый Java эмулятор SID открытым исходным кодом или нет, но он мог бы дать Вам некоторые подсказки по реализации более высокого уровня Attack-Decay-Sustain-Release и функциональность формы сигнала.

4
ответ дан 1 December 2019 в 04:27
поделиться

То, что Вы хотите, является, вероятно, не звуковым API, но некоторым кодом синтезатора, я вполне уверен, Вам нужно больше управления аудиодрайвером низкого уровня, чем Java позволил бы (это являющийся интерпретируемым языком, обычно работающим в "песочнице").

, Но хорошие новости то, что быстрый поиск" Java звучит, синтезирование " на Google показало плагин, названный JSyn, который использует собственные методы C (ведьма, которую я предположил, был один способ сделать его) генерировать звук. Это, кажется, свободно для некоммерческого использования и доступно в коммерческих лицензиях также. :)

0
ответ дан 1 December 2019 в 04:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: