2012-02-10 5 views
0

私が作成したjQueryオーディオプレーヤーに「音量自動化」を実装しようとしています。Jqueryオーディオプレーヤーのボリューム自動化。 2点間の音量位置を計算する

下の写真のように、私はドラッグ可能な点を持つ折れ線グラフを重ねて表示しています。

オーディオが再生されている間、イベントを毎秒発生させます(現在は、必要に応じて周波数を上げることがあります)。

私は戻っていたデータがオーディオ位置と「ポイント」の高さから求めボリューム(...ないラインそのものである。

これは、現在の傾きにもかかわらず、ボリュームのみをレンダリングされていることを意味し個々のポイントが歌に達したときに変更されます。(ポイントはライン上のシングル「ドット」であること。

enter image description here

が、私はそれをこのようにパフォーマンス上の理由を行うことを選択した。

方法この方法を使用すると、ポイント間のボリュームを計算するために計算を実行する必要があります。

数学は本当に私の強みではなく、私は学校の時代からほとんど覚えていません。

私は現在のような変数を格納しています: -

  • X0 =最終点位置
  • ×1 =次の点の位置
  • =最終ポイント
  • Y1 =次のポイント
  • 位置
  • Y0 =現在の位置(秒)

私は上記を希望します理にかなっている!

私が正しく覚えていれば、必要な方程式は2点の差を計算することと関係がありますので、上記の変数の内容を使って簡単な方程式が必要になると思います。

音量スケールは0〜100です。したがって、波形の上部の点は100の音量値を持ち、下部の点は0の音量値を持つ必要があります。間にある個々の点が必要な方程式によって計算されます。

誰もがこの問題についての光を放つことができますか、または私が解決策に向けて私を指し示すのを助けることができますそれは大いに感謝します!

答えて

1

したがって、2点の間の音量(y)を調べたいですか? (位置-x0)*(y1-y0)+ y0のように?

x0とx1が1単位離れていることを前提としていることに注意してください。

フル詳細:

は斜面を探す:傾き=(Y1-Y0)/(X1-X0)

は、我々は、X0及びX1の間である%を探す:距離=(位置 - X0)/(X1 - X0)

スロープ*距離は私たちに、これまでの変更与える:変更=スロープ*距離

最後の値に変更を加える、新しい価値を見つけるには:y座標=変更+ Y0を。

再代入するすべての変数は、私たちに与えます: Y0 +(((Y1 - Y0)/(X1 - X0))*((位置 - X0)/(X1 - X0を)))

の場合サンプルが1単位である場合は、(x1-x0)項を省略することができます。

+0

まさに私が必要としていたものです。素晴らしい簡単な答えはありがとう。 – gordyr

関連する問題