400 музыкальных инструментов для Javascript

WebAudioFont — новая технология сходная с DLS, но предназначенная для применения в веб-приложениях Javascript.

На данный момент позволяет использовать 400 (четыре сотни) музыкальных инструментов для воспроизведения звука или сгенерированной музыки.

image


По сути, WebAudioFont это набор файлов Javascript, которые содержат массив аудиоданных и описание правил синтеза (AHDSR, частоту и пр.).
Для воспроизведения используется плеер на основе Web Audio API.
Все возможности Web Audio API доступны для используемых инструментов — можно подключать фильтры, плавно менять громкость и частоту, добавлять эхо и пр.
Синтез звука производится по принципу Wavetable.

Hello world


Минимальный код для воспроизведения звука

    
        
        
        
    
    
        

click!

Получится примерно такая страница.

Подробнее о коде:

 

 — подключаем плеер WebAudioFontPlayer.js
 

 — подключаем выбранный инструмент из файла 32.0.Accoustic_32Bsaccousticbs_461_460_45127.js
click!

 — по клику на ссылку вызываем проигрывание ноты.

queueWaveTable (audioContext, target, preset, when, pitch, duration, continuous) это основная (да и, скорей всего, единственная необходимая) функция плеера. Её параметры подробней:

  • audioContext — текущий AudioContext из Web Audio API
  • target — узел через который будет воспроизводиться звук, в простейшем случае это audioContext.destination
  • preset — переменная содержащая пресет (в примере это _tone_Accoustic_32Bsaccousticbs_461_460_45127)
  • when — время начала воспроизведения в секундах относительно audioContext.currentTime
  • pitch — высота ноты
  • duration — длительность ноты в секундах
  • continuous — true если нужно игнорировать AHDSR

Исходный код и дополнительную информацию с примерами можно посмотреть на сайте проекта WebAudioFont.

Для каких приложений можно использовать WebAudioFont?


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

image

На сайте проекта есть дополнительные примеры по областям применения:

  • виртуальные инструменты: ударник, пианино, флейта
  • звуковые эффекты: пример звука автомобиля
  • воспроизведение сгенерированной музыки: один рифф с переключением по двум вариантам

Отличие от других библиотек


WebAudioFont не является библиотекой или фреймворком, хотя и состоит их кода Javascript. Это большой набор музыкальных инструментов которые вы можете использовать в своих приложениях подключив парой строчек:
image

— в каталоге всего 170 инструментов с разыми вариантами звучания (по 2–3 на каждый инструмент).

Комментарии (0)

© Habrahabr.ru