■
寒いわ。
lisve
lisve(LISp waVE のつもり…リスヴって発音するとか、そんな感じで)
ん。思ってたくらいの面白いのになったような。僕にしては珍しい…
2000 ; 何秒間やるか 1024 ; 一秒間に何周するか 16 ; format 22050 ; PCM の freq (sin t) ; sin波
これで周波数1kのsin波が出る。
tが0〜2πで回ってて、-1〜1の値を返してやるとwaveになる。
2000 ; 何秒間やるか 1024 ; 一秒間に何周するか 16 ; format 22050 ; PCM の freq (if (> t pi) 0 1)
これで方形波
んで、複数行に分けると周波数違い。
2000 ; 何秒間やるか 1024 ; 一秒間に何周するか 16 ; format 22050 ; PCM の freq (sin t) ; 1ω (sin t) ; 2ω (sin t) ; 3ω
setfreq関数で以降の周波数を変える。
2000 ; 何秒間やるか 0.5 ; 一秒間に何周するか 16 ; format 22050 ; PCM の freq (/ 1 t) (setfreq 1024) (sin t)
こんな感じ。
ただ、問題があって、僕は「方形波」って言われてもどんな音かわからないので、あってるかどうかはわからない。
一日でどれだけ書けるか、に挑戦してたりするので、ソースは結構ひどい。boehm GC使ったら大丈夫。とか思ってたら、GLibのHashTableとうまくくっつかなくて、GC使わなくしたので、リークしまくり。小数の精度は捨てまくり。
小数の精度はもーちょっとなんとかしたほうがいいかな…あと、wavに吐けるようにしたい。SDLとGLibがいります。