コンピュータのキーボードでサンプル音を再生するプログラムを作成したいと思います。サウンドデバイスモジュールを使用してコマンドラインからサウンドサンプルを再生するときに待ち時間が長すぎる
私のプログラム:
import numpy as np
import sounddevice as sd
import soundfile as sf
import msvcrt
sd.default.latency = 'low'
samplesarray = []
def load_samples(num):
filename='sample'+str(num)+'.wav'
data, fs = sf.read(filename, dtype='float32')
sd.default.samplerate = fs
samplesarray.append(data)
return
numberofsamples=3
for i in range(numberofsamples):
load_samples(i+1)
def play_session():
while 0==0:
key = int(msvcrt.getch())
sd.play(samplesarray[key-1])
return
play_session()
プログラムフォルダは、インスタンスキックドラムやスネアのために、sample1.wav、sample2.wav、などという名前の「ワンショット」の短いサンプルの数が含まれています。この例では簡単のために3つだけがロードされています。 ターミナルで私の現在のプログラムを起動し、自分の鍵で「マップされた」サンプルを再生することができます。 唯一の問題はレイテンシです。巨大ではありませんが、それは間違いありません。
サンプルをライブ再生するには、理想的にはレイテンシを認識できないようにする必要があります(数十ミリ秒のオーダー)。
これをどのように達成できますか?
おそらく*ミリ秒*秒ですか?おかげさまで – Matthias