STed2(数値入力方式MIDIシーケンサ)のビルド・インストールメモ
概要
STed2(http://sted2.sourceforge.net/)はMIDIシーケンサの1つで、数値を入力していくST/GT方式*1により、慣れれば非常に効率よくデータを入力できる(操作も完全にキーボードだけで行える)。レコンポーザというソフトウェアのクローンとしても知られている。
更新は2002年11月以来されておらず、最近のディストリにおいてはそのままでは動かないことも多い。が、動かすことはできるし、TiMidity++(標準で対応)や外部音源の音を出すこともできる。
ビルドについて
文字列(改行)の記述が不適切な部分があるため、ビルドエラーが出る。
if gcc -DHAVE_CONFIG_H -I. -I. -I../.. -g -O2 -MT rcptomid.o -MD -MP -MF ".deps/rcptomid.Tpo" \ -c -o rcptomid.o `test -f 'rcptomid.c' || echo './'`rcptomid.c; \ then mv ".deps/rcptomid.Tpo" ".deps/rcptomid.Po"; \ else rm -f ".deps/rcptomid.Tpo"; exit 1; \ fi rcptomid.c: In function 'set_tempo_track': rcptomid.c:837: error: missing terminating " character rcptomid.c:838: error: 'This' undeclared (first use in this function) rcptomid.c:838: error: (Each undeclared identifier is reported only once rcptomid.c:838: error: for each function it appears in.) rcptomid.c:838: error: expected ')' before 'file' rcptomid.c:839: error: stray '\' in program make[3]: *** [rcptomid.o] Error 1 make[3]: Leaving directory `/tmp/work/sted2-20021104/sted2/sayleen' make[2]: *** [all-recursive] Error 1
これは
--- sted2-20021104.orig/sted2/sayleen/rcptomid.c +++ sted2-20021104/sted2/sayleen/rcptomid.c @@ -834,8 +834,8 @@ if ( rcp->enable_converter_notice == FLAG_TRUE ) { int *len; - sprintf( buf," -This file was converted by %s version %s (%s - %s). + sprintf( buf,"\n\ +This file was converted by %s version %s (%s - %s).\n\ Original RCP file is \"%s\" (%s, %d bytes).", (rcp->command_name!=NULL)?rcp->command_name:rcptomid_name, VERSION_ID, VERSION_TEXT1, VERSION_TEXT2,
の修正でエラー回避できる。
上の修正にsedを使用した場合のソース展開からインストールまでの流れは下のようになる。
$ tar zxf [sted2-20021104.tar.gzの場所] $ cd sted2-20021104/ $ sed -i -e 's/\(buf,"\)/\1\\n\\/' -e 's/\(%s).\)/\1\\n\\/' sted2/sayleen/rcptomid.c (この段階で、必要に応じて他の修正作業も行う) $ ./configure $ make $ sudo make install-strip
しかし、起動して正常に動作させるためには、問題がまだ色々と残っている。
*1:ステップタイム(次のステップまでの時間)とゲートタイム(音の長さ)により曲データを構成する