問題タブ [pitch]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
12550 参照

signal-processing - FFT ピッチ検出 - メロディ抽出

フレームのFFTから得られたパワースペクトルから基本周波数を抽出するピッチ検出プログラムを作成しています。これは私がこれまでに持っているものです:

  • 入力オーディオ信号をフレームに分割します。
  • フレームにハミング ウィンドウを掛ける
  • フレームの FFT と大きさを計算します sqrt(real^2 + img^2)
  • 高調波積スペクトルから基本周波数 (ピーク) を見つける
  • ピークの周波数 (ビン周波数) をメモに変換します (例: ~440 Hz は A4 です)。

これで、プログラムは各フレームに対して 0 から 87 までの値を持つ整数を生成します。ここで見つけた式に従って、各整数はピアノの音符に対応します。私は現在、計算された音符に基づいて音を合成することにより、入力信号のメロディーを模倣しようとしています。基本周波数に対応する大き​​さと周波数を持つ正弦波を単純に生成しようとしましたが、結果は元の音のようには聞こえませんでした (ほとんどランダムなビープ音のように聞こえました)。

私は音楽をよく理解していないので、私が持っているものに基づいて、基本周波数から取得した情報に基づいて、入力 (楽器、声、楽器 + 声) に似たメロディーの音を生成できますか? そうでない場合は、現在持っているコードを使用して他にどのようなアイデアを試すことができますか?

ありがとう!

0 投票する
1 に答える
668 参照

flash - Flash で ByteArray としてキャプチャされたオーディオ録音の平均周波数を計算するにはどうすればよいですか?

今のところ単純にしていますが、サンプルデータでいっぱいの ByteArray があると仮定すると、録音全体から平均周波数 (したがってピッチ) を計算することは可能ですか?

これは正しい線に沿っていますか?p = 69 + 12 x log2(f/440hz) ...

無知ですみません

0 投票する
2 に答える
2924 参照

iphone - CoreAudio のテンポ変更 (iOS)

私はオーディオプログラミングに非常に慣れていませんが、これが可能でなければならないことを知っています。(これは iOS/iPhone 関連の質問です)。

読み込まれたオーディオ ファイルのピッチを変更せずにテンポを変更して再生するにはどうすればよいですか?

CoreAudio フレームワークを詳しく調べる必要があると思いますが、どこから始めればよいかわかりません。

どのクラスを見る必要があるか、または関連する一般的なプロセスを誰かが教えてくれれば、それは私が始めるのに役立ち、本当に感謝しています!

乾杯!

0 投票する
3 に答える
2232 参照

iphone - CMAttitudeのロールとピッチの計算

質問自体は単純です。CMDeviceMotionモーションを使用する場合、ロールとピッチを含むタイプCMAttitudeのattitudeという名前のオブジェクトが含まれます。ロールとピッチは、Y軸とX軸を中心としたオブジェクトの回転を表します。iPhoneがテーブルの上にあり、ディスプレイが上を向いている場合、ロールとピッチは両方とも0です。iPhoneをY軸またはX軸を中心に回転させると、これらの値が更新されます。

これらの値がどのように計算されるか知りたいのですが、デバイスの現在の重力ベクトルからロールとピッチを計算する方法があります。ピッチは次のように見えます:pitch = -asin(motion.gravity.y)しかし、ロールの計算方法がわかりません。

ご協力いただきありがとうございます

0 投票する
1 に答える
1733 参照

matlab - MATLAB でのリアルタイム音声変換

MATLAB を使用して (ほぼ) リアルタイムで音声 (ピッチ/フォルマント シフト) を変換することは可能ですか? どうすればそれができますか?

そうでない場合、何を使用すればよいですか?

マイクから入力を取得し、音波を視覚化し、フィルターを追加し、オシロスコープをもう一度見て、変更されたサウンドを再生する必要があります。

リアルタイム ビジュアライゼーション (スペクトログラム) は、Hideki Kawahara による SparkNGパッケージで作成できます。

0 投票する
1 に答える
760 参照

ios - IOS - iPad とピッチロール層の間の角度

IOS でコアモーションを使用して、ipad とピッチロールレイヤーの間の角度を計算しましたが、ヨー、ピッチ、およびロール値から ipad-layer とピッチロールレイヤーの間の角度を計算する方法がわかりませんでした。下の画像では、α-角度を計算したいと思います。私を助けてください!どうも

この下の計算は正しいですか?

α = 90 - atan2(sqrt(pow(acceleration.x,2)+pow(acceleration.y,2)),acceleration.z)

http://imageshack.us/photo/my-images/443/bild1nwcmm.png/

PS: 赤い線は私の ipad-layer です

0 投票する
1 に答える
4098 参照

ios - iOSで地理的な北に対するピッチ、ロール、ヨーを取得しますか?

