ちょっとばかり楽器をいろいろいじる集まりに遊びに行ってきたら、ひさしぶりにMIDIをいじりたくなったので、楽譜を片手に軽く打ち込み始めたのだけど、portmidi-sharpのサンプルで作ったmmkがbank selectに対応していなくて、これではベタ打ち以上に真面目な用途には耐えられないと思うに至った。
そこでmmkにバンクセレクトを実装しようと思ったわけだけど(この時点でもう打ち込み始めた曲は忘れられている)、決めうちで出来たプログラムチェンジとは異なり、バンクセレクトには少し考えるべき要素がある。
ひとつは音色リストの管理だ。音色マップはMIDI楽器ごとに用意しなければならない。もっとも既存の音楽ソフトがいくつか音色リストを持っているので、それを使い回せばいい(たまに著作権があるかのように記載しているものがあるけど、データベースの著作物にもならないし肉体労働は著作権では保護されない)。
もうひとつはUIの構成だ。そもそもmmkはメインメニューから選択させる構成になっていて、これにさらにバンクセレクトを追加すれば良いといえば良いのだが、音色があるていど分かりきっている(まあ慣れだけど)プログラムチェンジとは、異なり、理想的にはバンクは音色を聴きわけながら選択したい。そんなわけで、そろそろ音色セレクタは別に作った方が良いのではないかと思うに至った。
そしてどうせならグラフィックベースのリッチなUIで選択できるようにしたい。というわけで設計を考えてみた。
一番簡単なのはプログラムとバンクを一覧表のようにして(さすがに1つのselectorではやりにくい)選択させる方式なのだけど、まともな音源だと軽く1000音色くらいあるので、無駄に広い画面が必要になるし、スクロールするだけでも面倒になる。そんなわけで、ダイヤル式のちゃらいUIではどうかと思って描いてみた。
http://docs.google.com/View?id=dfbvrv4g_31g9g59xdh
2つあるのだけど、後者の方がたぶん簡単だ。
設計を考えるだけでちょっとおなかいっぱいになってきたので、実装は気が向いた時にやろうと思う。
Leave a comment