History
last updated 2002.07.21
このページの趣旨
今まで作ってきたソフトについてつれづれなるままに記してみたいと思います。
1)MZ-2000(1982〜1988年頃)/ソース紛失
最初に買ったパソコン。高校卒業まで使っていました(さすがに最後は出番も少なかったが・・・)
・BASICで円周率計算プログラム
OH!MZ に掲載されたアルゴリズムを用い、1000桁くらい計算できました。高校の文化祭に出しました。
・6重和音再生プログラムを使ったゲームミュージック(主にナムコもの)の打ち込み(非公開)
ベーマガ別冊に1音しか載っていない音源で6重和音を鳴らすプログラム(もちろんマシン後)が載っていたので、ゲームミュージックを打ち込んで遊んでいました。ドルアーガの剣を抜く音が一番のお気に入りでした。
2)MSX(1987〜1988年頃)/ソース紛失
学校の部活のパソコンです。部で一台しかなかったので、部員で交互に使っていました。
グラ2が動いていた時間が一番長かったのは秘密(笑)
・BASICでドラゴンクエスト3エンディング曲の打ち込み(非公開)
貧弱な MSX の MML でリバーブやソフトエンベロープにこだわって作りました。ベーマガ別冊に投稿しましたが掲載されませんでした。
3)Pascal(1989〜1990年頃)/ソース紛失
大学の情報処理の時間に Pascal を学んだので空き時間にいろいろ作っていました。現在メインで使用している Delphi の基礎になっています。
・タッチタイピング練習プログラム(非公開)
タッチタイピングの練習用に、英数字をランダムで選択して画面上にその文字とどの指を使うか(「左手の小指」とか)を表示し、押したキーが合っていれば次の文字に進むプログラムを作りました。これまでは変則タッチだったのですが1週間ほど毎日練習して矯正しました。
・3D迷路プログラム(非公開)
当時の3D迷路プログラムは90°単位でしか回転できなかったんだけど、細かく回転できる迷路プログラムを作成しました。が、壁との当たり判定がうまくいかなくて挫折。
4)PC-98x1 MSDOS/C言語で作ったもの(1993〜1996年頃)
1990年にパソコン(EPSON PC-386V)を購入。その後C言語を勉強しました。パソコン通信を始めて FMP や他のフリーソフトに触れ、自分でも作るようになりました。
・PM(Piano Master)/1993年
BBSで最初に公開したプログラム。パソコンのキーを鍵盤に見立て、弾いた音を MML で出力できるソフト。技術不足のため SSG しか使えなかったけど音取りに重宝しました。
・PVIF(PVI Filer)/1993年
FD等のファイラーと連携して PVI のリンクファイル、FMR の定義ファイルの作成を支援するソフト。初期設定が大変だったけど自分では重宝していました。
・TPIMAKE/1993年
FMP の MML から FM 音源のパラメーターを抜き出し、TPI ファイルを作成するログカッターのようなもの。FM 音源のパラメーター勉強用に作成した小物プログラムでした。
・FMP 音楽ディスク Vol.1/1994年
FMP メンバーで作った音楽ディスク1作目のメインプログラムを担当しました。大きいプログラムを作ったことがなかった中、他の音楽ディスクも参考にしながら手探り状態での作成でした。今見ると意外に細かいところまで作りこんでいるなぁと思います。が、グラフィックバリバリの FMP 陣営では見劣りしてしまうのも事実・・・
メインプログラム以外は FMP メンバーが作ってくれました(オープニング:DDTOMさん、エンディング:ぐぅさん、画像展開プログラム:HypSさん)
せんたろさんが書いてくれた背景が楽しいです。エンディングは本当にきれいで今でも時々起動しています。
・LHF改良版 /1996年
CHOさん作の LZH アーカイブユーティリティー「LHF」のファイル情報部分を EMS メモリに取ることでメインメモリの使用量を削減したものです。
ファイラーからの子プロセス起動時に重宝したのですが、作ってから数ヵ月後に Windows95 に乗り換えてしまいました。もう少し早く作っておけばさらに重宝したかもしれません。
5)PC-98x1 MSDOS/アセンブラで作ったもの(1993〜1996年頃)
当時はCのソフトはアセンブラより技術水準が低いと見られていたし、FMP関係のプログラマーはアセンブラで作るのが当然!のような雰囲気があったので、少しでもそのレベルに近づきたいと思っていました。
C言語と比べると面倒なんだけど常駐物が作れるのでいろいろと遊べました。
・PMASK/1994年
FM音源のパンレジスタを操作して「どんなFM音源ドライバでも」パートマスクをかけたりテンポを変えられる常駐ソフト。UME-3 さんの作ったソフトを改良してテンポ変更機能をつけました。一部で音取りに役に立ったようです。
・PPZ8Y/1995年(非公開)
PPZ8 の PCM 合成時に一時補完をするように改造したバージョン。PPZ8X, PPZ8Y, PPZ8Z とアルゴリズムが微妙に違う3つのバージョンを作っていたのですが、PPZ8Y が動くようになったので他のはお蔵入りになりました。
アセンブラのソフトの中で一番大変でしたが効果には満足しています。さすがに重くて、まともに動かすには 486DX か Pentium が必要でした。
・DKS2FMP/1995年
同級生2の音源ドライバ PLAY5 の代わりに FMP を使うためのプログラム。PLAY5 のデキがいまいちで曲の切り替え時に雑音が入るのが気に入らなかった&ネタ的に面白そうだったので作りました。
同級生2本体には PLAY5 が常駐しているように見せかけ、本体から呼ばれると FMP のファンクションコールに変換して FMP を呼び出すだけなんだけど評判は良かったです。
こっそり /V オプション(OVI で鳴らすオプション)を付けて TAN-Y さんに全曲データを作ってもらいました。
・DKS1FMP/1996年
要望があったので同級生1も・・・プログラム的には DKS2FMP と同じです。
・BDMUSIC /1996年(非公開)
Burning Dragon Plus の音源ドライバを改造して常駐演奏できるようにしたものです。就職後に実習先で解析をしていました(苦笑)
・MAKO.MDM /1997年
ALICE SOFT の音源ドライバ「MAKO」用の曲データを TAN-Y さんのミュージックドライバー用セレクター/ディスプレイヤー MSDP で演奏させるためのモジュール。PC-98x1 MS-DOS で最後の自作ソフトになりました。
6)Windows/Borland Delphi で作ったもの
現在のメインの開発環境です。Windows の GUI アプリを作るにはこれ以上の環境はないです。
・MLCut /1997年
マルチBBS対応ログカッター。Windows で初めて作ったソフトです。とにかくソフトを作らないと新しい環境に慣れないと思って手探りで作ったものです。DOSの main() からの流れとイベントドリブンの違いに慣れるのに苦労しました。
折角なので汎用性を持たせた作りにしようと思い、ログカットルーチンを追加すればいろいろな BBS に対応できるものにしました(当時はまだオブジェクト指向はぜんぜんわからなくて構造化プログラミングの手法ですが)。
・XAPlay/1998年(非公開)
PlayStation 他の曲データ「XA」を演奏するためのソフト。XA を解析して自動的に曲単位に分割したり codec を使用して mp3 形式等で保存できたり、スペアナがついていたりと当時としては高機能だったんだけど、他の方のソースを組み込んでいたのでお蔵入りになってしまいました。
・DelUMPlayer/1998年
UltraMarine のプレイヤ。連続演奏できるプレイヤがなかったので XAPlay のソースや GUI を利用して手っ取り早く仕上げました。
・DSP_PS/1999年
WinAMP 用のピッチシフトプラグイン。アルゴリズムそのものはCマガジンに掲載されていたんだけど、バッファリング形式に変換するのとC言語のプラグインのサンプルを Delphi に持ってくるのが大変でした。
・PMDPlay(FMPMDに改名)/1999年
WinFMP / PMDWin のプレイヤ(GUI)。最初は PMDWin.dll の動作確認用のプレイヤだったんだけど、拡張していくうちにどんどんウィンドウが増えていきました。
発表当時はすごい反響で抱えきれないほど要望がありました。バグ報告が一番多かったんですが、新機能追加の要望では実現方法がわからなくてインターネットで資料を探し回ったり試行錯誤したものも多かったです。
このソフトでやっと FMP や PMD の関係者に恩返しができた気がします。
・Bingo/2000年(非公開)
ビンゴの乱数表示を行うだけのソフト。友達の結婚式の2次会用に作りました。
・GetImage/2000年(非公開)
TWAIN対応の周辺機器から画像を連続的に bitmap または JPEG で取得するソフト。デジカメの画像をPCに取り込むために作りました。
デジカメ不調のため最近はほとんど使っていないんだけど、知り合いの家で活躍しているようです。
・GetPat/2001年(非公開)
特許庁のホームページから特許(の画像)を取得するソフト。これでシェアウェア作者に(笑)とか思っていたんだけど、サポートが大変そうだったのと会社の新システムでサポートされたので中断。そもそもプログラムによるアクセスは禁止されているし。
九州への出張の新幹線の中でクラス図を作って設計していました。
7)Windows/Visual C++ で作ったもの
VC++ ははっきりと目的があって買いました(PMDWin.cpp を作るため)。開発環境を買う前に目的がはっきり決まっていたのは初めてでした。
今は DLL は VC++/フロントエンドは Delphi が基本スタイルです。おかげで MFC はさっぱり使えないです。
・IN_UM.dll/1999年
WinAMP 用 UltraMarine プラグイン。DelUMPlayer で UltraMarine の API の使い方、DSP_PSで WinAMP のプラグインの作り方はわかっていたので開発環境の習得も兼ねて作りました。
初めて Win32SDK で作ったプログラムなのでダイアログボックスを出すのが大変でした。
・PMDWin/1999年
PMD の曲データを演奏し、PCM データに変換する DLL。最初、FM 音源のコアである M88 の opna.cpp を Delphi に変換して Delphi で作成することも考えたんだけど、あまりにも大変そうだったので VC++ を買って C言語で作ることにしました。
構成がぜんぜんわからないアセンブラのコードをC++に直すのは気が遠くなるような作業でしたが、音が鳴り出すとやる気が出てきて何とか完成までこぎつけました。
最初はただのベタ移植だったんだけど、WinAMP のプラグインを見越して曲長計算や COM インターフェイス等、DLL としての使い勝手も考慮しました。PC-98x1 は音源が5種類(FM, PSG, Rhythm, ADPCM, PPZ8)もあるのでそれぞれ別のシーケンスルーチンを作らなければならないのが大変でした。
・WinFMP/2000年
FMP の曲データを演奏する DLL。PMDWin を手がけ始めた頃から WinFMP も作りたいとは思っていたんだけど(掲示板での要望も多かったです)、いきなりぐぅさんにお話しする勇気もなく、PMDWin がまともに動くようになってやっと WinFMP の計画についてお話できる自信がつきました。
正月にガリガリコードを書いて3月くらいからデバッグ、4月の HypSさんの結婚式の2次会でβ版を初公開しました。その後バグフィックスとプレイヤの対応を行って6月に正式公開できました。
・VMCOL/2000年(非公開)
PhotoShop のトーンカーブのような複雑な色補正ができる AVIUtl 用プラグイン。ただしパラメーターを内部で持っているので自分のキャプチャーカード専用(笑)
さて、今度は何を作ろうかな?