問題タブ [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.
audio - オーディオ サンプルの配列のピッチをプログラムで上げる
オーディオ コンピューティングの世界の皆さん、こんにちは。
録音を表すサンプルの配列があります。44100Hzで5秒としましょう。ピッチを上げてこれを再生するにはどうすればよいですか? また、ピッチを動的に増減することは可能ですか? ピッチをゆっくり上げて速度を 2 倍にしてから下げるようにします。
言い換えれば、DJ によって「スクラッチ」されているかのように、録音して再生したいのです。
疑似コードは常に歓迎されます。これをCで書きます。
ありがとう、
編集1
私の意図をはっきりさせてください。再生を 44100Hz に保ちたいので、再生前にサンプルを操作する必要があります。これは、ピッチを上げたオーディオと通常の速度で実行されているオーディオをミックスしたいからでもあります。
別の言い方をすれば、どうにかして同じサンプル数でオーディオを縮小する必要があるのでしょうか? そうすれば再生すると速くなるのでは?
編集2
また、これは自分でやりたいと思っています。ライブラリは使用しないでください (コードを調べて興味深いものを見つけることができると思わない限り)。
編集3
2 つの引数 (サンプルの配列とピッチ係数) を取り、新しいオーディオの配列を返す C で書かれたサンプル コードは素晴らしいでしょう!
PS私は、すでに与えられた答えが有効ではないとは思わないからではなく、これについて報奨金を開始しました。このテーマについてもっと多くのフィードバックを得ることができれば良いと思いました。
報奨金の授与
正直なところ、非常に役立つと思った回答がかなり多かったので、いくつかの異なる回答に報奨金を分配できればと思います。いくつかのコードを渡してくれた Daniel と、そのような詳細な応答を提供してくれた AShelly と Hotpaw2 に特別な感謝の意を表します。
最終的には、datageist によって参照された別の SO の質問からの回答を使用したため、賞は彼に与えられます。
みんなありがとう!
android - ステアリングとしてのAndroidの方向性-ロール破損ピッチ?
制御/ステアリングに使用されるAndroidアプリケーションを含むプロジェクトに取り組んでいます。
- 速度:電話を前後に傾けると(ピッチ)、ガスの供給と破損をシミュレートします。
- 方向:電話を左右に傾ける(ロールする)と、左右へのステアリングをシミュレートします。
私はすでにうまくいくように見えるいくつかのコードを書きました。しかし、よく見てみると、いくつかの値が奇妙に機能していることがわかりました。
電話を前後に傾けて速度を処理すると、期待どおりの速度と方向の値が得られます。しかし、方向を処理するために電話を左右に傾けると、いくつかの値が破損しているように見えます。左右に傾けると、方向の値(ロール)だけでなく、速度の値(ピッチ)にも影響します。
追加情報:
- Android2.2のプログラミング
- デバイスはGoogleNexusOneです
- デバイスを縦向きに保持する
センサー値を読み取るために使用する最も関連性の高いコードは次のとおりです。
したがって、コードを実行すると、出力された値を確認します。デバイスを左右に傾けると、ピッチ値にも影響を与えるようです。どうして?そして、「ロール」するときに、どうすれば純粋なピッチ値を取得できますか?電話機を左/右に傾けても、ピッチ値に影響を与えたり破損させたりしないようにします。
iphone - ノイズの多いケプストラムの結果のクリーンアップ
私はiPhoneで簡単な周波数検出のセットアップに取り組んできました。FFTの結果を使用して周波数領域で解析することは、高調波が存在する場合、ある程度信頼性が低くなります。私は、ケプストラムの結果を使用して、どの基本周波数が再生されているかを判断するのに役立てたいと思っていました。
私はAudioToolboxフレームワークでAudioQueuesを使用しており、Accelerateフレームワークを使用してフーリエ変換を行います。
私のプロセスは、実際のパワーケプストラムに関するウィキペディアのケプストラムの記事に記載されているものとまったく同じです。具体的には、信号→FT→abs()→正方形→ログ→FT→abs()→正方形→パワーケプストラムです。
私が抱えている問題は、ケプストラムの結果が非常にノイズが多いことです。他の値と比較して天文学的であるため、最初と最後の20個の値を削除する必要があります。データを「クリーンアップ」した後でも、まだ膨大な量の変動があります。最初のグラフで予想したよりもはるかに多いです。周波数領域と周波数領域の視覚化については、下の写真を参照してください。
FFT
ケプストラム
そのグラフのように周波数領域で明確な勝者を見ると、周波数領域でも同様に明確な結果が得られると思います。私はA440をプレイしましたが、ビン82程度が最高のマグニチュードになると思います。グラフの3番目のピークは、十分に近いビン79を表しています。私が言ったように、最初の20かそこらのビンは、使用できないほどの大きさで天文学的なものであり、何かを見るためにデータセットからそれらを削除しなければなりませんでした。ケプストラムデータのもう1つの奇妙な品質は、偶数のビンが奇数のビンよりもはるかに高いように見えることです。77〜86の周波数ビンは次のとおりです。
私の質問は、周波数ドメインをクリーンアップして、ケプストラムドメインの結果がそれほどワイルドにならないようにする方法です。または、これらの結果がケプストラム分析で期待されるとおりである場合、これらの結果を解釈する方法をよりよく理解するのに役立ちます。使用しているコードの例を投稿できますが、ほとんどの場合vDSP呼び出しを使用しており、それがどれほど役立つかわかりません。
audio - 歌声からピッチを抽出する
歌声からピッチを抽出したいです。問題のトラックにはボイスが 1 つだけ含まれており、他のサウンドは含まれていません。
特定の時点でのラウドネスと知覚されるピッチ周波数を知りたいです。したがって、次のようなものです。
どうすればそのような出力を達成できますか? 特定の音価に当てはめたときの周波数のわずかな変化に興味があります。私は DSP の知識があり、C++ と Python でプログラミングできますが、できれば車輪の再発明は避けたいと思っています。
c - オーリオタッチ、周波数FFTから音符を取得
私は一種のギターチューナーを開発しています。
FFT と各周波数の FFt の値を提供する関数があります。
そこから音符を取得するにはどうすればよいですか?最高峰を選ぶ必要がありますか?
}
あなたが助けることができればどうもありがとう.
ジュリアン。
.net - ヨー/ピッチ/ロールの計算
ボートには 3 つの GPS アンテナがあります。それらは、互いに相対的に固定された xyz 位置にあります。
例えば:
- (0,0,0) の Ant1
- (0,5,0) の Ant2
- (5,2,0) の Ant3
ボートが移動するときのヨー、ピッチ、ロールを計算するプログラムを作成したいと考えています。毎秒、3 つのアンテナのそれぞれの xyz 位置を記録します。次の形式の ascii 形式になります。
例えば:
ant2 と ant3 についても同様です。
iphone - iPhone SDKでオーディオファイルまたは録音されたオーディオファイルのピッチを設定するには?
ファイルを録音しているか、ピッチを変更してオーディオ ファイルを再生したいオーディオ ファイルがあります。Objective-Cを使用しているiPhoneプログラムでピッチを設定するにはどうすればよいですか?
これから私を助けてください。
ありがとう、マダン・モハン。
iphone - 音の高さを変える(リアルタイムではない)
私はいつもこの質問を心に抱いていましたが、どこに尋ねても、役立つ答えや提案を得ることができませんでした。
どうすれば音を出すことができますか (リアルタイムではありません) ?
AVFoundation フレームワークを使用して、次のようにサウンドを再生しています。
OpenAL などの他のフレームワークを使用せずに、サウンドのピッチまたは周波数を設定するにはどうすればよいですか。ただし、OpenAl を学べる場所を知っていれば、大歓迎です :D
macos - オーディオキューの再生ピッチを変更することは可能ですか?
これは、AudioStreamBasicDescription のサンプル レートを上書きし、新しい出力キューを作成することにより、Mac OS X で可能になるはずです。
デフォルトのサンプル レートを取得して、新しいサンプル レートを書き出すことはできましたが (つまり、44100 を 48000 に置き換えます)、出力信号のピッチが変化しません。
どんな提案でも大歓迎です。
lua - あなたの角度を誰かの位置に回転させる方法 (ルア)?
完全に機能する setAngle(x,y,z) 関数があるとしましょう。今、私たち自身とニワトリの位置もあります。setAngle() を使用してニワトリを狙うにはどうすればよいでしょうか? これはfpsゲームで行われますか?位置を角度に変換する方法がわかりません... >.<