« Linux Zaurus SL-C760のSDカードスロット修理(続き) | Main | JavaScript shell (js)、OSSP js 1.6.20060820のZaurus向けパッケージ »

2006.09.15

(再掲/転載モノ)ステップ入力MIDIシーケンサSTed2のZaurus向けパッケージ

2年ほど前、とあるWiKiにSTed2のことを書いたんですが、いつの間にかページが無くなってしまったのでWebArchiveから拾ってきました。というわけで、再掲モノです。

再掲に当たって、各種シーケンサが使用する データファイルを、RCP/R36 ファイルに変換するフィルタ群であるところのrc_convertersと、SMF / RCP / R36 player / converterであるところのSayleenのパッケージも作りました。Sayleenには「RCP / R36 形式のデータを Standard Midi File に変換するコンバータ rcpconv、およびライブラリ librcpconv が収録されています。これがあるとSTed2とDTMソフトとの間を標準MIDIファイルでやりとりできるので、プロトタイピングなんかに使うといいんじゃないでしょうか。

なお、STed2については、michitomo.jpさんの「ザウルスで作曲」が参考になります。

「sted2_20021104-1_arm.ipk.bin」をダウンロード

「sayleen_20021027_arm.ipk.bin」をダウンロード

「rc-converters_20000429_arm.ipk.bin」をダウンロード

今X/Qt入れてないもので、試してません。ごめんなさい。

Sted2

STed2で何ができる?

Zaurus で、いわゆる DTM (Desk Top Music) ができます。

とはいっても、特に何を用意する必要もありません。STed2 と、ソフトウェアMIDI音源 timidity をインストールすれば、それだけで Zaurus が音楽スタジオであるかのようになります。

STed2 が timidity に対して演奏の指示を出し、それを受けて timidity が音を出すわけです。Zaurus の中で完結します。

# こうなるともはや DTM ではなく、PTM (Palm Top Music) ですね。

可能性はそれだけにとどまりません。STed2 で作ったMIDIファイルを timidity に読み込ませて WAV に書き出し、Zaurus での動作実績があるMP3エンコーダ、bladeenc(カビパン男と私)にてそれを MP3 に変換することも可能です(※)。もちろん、計算機資源、そしてバッテリーに余裕があれば、の話ですが。

※今ならARM ShineでMP3エンコードできますね。

なお、STed2 からは MIDI ファイルの一種、RCP ファイルしか書き出せませんが、周辺のユーティリティを使うと標準MIDIファイルにコンバートできます。(たぶん、MAKE 一発で移植可能なはず。(※)そうすれば、セルフでコンバート可能)

※MAKE一発でした。

STed2でどこまでできる?

STed2 は、MS-DOS 時代に高い評価を受け、プロミュージシャンにも愛用された国産MIDIシーケンサー「レコンポーザ」の、非常によくできたクローンです。

その機能特盛りの様子についてはこちら(MIDI Music Composer STed操作マニュアル)をどうぞ。

発音を担当するソフトウェアMIDI音源 timidity は、Zaurus において、16bit / 44.1kHz 時、同時発声??音という程度の働きをします。インストールする音色セット (patch) に音質は左右されますが、「デカデカ zip file(TiMidity だだだだ!)」を導入すれば、それなりの鳴りっぷりです。DDI Pocket の PHS 搭載音源ぐらい?

世界広しといえど、ここまで実用度の高い DTM 環境が整った PDA(PMT?)は Zaurus が初めてです(※)。その意義が何だか分からない人も多いでしょうが、ここでとりあえず「スゴイ!! Zaurus 最強!!」と驚いてください。

※今はWindows Mobileの方が先を行ってます。Griff Pocket Music Studioのようなスゴイのがいくつかあります。

その気になってきたら、早速インストールしてみましょう。

STed2のインストール

