ケルパニ東方BGM抜き出し機 ver.0.2 公開!!

ケルパニ東方BGM抜き出し機 ver.0.2 公開!!

フェードアウトに対応しました!!
↓以前のはこちら。(使う人いないと思うのだが…いちおう…)

作るまでの苦労とかいろいろ

まず、曲目ファイルの文法を解析して変数にぶち込むところで配列変数なのにそうしないでやろうとして常に0が返ったり、データ入れるところ違えたり曲目ファイルないときにエラーでたり…ここだけでも苦労しました。
一番苦労したのは抜き出す部分のソースを曲目ファイル解析+操作画面のやつに移植するときです。別々に作ってしまったのですけど、変数名は一緒にしておいたものの、片方が配列でもう片方がそうじゃなかったりして、何回も直してようやく移植できました。
あとは抜き出したデータにヘッダ (?) くっつけて出力…の所で失敗したり…。まあこれはフォルダ開いていたせいだとわかったんですけどね。
神霊廟の霊界トランスにも対応したり…。
最期の難問がフェードアウトでした。だんだん音量を下げる、としたつもりなのにだんだんノイズが入るという謎な現象がおきまして…。それで気が付いたんですけど、WAVEのデータって、別のプログラミング言語用のサイトによると-32768~32767のデータを入れると書いてあったんですけど、HSPのwpoke使うと0~65535なんですよね…書き込まれるのが…。しかも、HSPでwpeekで2バイト読み込むと確かに0~65535だし…。
そこでいろいろためしてみたら、やっとわかりました。0~32767=0~32767で32768~65535=-32768~-1なんですね…。8ビットのだと128基準にしてやってますけど16ビットの場合はそれを逆にした感じになってるんですね。HSPと他の言語の使用とか違うしHSP以外知らないし調べてもマイナスで指定的なこと書いてあって出てこないし…。苦労しました。