無駄にした 休日分を 取り戻せ2010年01月25日 19時29分22秒

週末に取り組んでいた同人関係のプログラム修正が完全な無駄となる惨事に見舞われながら、ショックに打ちのめされている余裕はないと自分に言い聞かせて、昨夜の内に次の手のヒントとなりそうな情報を拾ってきておいた。
再び同じミスを繰り返さないように検証も行っておいたし、仮定さえ間違っていなければ複数の MP3を同時再生する機構が実装される見込みだった。
成功する確率は 8割くらいと比較的に自信があるのだが、ここ数日で急激に悪くなっている運気の事を考えると、絶えることのない不安に襲われてしまった。

そんな不安を早々に拭い取ってしまうため、会社の昼休みを利用して予定通りに動いてくれるかどうかを確かめてしまうことにして、必要な資料を USBメモリへ押し込んできた。
サンプルコードをそのまま使ってしまえば30分少々でテストができる見込みだったのだけど、自宅と会社で開発環境の違いが予想以上に大きくて、テストの準備をするだけでも随分と時間が掛かってしまった。
予定外の作業が発生してしまって、昼休みを終わらせるべき時間を過ぎてしまったけれど、無事に複数の MP3を同時再生させる仕組みを実装することができた。

今回は既に実装が完了していて、複数の音を同時に再生できる DirectSoundで MP3を再生させる仕組みを考えることにした。
ここで問題となるのが DirectSoundがWaveデータしか再生できないというシンプル設計である事と MP3からWaveデータを抽出する機構を自作しようとすると、時間以外にも著作権が絡んでくるので 1人で頑張れるレベルではない。
しかし、運良くも DirectSoundとは違う機構で MP3を再生しようと試みているサイトを見つける事ができて、そこでは ACMというライブラリを使って MP3からWaveデータを抜き出していた。

俺としてはWaveデータさえ手に入れば、そこへ至る過程は実現可能なら何でも良かった。
というわけで、早速にサンプルソースを解析していくと、再生する直前まで殆どの部分を流用できることが判明して、拳を握って喜んでいた。
しかし、ここまで上手い話となると何か裏があるのではないかと心配してしまうのが、不運に取り憑かれてしまった男の悲しい性というもので、不安に駆られて会社で実験を始めてしまったわけだ。

何だかんだと言いながら成功してくれたので文句はないのだけど、こうも話が上手く流れると不安になってきてしまう。
何やら数行前にも同じ事を書いた気がするのだが、俺の人生で順調に事が運ぶなんて滅多にないのだから仕方がない。