ここを見て、X/Qt をインストールしてください。STed2 は、X Window 下で動きます。コンソール下でも動きますが、動作には X のライブラリが必要です。STed2 を使うに当たって日本語表示は必要ではないですが、表示されないと気持ち悪いので、gconv 類、glibc-locale-eucjp、そして画面からはみ出させず、なおかつ日本語表示させるために必要なナガ10フォントのために、xqt-fonts-misc-big まで入れることをおすすめします。
ここ(CreativeStationの「timidityとpatchのいんすとろ~る(笑)」)を見て timidity と patch をインストールします。
このページから STed2 を持っていって、インストールします。
blackbox のメニューから STed2 を起動できるように、/opt/QtPalmtop/share/blackbox/menu に STed2 を登録しておきます。記述例は以下を参照のこと。こうすれば、Fn + 画面タップで出てくるメニューから STed2 を起動できるようになります。注意すべきは、X/Qt を shutdown してから menu ファイルを変更することです。

...
[exec] (Emacs) {emacs}
[exec] (STed2) {sted2}
...

STed2の設定

デフォルトの設定では画面からはみ出てしまいますので、設定をいじる必要があります。設定ファイルは以下です。

/usr/local/lib/sted/sted2.cnf

これをまずは下記のように書き換えます。作業には、管理者権限が必要かもしれません。

* X Window 上で動作する場合の font set 名

#font_name=-\*-fixed-\*-r-normal--12-\*-\*-\* # コメントを外す
*#font_name=-\*-fixed-\*-r-normal--14-\*-\*-\*
*#font_name=-\*-fixed-\*-r-normal--16-\*-\*-\* # コメントアウトする

このように変更すれば、12ドットフォントが使われるようになります。しかし、12ドットフォントでは、実用上問題無いものの、まだちょっと左右がはみ出ます。

Sted12dotfont1

これが気になるなら、以下の行を足して、ほかの行をすべて*でコメントアウトします。

#font_name=-\*-fixed-\*-r-normal--10-\*-\*-\*

すると、10ドットフォントが使われるようになり、画面内に完全に収まるようになります。しかし、ナガ10をインストールしていると以下のような画面になると思います。ナガ10Bが使われているようですが、どうにも見にくい。

Sted210b

自分はナガ10Bを避けてナガ10を明示的に指定する方法がよく分からなかったので、ナガ10Bをアンインストールするという無理やりな方法で対処しました。それは次のような手順で実行します。

1. /opt/QtPalmtop/lib/X11/fonts/misc/ からknj10B.pcf.gz と 5x10B.pcf.gz をどける

2. mkfontdir /opt/QtPalmtop/lib/X11/fonts/misc/

これでfonts.dirを作り直し、X/Qtを再起動します。すると、次のように見やすい画面になります。いささか文字が小さいので、12ドットフォントとどちらを選ぶか、悩むかもしれないですね。

Sted2101

Sted2102

フォントの設定が済んだら、STed2がtimidityを呼び出す際のオプションを変更しておきます。

デフォルトではtimidityのサンプリング周波数が22.05kHzになりますが、SL-C(70|76|86)0 では、timidity のサンプリング周波数を44.1kHz にする方がパフォーマンス的に有利という話なので、sted2.cnfの以下に該当する部分を次のように書き換えます。

#player=1,timidity -idq -f -s22.05

#player=1,timidity -idq -f -s44.1
ひとまず設定はこれで終わりです。

STed2 on Zaurusの問題点

