Studio ftn Score Editor Classic 5.5 の開発状況を報告します。

あらすじ
音源定義の編集画面を5.5で導入する事になりその開発を行う。 MIDI関連は大枠複数音源で動作するようになり、MIDI鍵盤との連動が確かめられた。 エフェクト関連の操作画面についての開発にも着手。この時期も体調面で苦戦しながらの開発となるが、 掲示板にて同業者に励まされながら開発を行った。


2007-03-31 状況
    音源管理の最低限の作りを行なった。 細かいことは後にして先に進む。

    今度は、音源を選択する画面の開発に入る。 この画面は設計やデザインを考える必要があり、 そこそこのボリュームがある。根気良く開発していくしかない。 この画面が終われば、MIDI機能の画面は全て出揃う。
2007-03-30 状況
    エフェクト操作画面の作りが完成。 つまみと音源が連動するようになった。 それと同時に、音源リセットの連動も完成。 ただ、リセット待ちに sleep を使用しているので、 数秒間画面が固まってしまうので、後で改善する。 SMFにしてリセットをかけるのが良いかもしれない。 もしくは、マルチメディアタイマでタイミングを取る方法も考えられる。 やるべきことが他にもあるのでとりあえず開発を先に進むとする。 細かい作りこみはあと17項目。 増えたり減ったりでなかなか進まない。

    次は音源の起動管理の部分の開発に入る。
2007-03-28 状況
    エフェクト操作画面の作りであるが、 ようやく画面のデザインがしっくり来る出来になった。 これにはかなり試行錯誤してしまった。 つまみのグラフィックが決まらないと画面幅などの計算ができないので、 結局つまみのデザインと画面レイアウトで試行錯誤してしまった。

    デザインができたので、作りこみを行うために、 作りが分散していたグラフィック描画の処理を1箇所にまとめていく作業も行った。 そして、エフェクトの種類の切り替え処理を作り、 ようやくつまみを動かす部分の開発に入る。

    つまみの矢印だけを動かそうとしたが、今後の事を考えてグラフィック全体を回転させる事にした。 しかし、立体的な画像の場合、少し見下げるような視点である場合、 回転させると、視点まで回転してしまう。 しかたないので、グラフィックそのものを回転の角度分用意する事にした。 グラフィック上は32段階とした。 しかし、3Dモデリングソフトがドットベースの細かいグラフィックの表示が対応していないようで、 大きな画像しか吐き出せない。仕方ないので、大きな画像から画像をくりぬきつつ、 チップセットにするツールを作成し、やっとつまみの回転グラフィックを用意する事ができた。

    早速プログラミングし画面上でもつまみが動くようになった。
2007-03-27 状況
    エフェクト等の操作画面であるが設計が終わり、 作りこみを行っている。まずエフェクト系の画面編集する機能を開発した。 それに伴ってデータ構造を少々修正。結果的には全体的にまとまった構造になった。

    次に問題のエフェクト系パラメータを操作する画面の開発に取り掛かる。 画面方式は従来のダイアログ形式と Score Editor 画面上の2通りを作成するが、 Score Editor 上から操作するための「つまみ」のグラフィックを作成した。 デザインはいまいちであるが、後に改善するとしよう。 これから、つまみ系の画面を描画する部分の開発を行う。
2007-03-24 状況
    SYSEXによる音源のリセット処理が動作した。 次に、エフェクト関連の設定画面の改善に取り掛かる。 操作できる音源が増えるという事はエフェクトの画面も複数存在できる構造にしなければならない。 従来の構造では対応しきれないので、これも開発しなおしである。 他に5.5は音源全体のに関係するパラメータも、 画面から編集できるようにする予定なので、 少々設計が必要になりそう。 他に細かい部分の作りは3つ減ってまた増えて17項目。
2007-03-23 状況
    バルクダンプによるドラム定義の取得が完成。 なんとか、D70の楽器一覧の作成が完了した。 バルクダンプ機能はユーザには公開できる出来ではないので、 今後、細かい作りをするとして、中断していた開発を再開する。

    D70のSYSEXの定義を行い、 音源のリセットを行う処理の作りを行う。3/13 からの続きを行う。 細かい部分はあと17項目である。
