2016-09-20 8 views
0

私は現在、Binaural Beatsを使用するアプリケーションを作成しています/各耳に異なる周波数を再生しています。ここで私が働いているものです:値と設定状態の範囲を調べる

var frequency = { 
    "Gamma": [30, 50], 
    "Beta": [14, 30], 
    "Alpha": [8, 14], 
    "Theta": [4, 8], 
    "Delta": [0.1, 4] 
}; 

バイノーラルが作業をビート方法は、左耳と右耳で再生周波数との差は、配列内の値と同等でなければならないことです。例えば、ガンマ波バイノーラルビートは、オブジェクト/アレイに示されるように、周波数の差が30〜50である。

現在、スライダーとテキストボックスを使用して再生頻度を設定しています。どのように私はそれがclunkyされていない周波数間の値をチェックすることによって、状態(Gamma、Beta、Alphaなど)を動的に設定することができますか?私は_inRangeをLodashで試してみましたが、まだそれを理解していないようです。

お手数をおかけしますようお願い申し上げます。

+0

は、あなたが質問に追加することができます - どのようなものです期待される結果は?すべての選択肢が範囲内にあるかどうかを知りたいですか?あなたがいない人を見つけたいですか?エントリデータはどのように見えますか?あなたはこれまでに試したことを示すことができますか? –

+0

確かに、ここに私のGistがあります:https://gist.github.com/JelaniThompson/cdde9207a963a5d6db0046d0643532b3 –

+0

私がVueを使っているところでは、値の間の範囲に基づいてタイトルと説明を動的に更新したいのです:) –

答えて

0

私が正しくあなたのロジックを理解していれば、あなたは左と右の範囲の一つの内側に落ちるの違いならば見つける必要があります。

var frequency = { 
 
    "Gamma": [30, 50], 
 
    "Beta": [14, 30], 
 
    "Alpha": [8, 14], 
 
    "Theta": [4, 8], 
 
    "Delta": [0.1, 4] 
 
}; 
 

 
var freqs = ['Delta', 'Theta', 'Alpha', 'Beta', 'Gamma']; // array of frequencies from the lowset to the highest range 
 

 
function findFrequency(left, right) { 
 
    return _.find(freqs, function(value) { // find the frequnecy 
 
    var range = frequency[value]; // take the range from the frequency array 
 
    var diff = Math.abs(left - right); // get the diff btween right to left 
 
    return _.inRange(diff, range[0], range[1]); // find if the diff is in the range 
 
    }); 
 
} 
 

 
var result = findFrequency(3, 32); 
 

 
console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.16.0/lodash.min.js"></script>

関連する問題