Перейти к содержимому






Фотография
* * * * * 2 голосов

Sound card / звуковые волны, модуляция

Написано Fingercomp , в Sound Card, Computronics, Add-ons, OpenComputers, Programming in Lua, Tutorials, Minecraft Mods 13 Май 2017 · 981 просмотров

sound card модуляция Computronics Lua OpenComputers

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

 

Юзать будем мою прогу synth, которую я недавно зарелизил. Она здесь невероятно поможет.

 

Звуковая волна
Вы же знаете, как выглядит звуковая волна?

 

Изображение

 

Вот, например, синусоида. Как видно, здесь есть некоторый фрагмент, который повторяется несколько раз. Частота показывает, сколько раз в секунду этот фрагмент повторяется, и измеряется в герцах (Гц или Hz). Чем выше частота, тем больше волна "сжата", скажем так, с боков. Вот как выглядят три синусоиды с разными частотами: 110 Гц, 220 Гц, 440 Гц - на одинаковом масштабе.

 

ИзображениеИзображениеИзображение

 

Кроме частоты, звуковая волна характеризуется таким параметром, как амплитудой. Это, скажем так, расстояние от нуля до самого большого по модулю значения волны. Чем больше амплитуда, тем громче звук. Мы примем за единицу амплитуду сигнала на звуковой карте при максимальной громкости.
При нулевой амплитуде на графике будет прямая линия вдоль горизонтальной оси.

 

Изображение

 

При максимальной громкости у простой синусоиды пиковые значения будут в точках +1 и -1. Они плавно сменяются. Прикольно, да.

 

Синусоиды - это офигенные штуки, но на них клин светом не сошёлся. Из основных типов волн, помимо синусоид, есть меандр, треугольная волна и пилообразная. Они в таком же порядке изображены на рисунках ниже.

 

ИзображениеИзображениеИзображение

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

 

На самом деле, их можно представить в виде набора бесконечного числа синусоид, о чём когда-то поведал Фурье, но мы с этим заморачиваться не будем: раскладывать на синусоиды в звуковой карте не принято. Поведали об этом для красного словца - и то хорошо.

 

Теперь, когда рассказал про основы, можно переходить к более весёлым и сложным вещам. То бишь к модуляции.

 

Модуляция
Модуляция - это изменение одного сигнала (несущего) другим (модулятором). Изменять можно по-разному - мы будем говорить об амплитудной модуляции и частотной модуляции.
С модуляцией у нас появляется уникальнейший шанс получить офигенные и красивые звуки, поэтому не будем ждать и сразу перепрыгнем к мясу.

 

Амплитудная модуляция
Как я сказал, для модуляции нужны два сигнала: несущий и сам модулятор. Поэтому здесь и далее я привожу на рисунках сразу три графика: несущий сигнал, модулирующий сигнал и результат модуляции.
Например, выставим две синусоиды с частотой 440 Гц.

 

Изображение

 

Итак, амплитудная модуляция - это умножение одного сигнала на другой.

 

A(t) = C(t) × M(t),

 

где t - время, C - функция, возвращающая значение несущей волны на моменте времени t, M - то же, но для модулятора.
Однако не всё так просто. Перед умножением к значениям с модулятора прибавляется единица. Получается, что самая верхняя точка будет на +2, а самая нижняя - на 0. Иными словами, волна перенесена вверх.

 

На низких частотах - до 20-30 Гц, откуда начинается граница слышимого человеком звука, - графики будут выглядеть как-то так, медленно увеличивая амплитуду от 0 до 4 и обратно.

 

Изображение

 

И звучать оно будет как увеличение и уменьшение громкости (количество таких увеличений и уменьшений равно частоте модулятора).

 

Однако когда частота модулятора становится больше, наблюдаем вот такую картину (частота модулятора равна здесь 330 Гц).

 

Изображение

 

Если прислушаться, то станет заметно, что одновременно будто бы проигрываются три звуковых волны. Одна волна имеет такую же амплитуду и частоту, как и несущая. Две другие частоты, задающие боковую полосу частот (диапазон частот, сконцентрированных рядом с какой-либо), находятся так:

 

f1 = |c - m|,

f2 = c + m,

 

где c - частота несущей волны, а m - частота модулятора. Возникающие звуковые волны около этих частот вдвое тише, чем несущая.

 

В звуковой карте можно поставить амплитудный модулятор следующим образом: sound.setAM(carrierChan: number, modulatorChan: number).

 

Амплитудная модуляция - забавная вещь, и в то же время тут очень трудно подобрать что-то интересное и красивое. Поэтому переходим к частотной модуляции - там веселья дофига.

 

Частотная модуляция
В частотной модуляции модулятор изменяет частоту несущей волны. Как ни странно.
Почему частотная модуляция уделывает амплитудную? Здесь может быть гораздо больше боковых частот. И потому звучать оно может гораздо круче.

 

При когда значение на модуляторе увеличивается, повышается и частота на несущей волне.

 

Звуковая карта поддерживает индекс модуляции. Он задаёт максимальное изменение частоты несущей волны. При индексе, равном 100, частота несущей волны может меняться на 100 Гц вверх и на 100 Гц вниз. Если индекс равен 1000, то частота меняться может на 1000 Гц вверх и на 1000 Гц вниз. Ну и так далее.
Иными словами, индекс задаёт силу модуляции.

 

Если частота модулятора будет очень низкой (например, 4 Гц), то получим что-то вроде сирены.

 

Изображение

c = 440 Гц; m = 4 Гц; i = 200

 

С повышением частоты получим вибрирующий звук. И потом услышим дополнительные частоты.

 

Изображение

c = 220 Гц; m = 880 Гц; i = 660

 

