自分のコンパイラ環境で SDK ソースから実行用ファイルを作成出来るようになった。
SDK ソースファイルを、「自分ルール」で(自分にとって)読み易くする。
あと、ソースを読みながらコメント強化
・BYTE WORD DWORD 等 Waindows API <Windows.h> で使用している型と同じものは、名前を統一する
・ファイル・関数・変数名等長い名前(他との兼ね合いでしょう)は、も少し短くする
・'korg_syro_' あたり static にできるものはして、短くする
・演算子の前後にはスペース
・不等号 は '<' '<='「左側が小さい」に統一
・引数リスト変数名になるべく意味をもたせる (プロトタイプ宣言自体のドキュメント化)
都度、生成した syro stream を比較し、差異が無い事を確認しながら進める
のつもりだったけど、もう少しテスト
・[パチもの.exe] が [本家.exe] と同じ動作をしているか?
・本体に対し syro stream が正しく機能するか?
先に [本家.exe] で残りのテストデータ (syro stream) を生成しておく
・'e': Erase sample n番の本体サンプルデータを消去(コマンド?)
・'s': Sample .wav を本体n番サンプル用に変換
コピー&リネーム
example.exe SDK example\execute_win\syro_volcasample_example.exe
02Kick3.wav SDK example\execute_win\02 Kick 3.wav
02kick3org.wav SDK example\execute_win\syro_stream.wav
[本家.exe] での生成
とりあえず、SDK 添付と同じ syro stream を生成するか確認
D:\_MyProg\MIDI\VolcaSample\SDK\TEST\MakePreset>example 02Kick3SS.wav s02c:02Kick3.wav
Input data 1 : Sample(Compress bit=16), number = 2, file = 02Kick3.wav, ok.
Complete to convert.
D:\_MyProg\MIDI\VolcaSample\SDK\TEST\MakePreset>fc /B 02kick3org.wav 02kick3ss.wav
ファイル 02Kick3org.wav と 02KICK3SS.WAV を比較しています
FC: 相違点は検出されませんでした
本体98番サンプル用に生成
D:\_MyProg\MIDI\VolcaSample\SDK\TEST\MakePreset>example 98Kick3SS.wav s98c:02Kick3.wav
Input data 1 : Sample(Compress bit=16), number = 98, file = 02Kick3.wav, ok.
Complete to convert.
本体98番サンプル削除の syro stream を生成
D:\_MyProg\MIDI\VolcaSample\SDK\TEST\MakePreset>example 98Erace.wav e98:
Input data 1 : Sample erase, number = 98
Complete to convert.
生成 syro stream
02Kick3SS.wav "02 Kick 3.wav" をサンプル番号02番
SDK example\execute_win\syro_stream.wav と同じである事を確認
98Kick3SS.wav "02 Kick 3.wav" をサンプル番号98番
98Erace.wav サンプル番号98番消去
このあと、ファイル名に '_' を追加
[パチもの.exe] syro.exe で生成
[本家.exe]で生成したものと比較 違ってたら、戻る
[パチもの.exe] での生成
SDK 添付と同じ syro stream を生成するか確認
D:\_MyProg\MIDI\VolcaSample\SDK\TEST\CMD>syro 02Kick3SS.wav s02c:02Kick3.wav
Input data 1 : Sample(Compress bit=16), number = 2, file = 02Kick3.wav, ok.
Complete to convert.
D:\_MyProg\MIDI\VolcaSample\SDK\TEST\CMD>fc /B 02kick3ss.wav 02kick3ss_.wav
ファイル 02Kick3SS.wav と 02KICK3SS_.WAV を比較しています
FC: 相違点は検出されませんでした
本体98番サンプル用に生成
D:\_MyProg\MIDI\VolcaSample\SDK\TEST\CMD>syro 98Kick3SS.wav s98c:02Kick3.wav
Input data 1 : Sample(Compress bit=16), number = 98, file = 02Kick3.wav, ok.
Complete to convert.
D:\_MyProg\MIDI\VolcaSample\SDK\TEST\CMD>fc /B 98kick3ss.wav 98kick3ss_.wav
ファイル 98Kick3SS.wav と 98KICK3SS_.WAV を比較しています
FC: 相違点は検出されませんでした
本体98番サンプル削除の syro stream を生成
D:\_MyProg\MIDI\VolcaSample\SDK\TEST\CMD>syro 98Erace.wav e98:
Input data 1 : Sample erase, number = 98
Complete to convert.
D:\_MyProg\MIDI\VolcaSample\SDK\TEST\CMD>fc /B 98Erace.wav 98Erace_.wav
ファイル 98Erace.wav と 98ERACE_.WAV を比較しています
FC: 相違点は検出されませんでした
全て、 [本家.exe]で生成したものと同じである事を確認
本体転送動作テスト予定手順:[本家.exe] [パチもの.exe] 両方で 生成した syro stream で行う
[パチもの.exe] の生成したものだけでいいかな?
・サンプル98番消去の syro stream を本体に転送
・サンプル98番が鳴らない事を確認
・サンプル98番用の syro stream("02 Kick 3.wav") を本体に転送
・サンプル98番で "02 Kick 3.wav" が鳴る事を確認
終ったら 全サンプルの syro stream を転送してプリセット状態に戻す
うまくいった♪
・「消去されたサンプル番号」は選択出来なくなる
・音色を選ぶ時(本体 SAMPLE ノブ)に、番号がスキップされる
覚書:
・コマンドライン 'c': サンプル変換時の圧縮指定は色々試してないのでプログラムで「通ってない」箇所がある筈
・コマンドライン 'a': 全サンプルソースデータの構造は不明・未調査
さて、ソースを読みに行こうか
次へ:05 ソースを弄る(2)