2007-03-22 状況
    音源定義の編集画面のファイル保存部分を作成した。 データ更新に伴う各画面の初期化も完成。

    続いて、 D70の楽器一覧取得のためバルクダンプ機能を作成中。 複数音源対応に関連し、従来のままでは使用できないので、 バルクダンプ画面は開発をしなおした。 現在、楽器の情報は取得する事に成功した。 バルクダンプ機能は、従来の画面を改良し、 ユーザによる書式定義を可能にした。これでD70以外の音源でも、 音源に詳しい人であれば、 使用しようと思えば可能にはなるが、この機能は完全に作者が使用する事を想定しているので、 SC系の音源以外では動作保障はできない。 将来はユーザでも使用できるようにしたい。

    話は戻るが、音源定義の編集機能は、ユーザでも使用できる。
2007-03-20 状況
    音源定義の編集画面のダイアログデータを反映する部分が完成。 画面を閉じる時に、この処理を動かさなければキャンセル機能となる。 つづいて、データ更新に伴う処理や、音源の再セットアップの部分を作成中。 ファイルへ保存できるようにしたら、大枠編集画面は完成となる。 ただし、細かい部分の調整を行う必要がある。 また、編集画面を簡略化するために一部のデータ構造を改善した。

    その後、中断していたSYSEXのデータを作成し、 音源リセットの動作等の確認を行う予定。 音源定義の編集画面ができたので、画面上からSYSEXの定義を行っていく。 楽器一覧に関しては、楽器数が多いので、D70のバルクダンプで作成してしまう予定。
2007-03-18 状況
    音源定義の編集画面であるが、地道な作業が続く。 7画面目に突入したところである。
2007-03-17 状況
    どうも ftn は、気温が下がり傾向になってくると、体調がわるくなるようだ。 体調がガタガタなので、楽譜ファイルのアイコンの48ドット版を作成した。 これで Vista でも、5.5からは、きれいなアイコンが表示される。

    印刷時の調号と拍子記号の順序が逆であるといった報告をいただいた。 あまりにも致命的だったので、すぐに修正版をリリースした。 開発中の5.5へも同じ修正を施した。

    データキャンセルの作りこみであるが、 1画面1画面こつこつとデータの複写処理を開発している。 コツコツ進めるとそれほど怖くない事がわかった。

    そのほかとして試行錯誤で決めたデータ構造の名前がばらばらだったので、 統一させる作業を行った。

    引き続き、他の編集画面についても、データキャンセルの作りこみを行っていくとする。
2007-03-15 状況
    音源定義の編集機能であるが、現在編集画面の作りを行っている。 厄介な点がダイアログのキャンセル機能である。 編集したデータをキャンセルした場合、もとの状態に復元しなければならない。 これを行うにはデータ全体の複製を一時的に作成する必要がある。 音源定義に関してのデータは膨大なため、これらを全て複製するのは手間がかかる。 しかし、今後の事も考えるとデータ全体の複製を行うのが妥当であるため、 データ複製の作りを行うべく現在作業を進めている。 膨大な処理を書くのは気が遠くなり作業が進みにくくなるが、 あまり考えずに、コツコツと作りこんでいくことにする。 このような当たり前の部分の作りが裏ではかなり必要になる。 ユーザには、このような裏の作りの苦労が分からないかもしれない。 ソフトウエアのほとんどは裏の作りで占めており、目に見える部分はほんの一部でしかない。 どうして、機能を追加するのにこれほどの時間がかかるかと言えば、 1つ目に見えるようにするために裏ではあまりにも多くの機能を作らなければならないからと言っても良いかもしれない。 作っても作っても、終わらないのである。 内部的な処理が一つでも欠けると動作しないのがコンピュータの特徴だと思う。 動くかどうか分からないものを永遠に作り続ける。 動くという設計を信じて細かい作りを永遠に作りこむ。 かなりの根気を要する。
2007-03-13 状況
    細かい部分の1つであ、SysExメッセージのデータ連携の部分を対応中。 複数音源化に伴い今までの変数部分の作りに改善を加え変換を高速化した。 ただ、SysExイベントそのものは、音源側で処理に時間がかかるので、 高速化しても無意味かもしれないが、mid ファイルを書き出す際に若干速くなるかもしれない。 目に見えて速くなる事はないかもしれないが、無駄な処理を動かさないという考えは、 コンピュータにとっても良いことである。

    今までは、XGの定義を作成してテストしていたが、 SysExとなると、開発環境の音源がD70なので、 動作確認をするには、D70の定義を作成する必要がある。 もちろんMUでテストすればXGの確認ができるが、 開発環境では、D70のOUTからMUへ送信するような接続になっているため、 音源を2台起動するのは手間がかかる。 ひとまずD70でテストし、動作したらXGでテストしたい。

    D70の定義を作成するには、バルクダンプを使うのが手っ取り早いので、 まずその部分を開発し、SysExなどの定義をするために、 編集ツールの開発をする必要がある。 テキストを直で編集してもよいのだが、 5.5からはこの編集ツールが標準装備となるので、 本格的に開発しなければならない。ちょうど良いタイミングなので、 これを終わらせてしまいたい。という訳で、 細かい部分とは言えないボリュームの内容である。 しかし、しょっちゅう使用するものでもないので、 操作性についてこだわる必要がないので楽である。

    他にも、編集ツール機能がいくつか必要なので、その開発を行う。
