
バイノーラルビートを生成してみた
バイノーラルビートとは
バイノーラルビートとは、左右の耳にわずかに異なる周波数の音を聞かせ、脳内でその差分周波数(例:6Hz)を感じ取る現象。
実際には存在しない“うなり”を脳が合成して認識し、リラックスや集中など脳波状態に影響を与えるとされる。
科学的根拠は限定的だが、瞑想や睡眠導入のサウンドとして広く利用されている。
SuperCillider
SuperCillider で6Hz とピンクノイズ ローパス
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
( { var base = 220; // 左耳の周波数 var diff = 6; // 差周波(6Hz → θ波レンジ) var left = SinOsc.ar(base, 0, 0.1); var right = SinOsc.ar(base + diff, 0, 0.1); [left, right] }.play; ) ( { var src, left, right; src = PinkNoise.ar(0.1); src = LPF.ar(src, 800); // 800Hz以下だけ残す left = DelayN.ar(src, 0.002, 0.0008); right = src; [left, right] }.play; ) |
生成した音
SuperCillider は色々なことができそうで面白そう……
JavaScript
JSでも簡単にできてびっくり!!
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
<h3>Binaural Beat Generator</h3> <label>Base frequency: <input id="base" type="number" value="200"> Hz</label><br> <label>Beat frequency: <input id="beat" type="number" value="6"> Hz</label><br> <button id="start">Start</button> <button id="stop" disabled>Stop</button> <script> let ctx = new AudioContext(); let oscL, oscR, merger; const startBtn = document.getElementById('start'); const stopBtn = document.getElementById('stop'); startBtn.onclick = () => { const base = parseFloat(document.getElementById('base').value); const beat = parseFloat(document.getElementById('beat').value); oscL = ctx.createOscillator(); oscR = ctx.createOscillator(); merger = ctx.createChannelMerger(2); oscL.frequency.value = base; oscR.frequency.value = base + beat; const gainL = ctx.createGain(); const gainR = ctx.createGain(); gainL.gain.value = 0.2; gainR.gain.value = 0.2; oscL.connect(gainL).connect(merger, 0, 0); // Left oscR.connect(gainR).connect(merger, 0, 1); // Right merger.connect(ctx.destination); oscL.start(); oscR.start(); // スタート後はStartボタン無効・Stop有効 startBtn.disabled = true; stopBtn.disabled = false; }; stopBtn.onclick = () => { oscL?.stop(); oscR?.stop(); // 停止後はStartボタン再度有効 startBtn.disabled = false; stopBtn.disabled = true; }; </script> |
以前DAWでやってみようと思ったけどちょとめんどくて断念したけど
プログラムだと驚くほど簡単すぎた。
というかJSもすごいな。。
これで自由に好きなバイノーラルビートが聞き放題w