Кошка Мурлычет В Javascript

Недавно мне пришла в голову идея создать мурлыканье кошки на JavaScript. Поискав в интернете по этой теме, ничего не нашлось, значит надо реализовывать! Изучив, как это вообще можно сделать, я решил воспользоваться такой замечательной вещью, как API веб-аудио .

Современные браузеры уже более-менее нормально поддерживают эту технологию.

Идея работы Web Audi API предельно проста — мы создаем ноды и соединяем их друг с другом, причем каждый нод может быть источником звука, генератором сигналов, задержкой, анализатором, фильтром, регулятором громкости.

, точка «выхода» (откуда звук уже поступает на звуковую карту).

Для начала я взял mp3 мурлыканья и решил проанализировать спектр, чтобы в будущем синтезировать что-то подобное.

Схема подключения была следующая:

Кошка мурлычет в JavaScript

Но полученные красивые характеристики сигнала мне совершенно не помогли.

Поэтому пришлось подбирать параметры для генерации экспериментально.

Для генерации звука была реализована следующая схема:

Кошка мурлычет в JavaScript

И так, мой алгоритм: 1. Создать глобальные узлы регулировки громкости, анализатор, выход 2. Создаём блоки с узлами — генераторами, объёмами, фильтрами, задержками:

Кошка мурлычет в JavaScript

3. Подключите все к «основному» тому 4. Синусоидальное управление «основной» громкостью.

Таким образом, экспериментально были подобраны следующие параметры мурлыканья: 1-й блок: прямоугольные, синусоидальные, пилообразные сигналы частотой 11 Гц с ФНЧ на частоте 600 Гц и задержкой 0,001 с.

2-й блок: те же сигналы с задержкой 0,0013. 2-й блок: те же сигналы с задержкой 0,0012. Это оказалось сплошным мурлыканьем.

Но кошки мурчат громко при выдохе и тихо при вдохе, поэтому периодически увеличивать и уменьшать громкость необходимо.

Для этого я взял синусоиду с ограничением максимальной громкости:

Кошка мурлычет в JavaScript

В результате получилось мурлыканье «сферического кота в вакууме» — очень плавное, как будто микрофон держал прямо возле пасти кота, но очень похожее на тот пример, который был у меня в мп3. Конечно, все кошки мурчат по-разному (и моя тоже не одинаково), но результатом я все равно доволен.

Ссылка к jsfiddle УПД.

Не работает в фаерфоксе.

В хроме работает. УПД 2. Как оказалось, звук в разных наушниках сильно различается.

У одних это звучит как мурлыканье, у других – как вертолет! УПД 3. Вариант мурлыканья из комментариев: jsfiddle - на мой взгляд, это больше похоже на правду! УПД 4. Поправил скрипку - установил выбранные пользователем настройки Гринчи Теги: #JavaScript #Дурацкое программирование #кошки #Разработка сайтов #JavaScript

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.