2007-03-10 状況
    ひたすら細かい部分の対応が続く。 増えたり減ったりで、残りあと20項目となった。

    目の痙攣であるがようやく落ち着いた。 たまたまトマトジュースを飲んだら改善された。 これには驚いた。 トマトは、血液をサラサラにする効果があると言われている。 理由が分からないので、さらに、 目の疲労について調べていたら、 目を使いすぎたりして目の周りの筋肉が酸欠状態になると、 痙攣したりするようだ。 血液がサラサラになった事で血行が良くなり、 目の痙攣が改善されたのかもしれない。

    ftn は、プログラマを長く続けるために、 開発と平行して、いろいろと体調面での研究をしている。 できるだけ、病院に行かないで、自然の食べ物や生命パワーの力で、 解決できないかと、いろいろと調べている。 プログラマという特殊な職業は、長く続けると不可解な病状が出やすいのである。 主に精神や脳に関する疲労が多く、こうなると医者もあてにならない。 今までにいろいろな事を調べて解決に至っている。 今回の目の改善を考えると、さまざまな不可解な症状は、 そのほとんどは酸欠によるものなのかもしれない。 かといって、酸素ボンベを吸うわけにはいかない。 酸素はそもそも毒だからである。 運動すれば問題ないのだろうけど、 プログラム作業は運動をしている時間がないし、 開発が気になってフレッシュな感じで運動ができないのである。 時間ばかりが気になるのである。 コンピュータ関連の仕事はほとんどが、頭の仕事なので、 体調面に関しては、一般の方法では解決できにくい。
2007-03-09 状況
    引き続き細かい部分を8つ対応したが、 新しくやらなければならない細かい点をいくつか見つけた。 次々に対応していくのみである。

    春になるのかと思ったら、すぐに冬になった。 この気温差が体に響くのだが、今のところ体調問題なし。 早くも蚊が出現し、あちこち刺される。 アカイエカと思われる。個人的にこの蚊には弱く、血管の所や指先、手のひらなど、 敏感な所を挿すので嫌いである。しかも、この蚊はそう簡単にはくたばらないしぶとい蚊である。 かゆいというよりは痛いのである。
2007-03-08 状況
    詳しい事は細かいので説明は省略するが、 30個に及ぶ細かい部分を4つ対応したが、 同じくらい新たな細かい点を見つけた。 次々に対応していくのみである。
2007-03-07 状況
    入力と出力の見直しが終わりこの部分の開発が完了した。 思い通りの洗練された作りになった。

    これにて、MIDI鍵盤から音源までのデータの流れの部分が完成したので、 複数音源対応の核となる部分が完成した事になる。

    あとは、今まで、プログラムで直接音源の命令を使っていた部分を、 新しい処理に書き換えていけば良い。 細かい部分を完成に向けて開発していく作業をこれから行う。 何をして良いのやら分からなくなるので、 残件をピックアップしてみた。MIDI機能だけで、 だいたい30個くらいの残件がある事がわかった。 このほかに、VST関連の機能の複数化対応が必要。
