さあ、2学期の実験がついに終わりました!!! やった!
あとは任意課題なんでゆっくりとやっていきます!!!
課題3-2はSMF->UNIの変換プログラムだったけど、恐らく3-1よりは簡単、、、いや、3-1でだいぶ慣れたからかな? そこまで複雑なアルゴリズムでもないし。
テストとして、ショパンのエチュード・ハ短調10-12番、いわゆる「革命」の冒頭部分を切り出して、これをsmf2uni.exeにぶち込んでみる。 するとかなり巨大なuniファイルが出来あがった… これをUNIPLAYERという配布された教材のプレーヤにぶっこんでみると、、すごい勢いで革命の冒頭!!! うおーーー…こ、こりゃすげぇ
UNIPLAYERもなかなかやるなぁ。。。
ショパンのエチュードが再生できるんだからたぶん正確なんでしょうね!(おい)
課題3-1と課題3-2あわせてどのくらいの行数になったんかなーと計ってみると、約1000行。 なんだか辛さの割にはずいぶんと小ぢんまりとしたプログラムになったっぽい。 いや、これを本来ならCで書けというのだろうから、1.4〜1.5倍ぐらいになるはず、、、嫌だ書きたくない(T_T) プログラムは完!
全にオブジェクト指向!! だってmain関数は20行ちょっとだもん!!!!!!!
int main(int argc,char *argv[])
{
CUniData unidata;
CSmfData smfdata;
CConverter converter;
int ret_code;
// ファイルからSMFデータのロード
ret_code = smfdata.LoadFromFile(argv[1]);
if(ret_code == -1) return 0;
// 変換
ret_code = converter.Smf2Uni(smfdata,unidata);
// UNIデータとしてファイルへ保存
ret_code = unidata.SaveToFile(argv[2]);
if(ret_code == -1) return 0;
return 1;
}
いけいけC++!! 万歳!