その他

MIDIストリーム
WIN32 API(C++)/2005年4月
 midiStreamOut関数のサンプルプログラムです。SMF(フォーマット0または1)に対応しています。フォーマット1から0への変換、演奏をそれぞれのクラスにまとめました。
 リソースやデータからの読み込みを主眼に置いています。ファイルからの読み込みにも対応していますが、MCIを差し置いて使う意味は無いと思います。
 内部的にはランニングステータスを補完したフォーマット0に変換しています。これをファイルに書き出す事も可能です。他にも演奏の現在時刻と終了時刻を取得する事ができます。
 技術的にはクラス、線形リスト、コールバックスレッドなどを駆使しており良い勉強になった。SMFは非常に複雑な構造をしているので、圧縮と伸張の一端にも触れる事ができ、大変良い教材だと思う。
 これらクラスの使い方としては、MIDIリソースが基本だが、暗号化したファイルを読み込んで、復号化したデータを渡すという用途にも使えます。
 「SMFのフォーマット変換(1から0)」「MIDIストリームによるSMFの演奏」でアルゴリズム中心に解説しています。このサンプルプログラムはたぶん貴重ですよ?
ダウンロード

WavePlayer
WIN32 API(C)/2004年10月
 波形表示を主目的としたプログラム。Windows Media Playerの同等機能より凄い(と思う)。PCM形式のWAVEファイルにのみ対応。
 波形を表示させること自体は簡単なので、インターフェースに力を入れたらさあ大変!中盤までの見通しでは700〜800行程度の中規模プログラムとなるはずが、1100行を越える大規模プログラムになっちゃったよ、オイ!みたいな(泣)。その多くが状態制御に費やされているという無駄。
 制作期間は約一週間。何もかもが暗中模索だった「BIG BOSS」の制作に三週間から一ヶ月程度かかったことを思えば、自分も成長したなあ……なんて。まあ今回は技術的な目処が立っていましたからね。
 本当はスペクトラムアナライザーを作りたかった……。
 「波形を描画する」もご覧下さい。
ダウンロード(ソース以外はこちら)

光るソフトシンセ
WIN32 API(C)/2004年10月
 MIDIによるソフトウェアシンセサイザーです。鍵盤が光ります。音色が変えられます。打鍵強度が変えられます。
 なかなかいい音で鳴いてくれるじゃねぇか……じゅるるる……というのが作成動機(笑)。プログラム自体は一日か二日で完成した。一番苦労したのは……鍵盤を光らせることかな(笑)?
 「MIDIを鳴らす」もご覧下さい。
ダウンロード

秋間 浩の補間法(簡易版)
C/2004年冬
 「秋間 浩の補間法」をベースにC言語翻訳と簡略化、改善、コメントの大量付加を施して学習者に解らせることを最優先事項として再編成した物です。従って必要最低限の機能しか実装していません。コメント中にある教科書とは「数値計算法(改訂3版)/長嶋秀世」を指しています。
ダウンロード(実行ファイルはありません)

真! 秋間 浩の補間法
WIN32 API(C++)/2004年冬
 クリックした座標を必ず通る曲線を描きます。曲線の交わりにも対応。
 やっと円が描けるようになりました(笑)!アルゴリズムは完璧なはずなのに、完全に滑らかとは言えなかったりしますけどー(T_T)。x方向を基準とするのか、y方向を基準とするのか……滑らかな曲線が描けるか否かはこの選択にかかっているのですが、これがまた難しい……。でも、区分多項式の正しい使い方が記されたプログラムは一見の価値有り!です。今までヘッダーファイルの使い方を間違っていたのですが、今回から改善しています。御免。
ダウンロード

未定係数法による離散的データの最小2乗近似
WIN32 API(C++)/2003年冬
 クリックした座標付近を通るn次の近似曲線を描きます。
 連立方程式を解く必要があり悩んだが、分かってしまえば簡単なもの。プログラムはそれほど複雑ではないが動作は非常に重い。n点しか与えられていない場合、n-1次以上の曲線は全て同じに見えるかも知れないが、よく見るとn次曲線は必ずn次曲線として近似している。
ダウンロード

秋間 浩の補間法
WIN32 API(C++)/2003年冬
 クリックした座標を必ず通る曲線を描きます。この補間法の特徴は手書きに似た自然な曲線を描く事です。
 公式そのものをプログラム化するのはそれほど難しくないものの、区間外の両側の分点を追加するというのが非常に厄介。等高線などに使われる補間曲線のくせに円が描けない発展途上のプログラム。最低3点必要という弱点も痛い……。だが手書きに似た自然な曲線は最も実用性がありそうだ。考えたのが日本人ってのも良いよね(*^_^*)。
ダウンロード

ラグランジュの補間法
WIN32 API(C++)/2003年秋
 クリックした座標を必ず通る曲線を描きます。
 ラグランジュの補間法を知らない君は数値計算法を勉強してみよう!まあまあ面白いぞ。この補間法は公式自体が非常に簡潔である為プログラムも素晴らしく簡単!数式のプログラム化の基礎を身につけたい人はここで。公式の性質上、同じx座標上に2つ以上の点を打つと正常な曲線を描くことが出来ません。ウィンドウサイズ変更に対応。
ダウンロード


戻る / ホーム