これを実行すると、ピッチ間でクリック音が発生します。私はクリック音があまりにも気にしません - それは楽しいリズムです。それは...PyAudioをオシレーターとしてクリック音を削除/コントロールする
- 私はそれが欲しくないときにこのクリック音を取り除くことができるようにしたいと思います。
- いっそのこと、いくつかの方法で、クリック音 制御できることがいいだろう - ボリュームなど
私はこのスレッドを見てきましたが、それだけにはそれを適用する方法を考え出したていません私の問題: How to remove pops from concatented sound data in PyAudio
アイデア?御時間ありがとうございます!
import numpy
import pyaudio
import math
import random
def sine(frequency, length, rate):
length = int(length * rate)
factor = float(frequency) * (math.pi * 2)/rate
waveform = numpy.sin(numpy.arange(length) * factor)
return waveform
def play_tone(stream, frequency, length, rate=44100):
chunks = []
chunks.append(sine(frequency, length, rate))
chunk = numpy.concatenate(chunks) * .25
stream.write(chunk.astype(numpy.float32).tostring())
def bassline():
frequency = 300
for i in range(1000000):
play_tone(stream, frequency, .15)
change = random.choice([-75, -75, -10, 10, 2, 3, 100, -125])
print (frequency)
if frequency < 0:
frequency = random.choice([100, 200, 250, 300])
else:
frequency = frequency + change
if __name__ == '__main__':
p = pyaudio.PyAudio()
stream = p.open(format=pyaudio.paFloat32,
channels=1, rate=44100, output=4)
bassline()
/EDIT
私はトーンをプロットしましたし、不連続は各トーンの開始と終了位相の関係にあるように見えます。
これを解決するためにどのように任意のアイデア?
生成された波形をプロットする必要があります。このようにして、クリックの原因となる不連続性を確認できます。 – Matthias
問題の原因を知り、PyAudioやPortAudioと関係がないことを知ったので、この質問を放棄して、実際の問題を説明する新しい質問をする必要があります。サンプルコードを関連する部分に減らそうとする必要があります。また、実際にはDSPに関する質問であるため、http://dsp.stackexchange.com/で質問することを検討する必要があります。 – Matthias