2016-05-27 10 views
0

私は44100のサンプルレートを使用して、ビートの1/96を表すバッファのチャンクを出力する(パルスと呼ぶことができます)。このアプリケーションの丸めを識別するのに手伝ってもらえますか?

定数120 BPMでは、毎秒2ビート1拍当たり22050サンプル、したがってパルス当たり229,6875サンプル。

0 
230 
459 
689 
919 
1148 
1378 
1608 
1838 
2067 
2297 
2527 
2756 
2986 
3216 
3445 
3675 
3905 
4134 
4364 
4594 
4823 
5053 
5283 
5512 
5742 
5972 
6202 
6431 

お知らせ二つのもの:これらは私がアプリケーションから得た最初の値です

  1. それはRound half to Evenを使用して値を丸め。
  2. バッファ間の距離は、丸めによって229または230になる可能性があります。

代わりに190 BPMで、1パルス当たり145,0657895サンプルあります。しても

0 
145 
290 
435 
580 
725 
870 
1015 
1161 
1306 
1451 
1596 
1741 
1886 
2031 
2176 
2321 
2466 
2611 
2756 
2901 
3046 
3191 
3337 
3482 
3627 
3772 
3917 
4062 

前と同じように、ラウンドの半分、との距離が今ここまでがんばって145または146

まあ、何もすることはできません。最初の値は、私が得ました。今すぐ!私は120 BPMでアプリケーションを起動し、25パルスの後、私は190 BPMに切り替えると、私はスイッチの後に奇妙な距離だ:

0 
230  // distance 230 
459  // distance 229 
689  // distance 230 
919  // distance 230 
1148 // distance 229 
1378 // distance 230 
1608 // distance 230 
1838 // distance 230 
2067 // distance 229 
2297 // distance 230 
2527 // distance 230 
2756 // distance 229 
2986 // distance 230 
3216 // distance 230 
3445 // distance 229 
3675 // distance 230 
3905 // distance 230 
4134 // distance 229 
4364 // distance 230 
4594 // distance 230 
4823 // distance 229 
5053 // distance 230 
5283 // distance 230 
5512 // distance 229 
5742 // distance 230 - here I switch 
5887 // distance 145 
6032 // distance 145 
6177 // distance 145 
6322 // distance 145 
6468 // distance 146 

をなぜその最後の146個の値(6468)?

あなたの意見では、「what」の理由は、prevバッファとの距離が146であり、145ではないからです。各反復で次の/前のラウンドに試行しましたが、そこに値として145を得るのは正しいようです。代わりにその146.

私のすべてのカウンタを混乱させる。すべての手がかりは?

答えて

2
229.6875 * 25 = 5742.1875 
145.0657895 * 5 = 725.3289475 
5742.1875 + 725.3289475 = 6467.5164475 rounding to 6468 

基礎となる計算はあなたが私の一日にする(単にフロート)正確な数

+0

に作られています注意!ありがとう! – markzzz

関連する問題