
|
Studio ftn Score Editor Classic 6 の開発状況を報告します。 おしらせ
新しいURL http://studio-arts.bglb.jp/studio-ftn/ あらすじ
![]() 2008-01-31 状況
AUDIOミキサが楽譜ごとでなく Score Editor で1つとなり、 共通化された事で、ミキサのパラメータが保持できなくなってしまった。 ショック対応が大きく影響したのはこの部分だけである。 これは困ったものである。更に困ったのは、AUDIOを停止させないと、 ミキサの構成を変更できない事である。これはマルチドキュメント問題により、 楽譜切り替え中は、AUDIOの停止が出来ない。 ミキサの切り替えについては、MIDI音源と同じように、 ユーザがアクティブボタンを押した時だけ、切り替わるようにすれば良い。 ミキサのパラメータはどこに持つかといえば、楽譜側かパートか音源かCHか? このあたりの仕様を変更しなければならなくなった。 サクッと変更してしまうのも良いと思う。 しかし、ミキサに関して、開発中ながら不満が見つかった。 マルチティンバー音源の場合、音源全体で、ミキサ1パートとなる。 しかし、マルチティンバー中のあるCHにINSエフェクトをかけたい場合、 これでは困る。マルチティンバーのCHごとにミキサパートを用意する仕様が、 とても欲しくなってきた。 ただ、これをやるとルーティング制御の設計がとても面倒で時間がかかりそうである。 どうせ、ミキサパラメータの持ち方を変更しなければならないとなると、 このあたりも一気にやってしまうべきか、とても悩んでいる。 まずは、リリースをしてから練りたいので、 ミキサの充実は6.01以降にする事となると思うが、 ひとまず、どのようにパラメータを持つか考えてみたい。
特に MIROSLAV は起動と停止に時間がかかる。 たとえばAUDIOビット数を変更したとき、VSTの起動と停止をすると、 時間がかかってうんざりする。 そもそもビット数は Score Editor 側のミキサで関係し、 VSTには関係ない。 ただ、サンプルレートとブロックサイズを変更したときは、 VSTの設定を変更する必要がある。 しかし、なにも再起動までしなくて良いのである。 出来ることならやってしまいたいと思い、 連動処理を見直している。 そのほかといえば、いろいろとテストしたが目だった問題はない。
しかし、ソフト終了時に異常終了するや、整合性が取れていない箇所がいくつか見つかっている。 これらを全て見つけて対応すれば、再びα版の完成である。 その後すぐにβに向けての中断していた残件対応を行う予定である。 ともかく、もう一度テストをしなおさなければならず、 作業項目を出していかないと、何をやってよいか途方に暮れてしまう事がある。 ただ、本来やるべき作業が中断され、それ以外の作業が増える事で、 焦りが生じてしまいがち。 こうなると、進みが遅くなるし進んでいる実感が沸かないので要注意。 ここは、おちついてゆっくり6.01で作曲し、 見つかった問題を書き留める作業を行いたい。 ショック度の高い問題が見つかったわりには、短い時間で対応できたと思う。 その分、落ち着くための時間だと思ってテストをしたい。
使用感としては5.55に近くなった。 余計な連動処理が要らないので、とても開発が簡単である。 馬鹿みたいに簡単だ。しかも、操作性としては、特に不便さを感じなく普通である。 最初からこうしていれば良かった。 おそらく半年は無駄な時間を費やしたと思う。 でも、もう終わった事なので、気にしない。 無駄とはいえ、その間、いろいろ必要な機能が思いつき、 当初は入れる予定のなかった、いろんな機能が増えたというメリットもあると思う。 正直どこから手を付けて良いのか分からずしょんぼりしている。 演奏ができるようになったので、次は楽譜の保存と読み込みだろう。 保存する情報も少なくなる。ハードウエア側の共通設定は 楽譜に保存する必要がなくなったからである。
Score Editor は、トラックという概念がないため、 その曲で使用する音源を選ぶ必要がある。 そのため2段階の設定が必要となってしまったが、 操作をしてみると、違和感はそれほどない。5.55と同じように使用できる。 もう一つ音源を使いたければ、そのとき、2段階目の操作を行えばよい。 この2段階操作がいやだったので、今まで苦労して操作性を追及したが、 その方法が物理的にできないと分かれば、2段階方式でいくしかない。 しかし、やってみると、意外とこれがわかりやすいのかもしれない。 音源がない場合、黒い画面を表示できなくなるので、悩みであったが、 この2段階方式であれば、無音のデバイスを選ぶ事で、画面はそのままとなる。 つまり、デバイス側と楽譜側で完全に分離されたのである。 これは、音源がない環境でも、全ての編集が可能であり、 音源のある環境に楽譜を持っていけば、すぐさま演奏可能となる。 ある意味、こっちのほうが良いのかもしれない。ショックがあって良かった。 大幅な修正が必要となったが、残件としては、いくつかしかない。 楽譜や演奏について考えたり画面について考える必要はない。 デバイス部分以外は全てできているので、この部分の修正さえできてしまえば、 なんとかなるはずだ。 画面関連が終わったので、デバイスの起動停止関連の作り直しに着手したい。 AUDIO側に関してはほとんどそのままで良い。MIDI側のみ、大きく修正が影響する。
残念な事にマルチドキュメント切り替え上でデバイスの制御処理を入れる事は、 不可能であるとの判断に至った。 マルチドキュメント処理のタイミングをずらす方法も試みたが、 マルチドキュメント自体の処理がうまくいかなくなる事が分かった。 つまり、どうしようもない。とうとう行き詰った。 解決するには、音源の構成をソフトで1つだけ共通で持つようにしなければならない。 なんとか、楽譜ごとに設定を持ちたかったが、マルチドキュメントの問題によって、 実現が不可能と判断。Windows の仕様なのでどう仕様もない。 完成が近いのに大幅な改良が必要になり、ショック状態である。 これで、世の音楽ソフトがソフトで1つだけ音源の構成を持つ事が理解できたし、 ドキュメントを切り替えても、音源が切り替わらない理由が分かった。 はじめから Windows の制限が分かっていれば、こんなに苦労はしなかった。 し、無駄な開発に時間を費やす事もなかった。 しかし、もはや、実現方法が1つしかない事が決定したので、 後はそれを実現するように改良するだけである。 マルチドキュメント制御では、何もする必要がないので、 ややこしい作りになることもなく、やっかいな現象が出る可能性もなくなる。 結果的に、開発がしやすくなり、ソフトの安定性が極めて高くなる。 それに、世の音楽ソフトと同じような仕様になる事で、違和感も少ないだろう。 ドキュメント切り替え時も処理が重くならず快適になる。 環境設定を行わない限りデバイスはいじらないので、ソフトの動作が軽くなる。 考えてみれば、良いことばかりではないか。 マルチドキュメントで音源構成を持つ方法はできなくもない方法を考えたが、 また、最後の最後で問題が見つかっても困る。 ここは素直に、コンピュータの構造に従うとする。 言うならば、Score Editor 5.55 の構想と同じになるとも言えなくもない。 余計なことを考えすぎたのかもしれない。 まずは、世の音楽ソフトと同じ基本スタイルでデバイス構成を実現し、 うまい方法があれば、後から改善したい。 ということで、デバイス構成の持ち方を大幅修正しなければならなくなった。 理想があっても実現できない部分もある。妥協が必要といった所だろう。 この改良を終えた後、残件数はおそらく30は出るだろう。 仕方ない。とにかく前に進むしかない。すでに、その作業を進めている。
なんとか厄介な2つの問題の対応が終わった。 下手したら大幅な仕様変更が考えられたがなんとかそれもなく対応できた。 ヒヤッとする一瞬であった。 結局、あまり仕様をややこしくするのも問題だったため、 MDIのフルスクリーンとか関係なく、 最後に開いた楽譜がアクティブになるようにした。 楽譜を切り替えても、音源はアクティブにならない。 この時、画面下にそれを示すとともに、 音源のアクティブ化が必要である事を示すボタンを出現させる事にした。 必要であればそれを押せばアクティブになる。 ボタンを押さなくても演奏をすれば自動でアクティブになるようにしたので、 これで大きな問題にはならないと思われる。 複数画面を使う場合は、大抵はコピー編集の時なので、 いちいち音源をアクティブにする必要はない。 必要であればユーザがアクティブボタンを押せば良い。 ほかの人の楽譜を読む場合も音源がない場合の設定を複数音源分持つ事で、 問題は回避した。これで、楽譜を読めばすぐに演奏可能な仕様となった。 これで安心と思ったら更に厄介な問題が1つ生じた。 デッドロック関連である。 どうやら、マルチドキュメントの切り替え中に、 Windows メッセージ処理をすると、フリーズするようである。 この時のタイミングでは可能な限り処理をしないように改良したほうがよさそうだ。 しかし、デバイスを一時的に停止しないと、異常終了してしまう。 ドキュメント切り替え時にこの処理ができないとすると、 一旦処理全体をキューに溜め込んで、ドキュメントが切り替わった後に、 処理をするようにしなければならない。 なんとも厄介だ。 いっその事、ドキュメント切り替えイベントを仮想化してしまえば、 現状どおりの処理でいけるかもしれない。 複数音源対応は、とことん作者を困らせる。
譜線属性が増えた事による範囲コピーなどの音符の補助線描画の対応が 思いのほかあっさりと対応できた。 対応には苦労しそうだと覚悟を決めていたが、簡単だった。 残件もどんどん減り、これは収束かも?と思っていたら、 厄介な残件が2件見つかった。ショックを隠しきれない。 マルチドキュメントに関する問題が1つ。 複数の楽譜を開く場合、楽譜を切り替えるたびに、 音源を初期化しなければならない。 音源の初期化は、処理に時間がかかるため、厄介である。 更に、厄介なのは、処理中に、別の楽譜を選択すると、 マウスイベントだけが、蓄積され、初期化処理が終わったとたんに、 ダブルクリックとして認識され、結果的にフルスクリーンに切り替わってしまう。 Windows がそうするので、こちらでは対処できない。 まず音源初期化は、MIDIの場合に必要となる。 これは、1つのハードウエアを複数の曲で共有するからであり、 常にアクティブな楽譜の設定に音源の設定を反映しなければならない。 これは、避けられない。5.55では、音源が1つだし、 制御するパラメータが少ないので、演奏時に毎回初期化をしている。 なので問題ない。しかし、6.01は、扱えるパラメータが膨大であるし、 複数音源である。演奏時に初期化すれば、演奏までに時間がかかる。 思い切ってマルチドキュメントをやめてしまうかと考えたが、 複数 Score Editor を開いても、同じ事がおこる。なのでシングルにしても解決しない。 これには困ったが、妥当な対策で乗り切るしか方法がないと判断した。 楽譜を開くときは必ず初期化する。 複数開いた楽譜を切り替える時は、音源は初期化しない。 もし、初期化していない楽譜で演奏した場合は、 そのときだけ初期化処理をする。フルスクリーンの時は、 楽譜を切り替えるたびに初期化する。 おそらくこの方法でなんとかなる。 普通は、MDIフルスクリーンで使うと思う。 そのときは、一切問題は生じない。 MDIを並べて表示したときは、たいてい、コピー&ペースト作業が目的だと思うので、 音に関しては気にしないと思う。演奏すれば初期化されるので、 この時点で問題がなくなる。とにかくややこしい。 念のため、手動で初期化できるメニューも付ければ問題ない。 ひとまず、このような仕様にしたい。 もう一つの問題は他の人の楽譜を読む場合である。 だれもが同じ音源を使っているとは限らない。 当然、他の人の楽譜を読めば、音源が違うので、 音が鳴らない。毎回自分用の音源に設定を変更する必要がある。 これは、不便である。 これも、悩んだ結果、もし、その音源がない場合は、 設定ダイアログを開くようにし、初期設定をする。 以降その設定が自動で適用されるようにする。 これを、複数音源分、用意しておけば問題は解消されると思われる。 この問題は、MIDI音源とAUDIOデバイスに関して発生する。 つまり、存在しない音源だった場合、どの設定を使うのか? という設定を1回だけすればよい仕組みにすれば、 以降は、その設定で使用できる。 なので、他の人の楽譜を読んだ場合は、自分の設定で自動で初期化され、 すぐに演奏できるという仕組みである。
以前の形式の楽譜を読む場合、 MIDI再生デバイスなどの設定をしなければならない。 6.0が複数音源になるため、その設定が古い楽譜に合わない設定をしていると、 楽譜が読めない。 この問題についてはかなり前から悩んでいたが解決できそうである。 古い楽譜を読むときに、設定画面を出してしまう方法である。 これで、読み込んだ後に、音が鳴らないといった問題がなくなる。 この時に必要最低限の情報だけ設定するようにすることで、 6.0の音源構成に移行する事ができる。 しかし、読み込んだ楽譜をすぐに6.0で保存するとも限らないし、 いろいろなバージョンの楽譜があるはずで、 楽譜を読むたびに、設定作業をするのは苦しい。 そこで、一度設定したら次回はその設定を自動的に適用するチェックを対応し、 以降はスムーズに楽譜が開けるようになる。 ためしに作りこんでみたところ、けっこう快適な操作性であった。 これを、6.0を初めて使用する場合にも対応すれば、 スムーズに6.0へ移行できると思われる。 特に Score Editor は、初心者でも使用できなければならないため、 デバイスの詳細設定画面が開くと、初心者は混乱する。 最低限の設定だけたずねるようにすることで快適になる。 分からなければキャンセルしてしも問題ない。 その場合は、パソコンの音源が自動的に選択される。 もちろん、後から、詳細な設定をする事が可能である。 慣れてきたら、6.0の複数音源を使い始めるなど幅を広げていけばよい。 しかし、このあたりの仕様はややこしいところもある。 これは、Score Editor がマルチドキュメント方式のためでもある。 楽譜によって使用する音源もさまざまである。 普通、他の音楽ソフト等は、ソフト全体に音源の設定をする。 しかし、曲によってはすべてその設定になるとも限らないし、 VSTもいつも同じとは限らない。不要な設定を毎回起動するのは不経済である。 それと、楽譜をユーザどおしで交換する場合、 必ず、ユーザ間での環境が一致している事はまずない。 そこで Score Editor は、楽譜ごとにデバイス構成を構築できるようになっている。 もちろん、起動時の共通設定も可能になっている。 こうすることで、いつでも過去の楽譜を読めば、その状態を復元できるのである。 これで、音楽を作成するときに、デバイス構成の事は気にしなくて良くなる。 Score Editor は、すぐにでも作曲が始められなければならないソフトなので、 このような他の音楽ソフトでは見られない方法を採用している。 この仕様を決めるのと画面のデザインや操作性に関しては、かなり苦労した。 何より難しかったのがその開発である。 しかし、今では、快適に操作する事が可能な仕様になったと思う。
HyperSonic2 (HS2)終了時にフリーズする問題が解決した。 正確には、HS2 が原因ではなく、Score Editor 側の問題である。 なぜか、HS2 を使用したときだけに発生する症状であった。 まず、基本的な Score Editor 自身の開放処理を改善させた。 すると、HS2に限らず、何もVSTを使用しなくても、 Score Editor 終了時にフリーズするようになった。 原因は、Windows のメッセージ処理にあった。 なぜか、ウインドウが全てなくなった後に、メッセージを取得する関数を呼ぶと、 その中でフリーズしてしまうようだ。Windows 側でフリーズするので、 困ってしまったが、デバイス開放関連を、メインウインドウが閉じる直前に終わらせてしまう事で、 フリーズは生じなくなった。そんなAPIの仕様だったか思い出せないが、なんとかこの厄介な問題が解決した。 おそらく、メインウインドウのハンドルをデバイスが握っていて、 先に、メインウインドウを開放してしまうと、デバイス側でフリーズするのかもしれない。 いずれにしても、開放順序の間違いであり、修正できて良かったと思う。
対応しても次々に新しい残件が見つかる。 ほとんどはプリセット関連の連動処理にてバグが見つかる。 6.0においてプリセット関連は特に開発には苦労している。 扱える情報が多くなった事が主な要因だろう。 そして、初期化のタイミングが多様な事が原因である。
対応にあたって、けっこうな修正が必要であった。 ドラム楽器はノート0−127まで全て使用できる場合がほとんどなため、 画面上の鍵盤では表示しきれない。 そのため、鍵盤をオクターブスクロールする対応を行った。 更に楽器一覧からドラムを選ぶ場合、鍵盤を自動スクロールして、 選んだノートがどこなのかを表示する対応を行った。 そして、鍵盤がスクロールしている事が分かるようにするために、 オクターブ番号を鍵盤に表示するようにした。 ドラム楽器選択画面そのものも鍵盤表示し、ノート番号が分かるような画面に改良した。 概要としてはこのような感じであるが実際に対応するとなると、 連動関連の処理や見えない処理が更に必要なためいろいろと作りこみが必要であった。 新しい機能なので、作りこみが多くなるのは仕方がない。 しかし、この機能は他の機能との影響が少ないため、問題なく機能追加が終わった。 これとは別に、HyperSonic2 終了時にフリーズする問題であるが、 楽譜を閉じるだけならば、なんら問題なくフリーズもしない事が判明した。 これは、解決の手がかりとなる。Score Editor 全体を HyperSonic2 もろとも閉じる場合、 フリーズするようだ。手がかりが見つかったので思ったほど苦戦する事はなさそうだ。 安心した所で、先に対応できる残件を対応していくことにしたい。 所で6.0の安定性がかなり向上してきた。 今までは、いつおかしくなるか不安になりながらも、 頻繁に上書き保存をしながら作曲していたが、 現在では、作曲する作業であれば、心配なく普通に行える品質になってきた。 演奏時処理の残件が片付いたからだと思う。開発は順調である。 ただ、難しい残件が残ってきているため、1つ対応するだけでも大変である。
というのも、今回VST音源である HyperSonic2 を使用して、 作曲をしてみたのである。ここでいくつかの問題が見つかった訳である。 特に HyperSonic2 (HS2)終了時にフリーズする問題は解決に時間がかかりそうだ。 ![]() Score Editor 6 からHS2が使用可能に。 こちらもマルチティンバーでテスト中。 トランス曲を作ってみる事に。Score Editor 6 から独立したドラムパートが複数使用できるので、 HS2を使う場合も快適だった。この音源はけっこう楽しい。確実にトランスの楽器が再現できて嬉しい。 D70ではどうやっても難しかったのにHS2なら簡単だ。しかも起動も早いし快適である。 trans2008011501.wma せっかくなので作曲中の実際の演奏も MediaEncoda で録音してみた。(wav ファイルだとサイズが大きすぎるため)。 曲はコード進行を決めている最初の最初の段階なので完成していないがご了承を。 ラフスケッチ段階である。コードも2音しか同時に鳴っていない。今回は Score Editor でHS2が鳴っている感動を伝えるまでである。 話は戻るが、後は、音源定義がない場合どうするかという問題である。 VSTマルチティンバー用の定義が必要だがVSTによって全て違うので、 用意することは困難。かといってGS用やGM2用の定義が使えるかは疑問である。 下手なコントロールをするとVSTが誤動作してしまうのである。 HS2 の場合、楽器切り替えが自動的に動作し、GUI側で選らんだ楽器が、 勝手に変更される。といった事が生じる。HS2用の楽器一覧を用意すれば問題はないが、 初期の状態で起動する場合困る。 そこで、VSTマルチ用の標準定義を用意する必要に迫られた。 この場合、楽器一覧は定義できないため、ドラム機能にて問題が生じる。 音源によって、どのノート番号がどのドラムに割り当てられているか統一性がないからである。 VST音源の場合、特に統一性がない。 このような場合の支援機能として、画面上の鍵盤上でドラム楽器を鳴らして、 気に入ったドラムを登録する機能が必要になる。 これがないと、たぶん44がハイハットだろう。とか、番号を変えては鳴らす。 という作業を繰り返さなければならなく、苦しい。 つまり、楽器一覧がなくてもある程度操作できるように改善する必要が出てきた。 音源定義がなくても、とりあえず普通に使える。という仕様にする必要がある。 これも6.0の新機能という事になる。
インサーションの初期化が行われないという問題を対処した。 少し前までは動作していたのにどうしてか不思議だった。 調べてみると、ちゃんと機能は作りこんであった。 実はインサーションの定義画面を作成した際に、 一部のパラメータが保存されず。動作がおかしくなっていた事が判明。 インサーション定義画面を修正し、無事動作するようになった。 最初、エフェクトによって使用しないパラメータを使用すると、 動作がおかしくなると思い込んで、そのエフェクトに必要なパラメータだけ、 動的に使用できるように作りを変更した。 問題の原因とは違ったが、必要なパラメータだけ内部で使用するようになったので、 MIDIファイルに書き出す時など動作が洗練される。 それと、心なしか起動が早くなった。不要なパラメータを初期化しなくなったからだと思う。 起動がスムーズになったので、助かった。 しかし、6.0から全ての定義を定義ファイルに書くため、 それを読み込む必要があるし、プリセットの読み込みなどの処理が増えたので、 5.4に比べると起動速度は若干遅い。 これは、5.4の起動が早すぎるからであって、普通の速度だと思う。 6.0の起動時間はだいたい1.5秒くらいである。使用する音源が増えればもちろん時間はかかる。 デバッグ版なので起動が遅いが、リリース版でコンパイルすれば、処理がもっと早くなると思う。 処理速度に関しては、リリース後に洗練させていきたい。 あと、フリー版ユーザから応援メールをいただいた。 6.0のリリースを楽しみにしているとの事。後にシェア版に乗りかえる予定との事。 Score Editor が出た頃から使用しているとの事で、何年も Score Editor を使いつつ、 更に6.0の期待も高いようで、とても嬉しい。逆に開発が遅すぎて申し訳ないくらいだ。 ただ、遅くなる分、Score Editor は、こだわった作品だと自負できる。 6.0は、4.9〜5.4での仮対応を全て見直した作品なので、 市販ソフトらしい仕上がりになってきたと思う。もちろん6.0リリース後も機能追加は続く。
バグを修正すると、原因が見つかった時に、 寒気が走る。これを見逃していたら大変だったと。 とんでもない予想外のバグが潜んでいる事がある。 バグを直してよかったと思う瞬間である。 たとえば、画面の描画が砕けるといった現象。 これは、起動の重いVSTアサインする時の影響でもあったが、 やはり気になるので、落ち着いて調べていくととんでもないバグが潜んでいた。 処理中なのにメモリを開放しているといった具合。 これは、画面の描画とはまったく関係ないバグなのであるが、 ついでに見つかるといった具合。 つまり、動作がもろい箇所は、プログラマの目があまり行き届いていない箇所。 という事になる。 もろい部分を注意深く観察すると、そこには他のバグが潜んでいる。 バグを直すとこんなに良い事があると思い知った。 しかも、画面が砕けるバグも改善できた。 それには落ち着いた態度で取り組む必要がある。 この不具合1つに一生かけても構わない。 といった態度である。じっくりと現状の処理を理解し、 最小限の適切な修正を加えるのである。結果的に開発の速度が上がる。 残件を消すことばかり考え、あせってしまうと、 適当な修正をしてしまうので、修正した実感が沸かないし、 実際は他の問題が生じたりする。 落ち着いた態度による取り組みが良かったのか、 運がなければ絶対に分からなかったバグが修正できた。 デバイス開放時に時々であるがデッドロックが生じていた。 原因も分からないし、めったにおきないので、放置しようとしていたが、 頭の中では心配だった。何しろフリーズするのであるから。 関係ない部分の修正を行う際に、 デバッグでメッセージボックスを入れたとたんに、 デッドロックが生じなくなったのである。 すぐに分かった。Windows メッセージ処理をしなければならないと。 そして、このデッドロックのバグはたちどころに直ってしまった。 これは、本当に安心感が高まり、楽になった。 いちお、デッドロックの箇所には、タイムアウト制御を入れたので、 更に安心だと思う。 こうやって、落ち着いて開発に取り組む事でどんどん良くなる。 現時点では、かなり動作が安定してきた。 ありえないような操作をしたり、いろいろと操作しても、 きちんと動作するレベルになり始めた。
特にVSTのアサインに時間がかかる音源は厄介である。 アサイン中は画面の描画が行われなくなるため画面が砕けたようになる。 これを回避するには、VSTごとにスレッドを作成するのが妥当かもしれない。 VSTのマルチスレッド化については、今後の課題としたいので、 ひとまずアサイン中は画面が砕けるのは我慢するしかない。 音源によっては、ちゃんとアイドル処理をやってくれるので問題ないが、 やってくれない音源もある。いずれにしてもアサインが終われば、 画面の描画は正常になる。 根気よく進めていくしかない。開発には時間がかかる事を認めてこつこつ進めたい。
なので、再びプリセット機能の仕様を見直したいと思う。 見直しは最後に行うとする。 仕様がややこしくなる原因として、プリセットの分類にある。 各種類ごとに、分類がある。 システムプリセット、ユーザプリセット、その他のプリセット。である。 システムプリセットは音源にもとからあるプリセットの事で、 ユーザプリセットは、ユーザが作成したプリセット。 その他のプリセットは、他の音源で読み込むためのプリセットである。 この分類がややこしい。ユーザはどの分類を選んで良いか分からないと思う。 特に、その他のプリセットは何の事か分からないと思う。 そこで、その他のプリセットを無くして、エクスポートとインポートを対応し、 プリセットを他の音源に移行できる仕様にすると、 システムとユーザの2種類になるので分かりやすい。 プリセット機能は、ファイルフォーマットにも影響するので、 後から仕様変更がやりにくくなる。リリース前によく仕様を練っておきたい。 これとは別に、バージョン5.55をリリースした。 バージョン表記は新しい方式による表記を採用した。 本来は、5.4であるが、5.54とメジャーとマイナーを区別する。 マイナー54の次は55なので、5.55となる。 5.55は、6.01ではなく、URL対応版の5.4である。 Studio ftn のURLが変更となったので、新しいURLにした5.4を先に、 リリースしておく事にした。 これは、6.01のリリースがまだ先になると見込んだからである。 2月にはリリースしたかったが、難しいかもしれない。 早めに5.4にURL対応をしておかないと、ユーザが混乱すると思った。 あとは、ベクターの更新をすれば、古いURLは削除できる。 ひとまず心配事を早めに片付けたほうが、安心して6.01の開発に取り組める。 それと、6.01をリリースする際も、どちらにしてもURL対応が必要なので、 5.55の段階でやっておく事で、6.01での負担も軽くなる。 5.55にて、Vista でのインストールが簡単になる。 URL対応に伴い、インストーラやダウンロードマネージャなど、 多くの修正を行った。この作業が6.01ではもうやらなくて良いと考えると、 気持ちが楽である。
今まで不思議に思っていたのであるが、 ダイアログのボタンの位置がほとんどの画面で少しずれている。 なんでこんなに大雑把なのかと思いつつ、 ちょこちょこと修正していたのであるが、 XPで開発していた時は、これでよかったと判明。 6.0はVistaで開発したため、ウインドウ枠の関係で、 位置がずれてしまった訳である。 これは、よろしくない。ということで、 ダイアログのレイアウト調整関連の下組みを新たに開発している。 全てのダイアログ画面でこの新しい方式に変更しなければならないため、 この対応には時間がかかりそうである。 これが終われば、どんなOSでも適切なレイアウトになるので、 OKボタンの位置が不自然になる事はなくなる。 あと、これとは別に、パートやページを削除した場合、 カーソル位置情報が更新されていない事に気がついた。 その修正を行った。6.0にてパート属性を増やしたため、 楽譜描画がおかしくなるなどの症状が目に見える形となった。 これについては修正を終えたが、 範囲コピーなどの時に、パート情報を結び付けなければならなくなり、 この修正は面倒な事になった。これは、5線以外に1線譜を対応したため、 音符の補助線の描画に影響が出てしまった。
残り27件は少々面倒な残件ばかりであるが、 落ち着いて対処していこうと思う。
出てきた残件は50項目に及ぶ。気が遠くなりそうである。 しかし、ゼロからの作りではなく、ちょっとした修正項目がほとんどなので、 どんどん対応していきたい。 ひとまず、7件対処した。なので、残件は43項目という事になる。 6.0ではプラグイン検索パスを指定できるのであるが、 フォルダ参照のボタンがなかったので対応した。といった残件対応が主である。 フォルダの参照は、インストーラで使用した事があるが、 このダイアログを出す方法をすっかり忘れてしまって、 調べるのに時間がかかってしまった。コモンダイアログと勘違いしていたのが原因。 α版を使ってみての感想であるが、 仕様に関してはほとんど問題なかった。 それと、ポロポロと異常終了する覚悟でいたが、そうでもなかった。 かなりしっかりと動作しているといった感覚だった。 これには驚きである。出来たてのα版にしては安定している。 ひとまず、出てきた残件を対応したら、音源やMIDI鍵盤を起動した状態でのテストを行う予定。 この時、音源定義ファイルの作成も行う。いろいろな音源でテストを行うので時間がかかりそうだ。
ひとまず、α版が完成し、β版に向けての開発を行っている。 まず、気がついたのが、自動バックアップの必要性である。 自動といっても、異常終了に備えるものではなく、 世代管理的な自動バックアップ機能である。 ファイルフォーマットが6.0から大きく変更になる事が大きい。 もし、ここで上書き保存をしたら、もう戻れない。 まだα版という事もあり6.0のフォーマットのテストがほとんど行われていない。 果たして、上書き保存する勇気はあるか?ない。 作者自身心配なくらいだ。今まで作った曲が消えたらショックであるし、 かといって、自分でバックアップを取るのもめんどくさい。 楽譜ファイルフォーマットは今までも何度か変更されてきた。 今後のことも考え、世代管理は重要である。 ということで、6.0にて自動世代管理バックアップ機能を追加した。 開発も終えた。これで、安心して6.0を使って上書き保存ができる。 この自動バックアップであるが、ファイル内容が同じであればバックアップしない。 つまり、楽譜が変更されるたびに、バックアップされていく事になる。 ただ、上書き保存するたびにファイルができても困るので、読み込み時にそれを行う。 こうすることで、必要最小限のバックアップで済む。 だからといって、バックアップしてあるから、今のファイルは削除しても安心。 という事ではないので注意が必要である。 保存後にもバックアップを取っても良いのであるが、保存時に異常終了した場合、 壊れたファイルがバックアップされてしまう事になる。 なので、6.0では読み込み時にバックアップを取る。 似たような事ではあるが、少なくとも、いつも読み込んでいるファイルをバックアップしたほうが、 確実なのである。 他に気がついた点といえば、アサインの遅いVSTを使う場合、 進行状況を出せないか検討したい。もしかしたら出せないかもしれない。 5.4で出ないのであるから、ひとまずそのような機能は必要ない。 引き続き6.0を使って、いろいろと操作してみたい。 ![]() |