2007-03-06 状況
    突然春がやってきた。ほんわかして眠くて体に力が入らないが、 眠いという事は、精神的な疲れが取れてきている証拠かもしれない。

    MIDI鍵盤であるが、ようやく鍵盤演奏からの情報を音源に受け渡す仕組みが完成した。 鍵盤を演奏すると音源が鳴るようになった。

    これで基本的な仕組みは一通り完成したのであるが、 入力と出力のプログラムがまだ統一、洗練されていないような気がするので、 もう一度作りを見直す作業を行っている。 見直し後にプログラムを修正したら、ようやく完成となる。

    それができたら、楽譜演奏の部分を新しい構造に書き換えたり、 楽器を鳴らす箇所を書き換える作業を行う予定。 ここまでできたら、あとは、作り残し部分を開発して、 複数音源対応は完成するはずである。 ユーザ側で音源の定義を作成する機能が追加されるので、 仕様を後から変更するのが難しくなるので、 かなり慎重に作業を行う必要があり、リリースまでにまだまだ時間がかかる。

    他にも、AUDIO関連の機能も作らなければならない。 AUDIO機能は、ミキサーとエフェクタの部分が大幅に変更になるので、 この部分でまた時間を取られると思う。

    昨日、フランスの作曲家からメールが届いた。 かなり丁寧な英語で書かれていた。 Score Editor の英語版が欲しいとの事であるが、 残念ながら Score Editor は、国内用ソフトなので、 対応はできない。対応するのは簡単であるが、 残念ながら国内用のソフトとして開発している。 その事を主張すべく、Score Editor は、意識的に日本語をたくさん使っている。 将来的に、項目名は自分で変更できるようになるので、 それができたら、ある程度は自分で英語版っぽくすることは、 可能かもしれない。ftn は、英語が読めても書くことはできないので、 余計な事を書くと誤解を生むので「日本専用ソフトです」 との返事を出した。超クール。と思われたか、 ここに、英語版を求めるのは無理そうだ。 と思われたかどちらかだと思う。
2007-03-04 状況
    データの受け渡しで、受け渡されたほうがそれに気がつく仕組みを作りこんだ。 しかし、気になる点が1つ。 MIDIにはコントロールチェンジというメッセージがあるが、 ノートメッセージなど他にいろいろある。 動作速度が落ちないように、それぞれ専用のデータ受け渡し方法を考えたほうが、 良いのではないかと考えた。また1つ壁にぶつかった。 ただ、決め事で解決しそう問題だと思う。

    またパワーが出なくなってきたが、 そういう時は、またしても左脳が働きすぎている状態にあるのだろうと思う。 こうなると、ああでもないこうでもない。とますます左脳が動き、 気の遠くなる作業を思い出してしまい手が止まる。

    こんな時はきっぱりと開発から離れる事にしてみた。 右脳が働かないと良い開発はできない事を知ったばかりなのである。 こういうときは、開発の事は忘れる事にする。

    さらに、Vista で、うれしい出来事に出会えた。 なんと、オーケストラVST音源「MIROSLAV 」が、Vista で動作するようになった。 これは、嬉しいです。詳しい話はこうである。 MIROSLAV が Vista で動作しない事について考えてみた。 考えたというか、USBキーのデバイスが Vista で動作しないから、 動作しないのだろうという仮説は有効である。 そこで、USBキーのメーカーのページに行ってみた。 昔は、どこでダウンロードをするのか分からなかったのだが、 今回はすんなり見つける事ができた。 早速インストールすると Vista でUSBキーを認識するようになったのである。 そして、キーの中身も認識した。 これは、と思い、MIROSLAV をインストール。VSTのアサインに成功した。 後から、サウンドデータをインストールして、MIROSLAV 1.1 に更新し、 見事に Vista 上で MIROSLAV が動作した。 MIROSLAV そのものは、XP用しかまだ出ていないが、 VST音源である事もあってか無事に動作した。

    調子に乗って、マザーボードのドライバも出ていないか探しにいった。 以前ダウンロードした Vista 用ドライバはエラーが出てインストールできなかったが、 もう一度、ダウンロードしたら、リリース日は変わっていなかったが、 ファイルのサイズが以前と違っていたので、もしやと思い、 インストールしたら。成功してしまった。進展ありである。 しかし、残念な事に、CPU温度を測るソフトは、Vista 対応と書いてあるのに、 動作しない。これは、しばらく待ってみる事にする。

    着々と Vista 用ドライバが出てきている。思ったよりもメーカの対応が早いような気もする。 Vista に光か?話は変わるが、アルティメット版専用ソフトが2つ更新されたようだ。 ビットロッカーとポーカ。バグ対応版だろうか?本当に全部で3つだけなのか? もうこの際、壁紙でも、見た目だけが違うアルティメット版の時計でも良いから、 アルティメットユーザだけが使えるソフトを出して欲しいと祈るばかりである。
2007-03-03 状況
    MIDI鍵盤から Score Editor へのデータ受け渡しの複数化対応が完成した。 今度は、Score Editor から、MIDI音源への受け渡しについて開発を始める。
