私はこのようなものを持っていたいと思います。 2つの異なる色は自然ではありません。オーディオデータをどのように視覚化できますか?
audacity on mac http://audacity.sourceforge.net/about/images/audacity-macosx.png
Iはすでに2つのINTアレイ、左右のチャンネルに1つずつステレオwavファイルからオーディオデータ(1サンプル/ミリ秒)を有します。私はいくつかの試みをしましたが、彼らはこのように近くでは見えません。私の試みは、スパイキーやコンパクトな塊になります。
良い提案はありますか?私はC#で働いていますが、psuedocodeは大丈夫です。
は、我々は関数DrawLine(色、X1、Y1、X2、Y2)のデータと
- があると32767と-32768の間
あなたが他の仮定をしているのであれば、答えに書き留めてください。
for(i = 0; i < L - 1; i++) {
// What magic goes here?
}
これは、the solution Han providedを適用したときの結果です。 (1つのチャンネルのみ)
alt text http://www.imagechicken.com/uploads/1245877759099921200.jpg
Audacityはオープンソースなので、コードを見ることができます。私は次のようなものを想定しています... func getHeight(v){return abs(v)* 32767/viewArea.height/2); samplesPerPixelColumn = samples.len/viewArea.width; i = 1〜viewArea.width {avgV = Avg(samples [i-i + samplesPerPixelColumn]); colHeight = getHeight(avgV);もし、avgV> = 0の場合、DrawLine(黒、i、viewArea.height/2、i、(viewArea.height/2)+ colHeight)else DrawLine(黒、i、viewArea.height/2、i、(viewArea.height/2 ) - colHeight);おそらくそこでは丸め/レンジ処理をする必要があるでしょうが、それは要点でなければなりません。 – steamer25
あなたはそれを答えに入れませんか? – Nifle
私はすぐに役立つかもしれないが、その一部がオフになっている場合は下降しないようなものをあなたに与えたいと思っていました。もっと考えてみましょう:縦線の代わりに、前のグラフポイントと次のグラフポイントの間に対角線を描きます。また、十分にズームインすると、1サンプルあたり複数のピクセルが表示されます。 – steamer25