デバイスからCMAttitudeを取得できることがわかり、そこから必要な 3 つの値 (ピッチ、ロール、ヨー) を読み取ることができます。私が理解しているように、この CMAttitude オブジェクトは、コンパス、ジャイロ、加速度計から正しい結果を一緒に計算するセンサー フュージョン マネージャーである CoreMotion によって管理されます (Android では SensorManager クラス)。

だから私の質問は:

  1. これらの値 (ピッチ、ロール、ヨー) は、磁北と重力に相対的ですか?

  2. 上記が正しい場合、地理的な北に関連する結果を得るにはどうすれば修正できますか?

  3. デバイス (iPhone 3GS など) にジャイロスコープがない場合、マネージャーに伝える必要がありますか、それともセンサーに基づいてデバイスの姿勢 ( acc + gyro + compas OR acc + コンパス)

0 投票する
2 に答える
485 参照

ios - PGMidi ピッチ変更 sendBytes の例

2日目にMIDI信号を送ろうとしています。私は次のコードを使用しています:

msb と lsb の計算方法がわかりません。私は、pitchValue << 8 を試してみました。-8192 と +8191 を取得したい。

質問が簡単でしたら申し訳ありません。

0 投票する
4 に答える
12916 参照

android - Android のピッチ アンド ロールの問題

私は Android 用の傾斜アプリに取り組んでいます。ポートレート & ランドスケープ モードで問題が発生しています。ピッチが 90 度 (電話機がオンになっている) で、ロールに物理的な変化がない場合、ロールの値が狂ってしまう少し前でも。この問題の解決策を見つけることができませんでした。誰かが私を正しい方向に向けることができれば、それはありがたいです。

これは短いコード ダンプです。加速度計のエラーではないことがわかります。

0 投票する
2 に答える
876 参照

cuda - CUDA 2Dアレイ-割り当て前にピッチを考慮しますか?

次のように動作するワークフローがあります。

  1. 初期値のロード
  2. 中間結果へのプロセス値A
  3. プロセスAから中間結果B
  4. プロセスBから中間結果C
  5. プロセスCおよびBから中間結果DおよびE
  6. 部分Dを合計して最終結果F

すべての中間結果の自然な構造は、cudaMallocPitch()を使用して割り当てている2D配列の構造です。

残念ながら、私のアルゴリズムでは、D、E、C、およびBを一度にメモリに保持する必要があり、D&Eは、個別に、Bよりもメモリ内で4倍大きくなります。処理に別の制限があるため(グラフ構造を反復処理)メモリ内)、AまたはBの次元は、DとEの最大次元によって制限されます。これらは、初期値のメモリ使用量+Bのメモリ消費量+Cのメモリ消費量によって決定されます。この依存関係は、(非常に大きな問題セットに対応するために)ホストからデバイスメモリとの間で中間結果のセクションを「ページング」しているためです。ステップ1〜3が全体で完了するまで、ステップ4を開始できません。問題セット。

問題セット全体に対してBを取得したら、Aを削除できます。

私は現在、次の機能を使用してD+Eの最大サイズを決定しています。

これは「機能」しますが、DまたはEのサイズ(サイズとメモリ使用量は同じ)を25%過大評価し、予想されるBのサイズを2倍にしているためです。それでも、メモリが不足しているエッジケースに遭遇します。メモリが不足しているため、割り当ては失敗します。私のカーネルはグローバルメモリとの間で複数の読み取りと書き込みを行うため、カード上のメモリをより効率的に使用し、アライメントを維持したいと考えています。

いいえ、共有メモリを使用することはできません。複数のブロックにまたがって複数のカーネルを使用しており、ブロック内のスレッドはまったく相互作用しないためです。

cudaMallocPitch()は、正常に割り当てられたメモリの使用済みピッチのみを返すことがわかりました。ドライバーに2Dメモリ割り当て要求を渡して、割り当てられるピッチを要求する方法はありますか?

試行/エラー最適化ルーチンを作成しますが、A、B、D、およびE間のディメンションのリンクされた依存関係(CIはピッチ線形に割り当てられていないため、事前に計算します)により、これはお粗末なソリューションになり、必要になります問題セットごとに再計算されます。

任意の量のデバイスメモリに収まる中間データセットの適切なサイズを決定できる、より良いアプローチはありますか?

編集:

中間Aのメモリが再利用されています。私の境界計算では、C + D + E +B>>初期+A+ B(AとBが1バイトの文字であるという事実により当てはまります)と仮定しています。同じ寸法ですが、C、D、Eはintです)など、B + C + D+Eに十分なスペースがあることを確認するだけで済みます。

これをテストするためにComputeCapability2.xカードのみを使用しています(Quadro 2000、Tesla C2075、GTX460)。