
FM-синтез звука в браузере. Часть 1
ZvoogHub 6 минут назад FM-синтез звука в браузере. Часть 1 Сложный 8 мин 26 Звук JavaScript * Веб-разработка * Туториал Рассмотрим возможности браузеров по синтезу звука. Разберём основы и в качестве практического...
Anthropic — What company has the best second artificial intelligence model at the end of June?
В сфере искусственного интеллекта произошло заметное событие. ZvoogHub 6 минут назад FM-синтез звука в браузере. Часть 1 Сложный 8 мин 26 Звук JavaScript * Веб-разработка * Туториал Рассмотрим возможности браузеров по синтезу звука. Разберём основы и в качестве практического применения сделаем эмулятор синтезатора Yamaha DX7.
Web Audio APIБраузеры позволяют вызывать из JavaScript объекты для управления и создания звука. Документация на русском: предоставляет компоненты для создания и изменения аудио-сигнала. Причём сами компоненты можно соединять между собой, а их свойства менять по расписанию.
Технические детали
Рассмотрим простейший пример, нечто вроде стандартного “Hello World! ” для языков программирования. Код примера страницы HTML с поясняющими комментариями beep Запускаем в браузере и наслаждаемся бибиканием.
Огибающая звукаЕсли дёрнуть струну гитары или нажать клавишу пианино, можно заметить что естественный звук отличается от компьютерного. Клавиша звучит громче в момент нажатия и постепенно угасает со временем. В синтезеторах этот эффект достигается регулированием ADSR-огибающей:Описание - наш прошлый пример и добавим огибающую.
Схема соединения компонентов:Код примера с комментариями beep AHDSR Запускаем в браузере - звук без резких скачков, более громкий в начале и тихий в конце. Модуляция звукаВ модуляции звука сигнал-носитель (carrier) изменяется с помощью сигнала-изменятеля (modulator). Подробнее - модуляция - вид модуляции, при которой изменяемым параметром несущего сигнала является его амплитуда.
Отраслевые последствия
Частотная модуляция - вид аналоговой модуляции, при которой модулирующий сигнал управляет частотой несущего колебания. По сравнению с амплитудной модуляцией здесь амплитуда остаётся постоянной. Амплитуданя модуляцияЗвук из модулятора направляется в свойство gain (громкость) узля Gain, на вход которого подключен носитель:Код примера Amplitude modulation Осциллятор выдаёт синусоиду , а в конечном результате у нас громкость должны меняться как - поэтому нужны дополнительные преобразования.
Прослушать в браузере модуляцияСхема соединения узлов:Код примера frequency modulation прослушать в браузере модуляцияФазовая модуляция сдвигает фазу сигнала, что добавляет в него обертоны и в результате меняет тембр. Подробнее - соединения компонентов:Код примера phase modulation Прослушать в браузере Audio API предоставляет готовые компоненты для работы со звуком. Дополнительно есть компонент AudioWorkletProcessor, он позволяет писать собственный код DSP.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





