Comment detail
Tiny MML (Nested Flatten)言語間違えてる 誤:awk 正:scheme どうやって直したらいいの?
こういう、高レベル言語でバイナリをいじくるコード好きです。 write-f80は組込みで持ってても良いように思い始めました。 write-u32-idstrはdisplayじゃだめなのかな。 write-block-s16-bigendianとwrite-block-s8は (use gauche.sequence)してuvectorに直接for-eachを適用すると シンプルになるかもしれません。 make-noteでs16vector-set!とs8vector-set!を切り替えてるところですが、 (set! (ref vec i) ...) のようにすればジェネリックに書けます。速度は遅くなりますが。 さらに、(map-to <s8vector> (lambda (i) (* volume-maximum ...)) (iota sample-count)) のようにするとdoループも不要です。 make-sound-tableの(let ((c (first notes)) (d (second notes)) ...) のところは util.matchを使って (let-match1 (c d e f g a b) notes ...) のようにも書けます。
shiroさん直々にご指導ありがとうございます。
write-f80 は今回は1回(ヘッダ部分にサンプリング周波数を書き込む為だけに)しか呼び出していませんが、組み込みで用意されていたら嬉しい場面ももしかしたらあるかもしれません。
ライブラリモジュールをもっと活用できるよう、今後使い込んで行きたいと思います。





naoya_t
#1950()
[
Scheme
]
Rating1/1=1.00
Rating1/1=1.00-0+
2 replies [ reply ]