Q and A, 2023-01-20

C言語から直接音を鳴らすには?

sound device を制御するライブラリ(Cの関数の集まり)を呼び出します. Debian linux (MathLibre) や WSL/Ubuntu には SDL libao などの open source のオーディオライブラリを apt コマンドでインストールすることが できます. これらは homebrew (Mac) でもインストールできます.

SDL project のページ , ゲームプログラミングのこのページに SDL の tutorial あり, libao project のページ .
Windows専用のアプリ開発環境である Visual C++ や MacOS, iOS専用のアプリ開発環境である Xcode にはそれぞれ公式のサウンド制御のライブラリが付属しています.

なお講義の目的のひとつは, ファイルは 1 byte データの数列である, をいろんな角度から理解する ことですので内部構造を隠蔽してしまうこれらのライブラリの利用はやりません.

#define SIZE (44200*4*10) の意味

コンパイル前に SIZE が (44200*4*10) に置き換わる. マクロ置換という機能. asir でも使える.

配列を引数にすると中身がかわる?

int や double を引数にしても中身はかわりませんが, 配列の中身は呼び出した関数で変更できる. asir も newvect や newmat で生成した, ベクトルや行列は同じ挙動.
プログラム例は講義で.

変数の初期化

講義でくわしく.

%lf

講義でくわしく.

大域変数

講義でくわしく.

glib_draw() に描画命令を書かないといけない理由

講義でもう一度.