Как видно, получившаяся волна получилась довольно сложной.

 

Установить модулятор в звуковой карте можно с помощью функции sound.setFM(carrierChan: number, modulatorChan: number, index: number).

 

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

 

 

 

На этом всё. Из всех фич остался неразобранным лишь шум LFSR, но там штука очень и очень странная и непонятная.

 

Наверняка всё равно остались некоторые вопросы по поводу модуляции. Поэтому за дополнительной информацией я предлагаю обратиться к другим сайтам. Вот несколько очень полезных ссылочек, где есть примеры звука и детальное описание:

Ну и используйте прогу synth, чтобы удобно было изучать звуковую карту.






Все это довольно неплохо, но модуляция довольно простая тема, да и нагуглить не долго.

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

А вот как прикрутить фурье-функцию, чтобы можно было работать с несколькими картами, тут придется жонглировать бензопилами.

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

Вот как выглядят три синусоиды с разными частотами: 110 Гц, 220 Гц, 40 Гц - на одинаковом масштабе.

Циферка потерялась.

Циферка потерялась.

Циферка нашлась и вернулась домой.


Обратные ссылки на эту запись [ URL обратной ссылки ]

Обратных ссылок на эту запись нет

Последние версии

Стабильная: 1.7.1
Последняя: 1.7.1

Искать в моем блоге

Новые комментарии

Февраль 2018

В П В С Ч П С
    123
45678910
11121314151617
181920212223 24
25262728   

Полезные ссылки

Официальный сайт OpenComputers

http://oc.cil.li/

 

Официальный форум OpenComputers

http://oc.cil.li/index.php?/index

 

Репозиторий OpenComputers на ГитХабе

https://github.com/M...s/OpenComputers

 

Последние релизы OpenComputers

https://github.com/M...puters/releases

 

Jenkins-сервер

http://ci.cil.li/job...s-dev-MC1.7.10/
 

Репозиторий OpenPrograms

https://github.com/OpenPrograms

 

Репозиторий моих программ

https://github.com/O...rcomp-Programs/

1 посетителей

0 пользователей, 1 гостей, 0 анонимных

Последние посетители

  • Фотография
    Kulib9ka
    Сегодня, 02:29
  • Фотография
    Litvinov
    Вчера, 23:30
  • Фотография
    Nov1X
    22 фев 2018 - 20:50
  • Фотография
    Xylic
    22 фев 2018 - 16:15
  • Фотография
    HZ1one
    22 фев 2018 - 15:18
  • Фотография
    Laine_prikol
    22 фев 2018 - 14:43
  • Фотография
    whiskas
    22 фев 2018 - 14:18
  • Фотография
    PandaDoddo
    19 фев 2018 - 21:14
  • Фотография
    kovirolik
    18 фев 2018 - 23:17
  • Фотография
    Bleyn
    17 фев 2018 - 21:14
  • Фотография
    STAV
    14 фев 2018 - 19:21
  • Фотография
    Belzebub
    14 фев 2018 - 19:11
  • Фотография
    Strateg
    11 фев 2018 - 21:20
  • Фотография
    kotik_prikol
    11 фев 2018 - 18:21
  • Фотография
    Prostag
    10 фев 2018 - 19:45
  • Фотография
    AtomicScience
    09 фев 2018 - 23:04
  • Фотография
    RccHD
    07 фев 2018 - 21:06
  • Фотография
    folder
    06 фев 2018 - 13:28
  • Фотография
    eu_tomat
    06 фев 2018 - 08:16
  • Фотография
    Koteyk0o
    06 фев 2018 - 02:28
  • Фотография
    NEO
    05 фев 2018 - 19:25
  • Фотография
    Zabqer
    04 фев 2018 - 19:38
  • Фотография
    Nifon
    03 фев 2018 - 18:43
  • Фотография
    Appo
    03 фев 2018 - 13:26
  • Фотография
    Totoro
    03 фев 2018 - 01:57
  • Фотография
    Miroshka
    29 янв 2018 - 17:44
  • Фотография
    HelenForsi
    28 янв 2018 - 17:16
  • Фотография
    Sploom
    28 янв 2018 - 15:50
  • 28 янв 2018 - 11:57
  • Фотография
    N1nt3nd0
    28 янв 2018 - 10:55
  • Фотография
    ivan52945
    28 янв 2018 - 02:02
  • Фотография
    Kid
    27 янв 2018 - 23:32
  • Фотография
    titanium123
    27 янв 2018 - 18:52
  • Фотография
    MrSnake20_15
    27 янв 2018 - 17:41
  • Фотография
    marko_rus
    27 янв 2018 - 17:34
  • Фотография
    ECS
    27 янв 2018 - 07:17
  • Фотография
    Dancho
    26 янв 2018 - 23:54
  • Фотография
    TC1061
    26 янв 2018 - 21:08
  • Фотография
    Doob
    26 янв 2018 - 14:18
  • Фотография
    DarthWirthe
    24 янв 2018 - 22:52
  • Фотография
    solikos
    23 янв 2018 - 12:59
  • Фотография
    vx13
    23 янв 2018 - 12:03
  • Фотография
    Dozimetrist
    22 янв 2018 - 21:02
  • Фотография
    Ditrix667
    20 янв 2018 - 05:35
  • Фотография
    LeshaInc
    19 янв 2018 - 19:31
  • Фотография
    Mirotworex
    18 янв 2018 - 17:03
  • Фотография
    VGAMER_Tiger
    17 янв 2018 - 16:54
  • Фотография
    RockMaks_00
    15 янв 2018 - 10:07
  • Фотография
    DotPack
    15 янв 2018 - 01:04
  • Фотография
    HixOff
    11 янв 2018 - 22:49

Лицензия

Яндекс.Метрика