2017-07-11 24 views
1

"オルゴール"プログラムを作成する。今、私のコードは、効果的に呼び出します。正確な非同期タイミング

note.play() 
time.sleep(0.08) 
note.play() 
time.sleep(0.16) 
note.play() 
time.sleep(0.12) 

しかし、タイミングが音楽を演奏するたびに異なる音作り、少しオフになっています。私は精度が欲しい。

これに最も接近するには? timedeltasとのPygameループ?非同期はものを待っていますか?

+0

メモ:pygameはオーディオファイルを直接再生するだけです。私は他のオーディオライブラリの推奨に感謝します。 – ddg

+0

私は、正確に指定された時間に再生を可能にするライブラリに取り組んでいます:https://github.com/mgeier/python-rtmixer/。それはまだ進行中の非常に仕事ですが、あなたが望むなら、それを試してみることができます! – Matthias

答えて

2

コンピュータの時計を信頼できません。だから、あなたができることは、沈黙を望む場所で録音された沈黙を演奏することです。

はこれをチェックしてください:pydub

をあなたが簡単にオーディオトラックを連結することができます。したがって、ファイルに0.01秒の無音が記録されている場合は、最初の音符と無音トラックを8回連結して、無音の音符+0.08秒を取得し、次に別の音符に連結するなどのことができます。

+0

非常に良い、ありがとう。私は、pydubでビットをつなぎ合わせ、ファイルを保存してから、pygameでファイルを再生します。ちょっと面倒ですが、うまくいくはずです。 – ddg

+0

はい、それは私が考えていたものです。私がより良い方法を見つけたら、私はあなたに言います! – lukess

関連する問題