//　下に説明文があります。スクロールして見て下さい
const f=880.0;//"f"が鳴らす周波数
const T=0.3;  //"T"が減衰時間 大きい程遅い
var d: record  xs,ys:Integer;  y,b,x,a:array of  Extended;end;
 fs,w,r:double;
procedure Main();
begin
  fs:=cmd('fs'); //"fs"サンプル周波数が計算には必要です
  w:=2*PI()*f/fs;
  r:=exp(-1.0/fs/T);
  IIRinit(d.xs,0,2,[0,-sin(w)*$7f00]);
  d.b[0]:=2*cos(w)*r;
  d.b[1]:=-r*r;
  while IIRout(d.xs,0) do;
end;
{
  このツールの目的:
  pascal言語で波形データを作成し実際に鳴らしてみながら学ぶことです
  学べる事は pascal入門 デジタル信号処理入門 等ですね

　ツールの使い方:
  最初に　[実行(F9)] ボタンを押すか キーボードのF9を押してみて下さい
  PCから ピンと音が鳴るはずです。
  右上の グラフ/MSG タブでメッセージとグラフを切り替えてください
  グラフ表示でマウスを動かすと波形が左右に動きます
  複数のデバイスの場合はマウスの右ボタンで出力先を変更出来ます
  2行目や3行目の数字を変更して[実行(F9)]してみて下さい
  
  下にある 次:の行をクリックすればそのページに移動します

}
//次:★2次IIRによるサイン波