X Window 上で、一部のキーの反応が悪い(コンソールで使う分には問題なし)
STed2のその後ですが、特定のキーの反応が悪い? ようです。
「=+|<>/*_」この辺りの入りがなぜか悪いです。
キーを0.5秒ぐらい押していないと入力されません。
もちろん、rxvt や Emacs では正常に入力できます。
InputHelper と KeyHelper を外してみたのですが、STed2
のみで起きる症状だったので、やっぱり関係無いようでした。
使う際は注意ですね。後々出てくる話だと思うので、
一応書いてみました。
グラフィカルモードへの移行キーである Ctrl+G は、KeyHelper が入っていると、
反応が悪くなるようですね。
Ctrl+G をちょっと長押しするか、KeyHelper を一時停止すれば OK です。
キーが徹底的に足りない(ファンクションキーに割り当てられている機能多数)
音出しは、コマンドを2度発行する必要がある?
もう一つ注意点を挙げるとすれば、PLAY ボタンや、Edit Mode での n や m による
ノートのプレビューにおいては、2 度押ししないと音が出ないことでしょうか。

STed2を使ってみる/ショボいチュートリアル

とりあえず、以下のようにトレースしてください。

[STEP-1]起動~トラック1へのデータ入力

起動

カーソル下で EDIT & SET に合わせ、Enter を押す。

さらに Enter で TR1 のエディットモードに入る。

/ をちょっと押し続ける。勢い余って////と入力されてしまったら、BSで全部消す。

g を(一つだけ)入力して、Enter、さらに Enter。

音色リストが出てくるので適当なものをカーソルで選んで Enter。

c, Enter, d, Enter, e, Enter, f, Enter, g, Enterと入力してみる。

* を少し押し続け、小節線を入力する。

p を2回押してみる。

音が出ましたか?

[STEP-2]トラック2へのデータ入力~音符の個別再生

Esc を1回押して、カーソルを一つ下にやり、TR2 のエディットモードに入る。

/ の後に g で同様に適当な音色を選択。

g3, Enter, a3, Enter, b3, Enter, c4, Enter, d4, Enter と入力。

カーソルを一つ上にやって、n を2回押してみる。d4 の個別再生ができたことを確認。

* を少し押し続け、小節線を入力する。

p を2回押してみる。

音が出ましたか?

[STEP-3]トラック間の行き来~音色の変更

Shift + カーソル左で TR1 に切り換えます。データが入力されたトラック間は、この操作で行き来できます。

一番上の音色チェンジコマンドのデータまでカーソルを移動し、音色名にカーソルを合わせます。

適当な数字キーを押し (例えば2) 、カーソルの下を押します。

すると、音色リストが再び表示されるので、適当にほかのものを選んで Enter。

p を2回押してみます。

どうなりましたか?

[STEP-4]リズムの入力~トラック個別再生

Esc を押して再びエディットモードから抜け、TR10 にカーソルを合わせて Enter。

41, Enter, 40, Enter, 41, Enter, 40, Enter, 41, Enter と入力。

* を少し押し続け、小節線を入力する。

m を2回押してみる。編集中のトラックのみの再生が始まる。

p を2回押してみる。

カーソルを二つ上にやり、K# の欄を 42 に書き換える。書き換えた行にカーソルを合わせ、n を2回押してみる。

ここまでくれば、とっかかりとしては十分ではないでしょうか?

覚悟を決めて、マニュアルに取り組んでみてください。

エディットモードの数値解説

NOTE
音階 (後ろに付く数字はオクターブ指定。c3 と c4 はオクターブ違いのド。B3の次がC4)

K#(キーナンバー)
数値化した音階 (NOTEの別表現で、NOTEとK#は連動。打ち込むときは、どちらの表現も受容)

ST(ステップ)
音の全長 (デフォルトでは48が4分音符、24が8分音符、12が16分音符、16が4分3連。従って、4/4拍子の場合、1小節は192ステップとなる。その小節内の総ステップ数は小節線上に表示される。*で小節線を引くのはとても重要)

GT(ゲート)
音の全長のうち、実際に音を出す長さ。これが小さいとスタッカートに、小さいとスラーになる。

VEL(ベロシティ)
音量

サルベージ元

http://web.archive.org/web/20050316035747/http://ehe.s57.xrea.com/index.php?sted2

|

« Linux Zaurus SL-C760のSDカードスロット修理(続き) | Main | JavaScript shell (js)、OSSP js 1.6.20060820のZaurus向けパッケージ »