Следуя Генерированию тона

Здесь мы собираемся сделать бинауральный ритм. Бинауральные ритмы — это то, что вы получаете, когда генерируете два чистых тона на немного разных частотах.

Скажем, один бит равен 440 Гц, а другой — 435 Гц. Вы услышите колебание между ними, которое становится тем быстрее, чем ближе два удара друг к другу, и тем медленнее, чем дальше они друг от друга.

Но не верьте мне на слово. Следите за собой и делайте это сами.

Контекст = каналы

//Channel 1
const channel1 = new (window.AudioContext || window.webkitAudioContent) ();

//Channel 2
const channel2 = new (window.AudioContext || window.webkitAudioContent) ();

Сделайте осциллятор для каждого.

//Tone 1
const osc1 = channel1.createOscillator() //default frequency is 440HZ

//Tone 2
const osc2 = channel2.createOscillator()
osc2.frequency.value = 435

Вы можете сделать 2 осциллятора с 1 контекстом, но это затруднит управление двумя тонами по отдельности.

Подключите динамики и начните.

//Plug in speakers
osc1.connect(channel1.destination)
osc2.connect(channel2.destination)

//Play
osc1.start()
osc2.start()

Если вам нужно приостановить/возобновить

//Pause
channel1.suspend()
channel2.suspend()

//Resume
channel1.resume()
channel2.resume()

Настоящие бинауральные ритмы: наушники

Чтобы создать настоящий бинауральный ритм, вам нужны наушники.

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

Чтобы звучать два разных бита одновременно, нам нужно установить один тон на одну сторону стерео, а другой бит на другую сторону.

Начните с создания правого и левого стереоузлов. Один для канала 1 для проецирования, другой для канала 2.

//Channel 1 Left Stereo
const leftStereo = new StereoPannerNode(channel1)
leftStereo.pan.value = -1 // -1 left side, 0 balanced, 1 right side

//Channel 2 right Stereo
const rightStereo = new StereoPannerNode(channel2, { pan: 1}) //shortcut: set pan in creation options

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

//Plug the 1st tone into left stereo, and then out channel 1
osc1.connect(leftStereo).connect(channel1.destination)

//Plug the 2nd tone into right stereo, and then out channel 2
osc2.connect(rightStereo).connect(channel2.destination)

И канал 1, и канал 2 излучают через динамики. Если вы подключите наушники, то теперь вы услышите один тон с одной стороны и другой с противоположной.

Далее: Элементы управления