2007-03-02 状況
    MIDI鍵盤の情報を Score Editor に伝える部分が出来た。 今度はこれを複数音源対応にする作業を行う。 これができれば、ほぼ複数音源の仕組みは完成となるはずである。 ようやく開発のリズムに乗り始めた。 細かい部分について開発しなければならない点が山ほどあるが、 あまり考えず、かたずけていこうと思う。

    Vista で1つ問題が解決された。 デジタルカメラのメーカにて Vista 用ドライバが公開されたので、 入れてみたら、Vista 標準の画像取り込みソフトが起動するようになった。 「取り込みました」とメッセージが出るがどこに取り込んだのかよくわからないが、 格納したいフォルダへ後で自分で手動で移動し取り込みが完了。 XPならば、取り込み先を指定できるが、Vista で、それが出来るか不明。 操作手順がXPよりも多くなるのが難点であるが、 ようやく1つハードウエアが Vista で動作するようになった事は、 とても大きな進歩だと思う。現時点で SC-D70 音源とMIDI鍵盤を含めて 3つハードウエアが動作するようになった。 Vista を快適にできるかどうかは、ハードウエアメーカの対応次第だと思う。
2007-03-01 状況
    快調である。自分以外にも体調面で苦労している事を知ると、 なぜかがんばる気になれる。 苦労しているのは自分だけではないという安心感なのだろう。

    開発のほうを再開し、鍵盤画面や操作が大枠完成した。 結局シンプルな方向となった。細かいことは後にしても良いと判断した。 複数音源対応のほうを優先するべきである。

    音源が複数になると、とたんに規模が大きくなる。 あらゆる部分が複数の考え方になり「選択」という要素が出てくる。 これが操作性を妨げることになるので、なんとか分かりやすくする工夫が必要になってくる。 今まで悩んでいた多くはこのあたりの工夫である。 プログラムを組める人ならば、配列の数を増やせばよい。 と考えるが、操作性の工夫を考慮するとそう簡単ではない。 Score Editor 1.0 が、単一音源であったのは、当時悩んだ結果良い案が浮かばずに見送ったためだった。 意外な事にそれが使いやすさの1つとなり Score Editor は、DTMの知識がまだなくとも、 純粋に音楽をやってみたいといったユーザにも支持される事になる。 1.0の仕様は変えられないという事である。 互換を保ちながら複数にしなければならないから大変である。

    鍵盤においても音楽をやってみようというユーザの事を考えて、 それなりに考えた。画面ができたので、 いよいよMIDI鍵盤で音を出す仕組みを考える。 余計な事を考えず、自然体でアイディアを出す。 たぶんうまくいくはずである。

    また Vista の気になる所を見つけた。 メールの着信音がするのに、メールフォルダには何もない。件名すら分からない。 という現象である。Vista のバグでなければよいが。スパムフィルタであると信じよう。 (スパムフィルタである事が後に分かりました。)

    これも致命的。mid ファイルをメディアプレイヤで再生できない事がある。 というもの。独自の音源で再生しようとするためなのか、良く分からないが、 転送しようとしています。のメッセージと共に異常終了。 特殊な mid ファイルなのだろう。しかし、転送というのが気になる。 ウイルスか? Vista は、セキュリティ面でも叩かれていないので、 実に心配な所。いくらUAC等々を取り入れても、権限を持つアプリに忍び込めば、 関係ない。世の中完璧なものなどない。叩かれていない事が心配だ。

    それは、ともかくとして、メディアプレイヤの再生先を、 外部音源を指定する事ができないのである。 生の MIDI を外部音源で聴きたいのにそれができない。 前から気になっているのだが、OS上にMIDI再生デバイスの設定が見つからない。 MS音源なんかで聴きたくない。そもそもSC88用のMIDIをなぜ、MS音源で聴く事を強制されるのか? エクスクルーシブもまったく無意味になる。ひどい話である。 まあ、専用の世にあるMIDIプレイヤを使えば、Vista でもきちんと再生できたので、 凝った MIDI の場合は、こんな風になるといった具合かもしれない。 Score Editor でも、MIDIを再生できるようにしたいという意欲が湧きます。

    あと、外部音源を落とすたびに、コントロールパネルの音源が解除されるのをなんとかしてほしい。 解除されない方法が見つからない。XPではできたのに。 毎回コントロールパネルで、出力先の変更をしなければならない。 PCの電源を入れる時に、音源>PC、落とすときは、PC、音源。 の順にすれば、設定は維持される。

    (不要な出力デバイスをOS側で無効にし、必要な出力デバイスを1つだけにしたら、 音源だけON/OFFしても設定が維持される事が後に判明しました。)

Since 2000 (C) Studio ftn
http://studio-arts.bglb.jp/studio-ftn/