這是一個跟進我已經在這裏問How can I play a single tone or custom wave with Delphi?Delphi和離散信號:獲得固定體積的信號與固定沉默
爲了使長話短說另外一個問題,我用MMSYSTEM的waveOutWrite()來創建一個離散信號,但它似乎沒有按照我的預期工作,或者我沒有得到它。
我寫了兩個離散信號到緩衝器具有固定的空間,這樣Samples[i] := round(vol*sin(2*Pi*AFreq*t));
當容量是1000用於將信號而「空間」是一些0體積信號。
這是什麼樣子,而我期望的東西,希望像| ... |
我得到的信號的東西都錯了嗎?還是說我沒有正確使用WinAPI?我希望每個固定信號看起來相同的圖形
PS:我使用Windows'立體聲混音,所以沒有干擾 PPS:下面是轉換二進制到信號
function CreateBinaryTone(BinaryString: String): TWaveformSamples;
var
I: Integer;
omega,
dt: double;
vol: double;
begin
omega := 2*Pi*AFreq;
dt := 1/Format.nSamplesPerSec;
SetLength(Samples, Length(BinaryString));
for I := 1 to Length(BinaryString) do
begin
{ Discrete Time }
Vol := StrToInt(BinaryString[I]) * 1000;
Samples[I] := vol * sin(omega * dt * I);
end;
Result := Samples;
end;
請出示你的代碼中,'罪裏面的值()'表達應與'i'變化得到具有相同幅度的純頻率。 –
將問題添加到問題中,謝謝。 – MitziMeow
我剛剛測試了[Andreas示例](http://stackoverflow.com/questions/7742377/how-can-i-generate-continuous-tones-of-varying-frequencies),你在上一個問題中提到過。它工作正常,你有沒有測試過他的代碼? –