
|
Studio ftn Score Editor Classic 6 の開発状況を報告します。
あらすじ
![]() 2008-04-30
つまり、デバイスの最高音質でデータをやり取りする。 なので、わざわざサンプルビットで、音質を劣化させる必要はない。 しかし、困った事に、これでは wav ファイルが書き出せない。 wav ファイルにはサンプルビットの考えがあるからである。 そこで、wav 保存時に、AUDIOフォーマットを設定するよう、 修正を行っている。つまり、演奏時のフォーマットとは別に、 ユーザが wav 書き出しのAUDIO品質を自由に指定できる。 この仕組みを実現するには、wav 保存時にサンプルレート等を、 一時的に変更する必要がある。終わったら戻す必要もある。 この処理を開発中。
全てのオーディオインタフェース用のバッファ処理の開発が終え、 さらに、ASIO終了時の異常終了の問題が解決した。 これにてASIOに関しては調査完了である。 早速、バージョン6にASIO処理を埋め込み始めた。 設定画面等々を追加し、ついに Score Editor で、ASIOが動作した。 MIDI鍵盤でVSTを演奏しても全くレイテンシー(遅れ)を感じない。 かなり、快適である。画面上の鍵盤をマウスで操作しても、 すぐに音が鳴り出すので、シャキシャキした感じである。 さらに、ASIOは、可能な設定の範囲を検出できるので、 AUDIOの設定パラメータの数値によって、動作しなくなる。 といった事がないのも嬉しい。 ただ、設定範囲の情報を取るには、ASIOデバイスを起動しなければならず、 演奏中でのデバイス画面を開く事ができない。 画面を開くには演奏を停止させASIOも停止させなければならない。 このあたりの連動処理は、また、ややこしくなる。 何か快適な方法がないか考えてみたい。 と、書いていたら、思いついた。 ASIOが起動しているなら、ASIOを起動する必要はないので、 そのまま情報を取れば良いのかもしれない。 いずれにしても、連動関連は、よく考える必要がある。
バージョン7のほうであるが、現在、設計中である。 特に、1パートにフレーズを1つ以上書いた場合の、 音符の向きの改善を行えるよう試行錯誤している。 それと、連符の考えを、通常の音符と融合できないか検討している。 もし、それができれば、前打音でも連符が使える、 さらに複数前打音も可能にしたいと思っている。 あとは、以前ユーザから報告いただいた、 臨時記号のタイのバグ修正が可能な構造にしたい。 A→A♭をタイでつなぐと、臨時記号が無効になるという。 じつは、この処理がなかなか難しいのである。 もうひとつは、連衡を自由に簡単に楽譜上で作成できる機能。 を検討している。 これらが考慮できる構造にしてから、時間軸記号対応を行う。 時間軸のほうはなんとかなりそうであるが、上記4つが難しい。 これらは、かなり以前から、逃げてきたとも言える部分で、 バージョン7で、決着を付けたいものである。
実は、普通の事かもしれないが、今回は、 バージョン6に手を入れないで、バージョン7で使用する機能の部品を、 別々に作成し、全て出来上がったところで、一気にバージョン6に組み込むようにしたい。 こうする事で、バージョン6でバグが見つかっても修正不可能になる事はない。 バージョン5から6に移行する時、バージョン5に手を入れてしまったので、 バージョン6が完成するまでの1年間バージョン5を修正する事ができなかった。 このことは、大きなプレッシャーになる。前回の反省を生かすには、 可能な限り、部品化して別々に開発する事である。 バージョン7でやるべき事は、パートデータの内部改善と、 時間軸記号系の組み込みである。 あとASIOであるが、終了処理がうまくいかない。 まだまだ研究が必要である。
急いで、修正版#0418をリリースした。 まだ、バグが潜んでいたとは思わなかった。 しかし、それ以外は、かなり安定している。 作曲をしても、異常終了したり、プロセスが残ったりする事は一度もなかった。 とりあえず6.05#0418をベクターへアップする事にした。 安定するまで待っていたらいつまでも先に進まない。と判断。 所詮、人間など、完璧を求めても仕方が無いのである。 やり残した、中途半端な状況を、クリアしていくのが先だろう。 中途半端な状況とはベクターの値段が変更されたのに、バージョン5.0が公開されている点。 Studio ftn のURLが古いまま。そして、両方のアドレス(URL)が使える事。 先に、上記をきちんとしておいたほうがよさそうである。 これが、終われば、バージョン6の安定化の確認だけに専念できる。 安定しているのであれば、それで問題ない。 ところでASIOのほうであるが、自分の使っているAUDIOデバイスの、 バッファ処理だけ実装して、動作させてみたところ、見事に音が鳴った。 音が鳴ったとは言っても、単なる sin 波である。これを使ってテストした。 それにしても、美しい sin 波のサウンドである。Score Editor への実装が楽しみでもある。 ASIOを使って分かったのであるが、SC-D70 は、32ビットフロート48KHzAudioである事が分かった。 これが、この音源で、本来出せる潜在能力の姿であろう。 となると、24ビットの更に上の音質が楽しめそうである。 残念な事に、SC-D70 では、96Kを対応していなかったという事になる。 どうりで、耳で聞いても変化が無かった訳である。 これで、96Kのオーディオインタフェースを購入する価値があるともいえる。 D70 が、96Kを潜在的に対応しているのか、ずっと分からず、踏みとどまっていたのである。 もし、対応していたのであれば、96K対応を購入しても無駄である。 D70の潜在能力は48Kだと分かったのでこれですっきりした。
これで、残すは、ベクターアップだけである。 その前に、自分で使ってみたい。説明書作りで忙しくなかなか時間が取れなかったが、 やっと、自分のソフトを使う時間が取れるようになった。 数曲作ってみて、問題なさそうならば、ベクターアップして、 バージョン6の作業が大枠全て終わる事になる。バージョン7の計画も着々と進めている。 現在、暇を見ては、ASIOのテストプログラムを作成している。 存在しうる全てのAUDIOインタフェース用の、バッファ処理を、こっちが書いてやらなければならないようで、 まいっている。全てのデータ処理パターンは20種類くらいだろうか。 浮動小数の規格だけでも、こんなにあるとは知らなかった。
と言うわけで、ついに、バージョン6用の説明書が完成した。 ただし、ファーストステップマニュアル(ソフトウエア付属マニュアル)のみ完成である。 いろいろと、基礎知識に関しての章を追加したので、 興味があれば、参照していただきたい。 これで、ベクターへアップする準備が整った訳であるが、 作者自身も、バージョン6を使ってみたい。 どれほど安定しているか確認しておきたいのである。 それには、やはり、使ってみるしかない。 その間、説明書のフルセット版(オンラインマニュアル)も、 バージョン6用にする作業を行いたい。
バージョン6の説明書であるが、ファーストステップマニュアルに関しては、 95%完成した。あと2章分を残すのみである。 この2章分であるが、音源とエフェクトについての初心者マニュアルとなる。 Score Editor で対応している音源方式等について説明する章である。 音源についての理解と Score Editor が、どう音を出すかの理解が深まれば、 より、Score Editor がどのようなソフトであるが、理解できると思う。 このマニュアルであるが、まとまるのにとても苦労している。 ファーストステップが出来上がれば、ベクターにもリリースできる。 しかし、運が良いのか悪いのか、Classic 版で、入力デバイスの不具合をいただいた。 これは、運が良かったとしか思えない。下手したら不具合版を、 ベクターにリリースしてしまう所であった。パート不具合に関しても運が良かった。 毎度ながらであるが、不具合の報告をしてくれるユーザには、本当に感謝している。 もちろん、その恩返しも兼ねて、フリー版を残している。 入力デバイスに限っては、ユーザにかなりの貴重な時間を消費させてしまったに違いない。 しかし、こちらでは、再現できないだけに、貴重な情報に感謝している。 話は変わって、移調機能であるが、音部記号判定の単純ミスを修正したら、 無事動作するようになった。これで、移調機能の試作は成功である。 あとは、データ構造と操作方法が解決できれば、機能として組み込める。 バグが後を絶たないバージョン6であるが、あと一息だろう。 1年分の機能を一気にリリースしたので、さすがに今回は更新が多い。
繰り返し不具合の報告が、多数よせられた。 「1「2「1「2が動作しない事を初めとし|::|が3回繰り返してしまうなど。 後者はバグであるが、前者は仕様には含めていなかった。 今回、前者の報告が多数あったということは、バージョン5では偶然にも動作していたのだろう。 しかし、今回のリリースで、繰り返し関連は完全なものとなったはずである。 今回「1「2「1「2も正式に仕様に含めた。 基本的な繰り返しからバージョン5ではできなかった複雑な繰り返しも、 全て正常に動作する事を確認している。繰り返しテスト機能が役に立った。 繰り返し完全処理を早めのうちに取り組んでおいて良かった。 中には、楽器の練習で Score Editor を使用しているとの報告もいただき、 繰り返しの不具合は、致命的だと思う。 今回、長年夢見ていた?繰り返し完全処理は完成した。 どんなめちゃめちゃに書こうと、そのとおりに、楽譜どおりに演奏してくれるはずである。 今までは制限事項を含む繰り返し処理だったものが、今回、完全になり、 繰り返しに関しては、Score Editor が先生になることも可能になったと思われる。 しかし、当然、作者が予想していなかった、繰り返しを書けば、 正しく動作しないという事もありうるが、バージョン5は全てカバーしているはずである。 話は変わって、現在、移調機能を試作している。 かなり良い感じで動作している。音部記号の部分で問題はあるが、 これが修正できれば、移調が可能になる。 問題は、どのような画面仕様にするかである。 これがとにかく思いつかない。 移調に限っては、楽譜全体とパートだけ対応すれば良いので、 画面も簡単である。しかし、せっかくなので、 転調機能としても使いたいのである。そうなると、範囲選択機能が必要となり、 実装が困難となる。今のところ、ページの転調機能で我慢するしかないと見ている。 移調が可能になると、当然、音部記号の変換も欲しくなる。 それと、移調すると、音符の位置が動くので、パート幅を超えたり、 タイなどの記号も動かさなければならない。それと、ページ区切りにおける、 調号埋めや、ハ長調の譜面に限っては、調号がないため、調号を埋め込む処理が必要となる。 つまり、バージョン6の楽譜データ構造では、限界が生じる。 なんとか、移調機能をバージョン6で入れたいが、 やはり、バージョン7で機能を追加したほうが妥当なのか検討中である。 気が付くとバージョン6がかなり修正されてしまい、 バージョン7の試作版との処理やデータ構造に大きくずれが出始めた。 なんとか、データ構造だけでも、バージョン7のものに移行してしまいたいが、 なかなかそのチャンスがない。 やはり、バージョン6が完全に安定するまで、待たなければならなそうである。 繰り返しバグが改善されたので、説明書作りを再開したい。 それと同時に、移調機能の試作も進めていこうと思う。 ここで、いろいろ試すことで、バージョン7へスムーズに移調機能が対応できるからである。
¥マークの不具合は、どこに保存されるか分からない不具合でもあるため、 その緊急度の高さを今更ながら理解できた。そのため1件だけの修正であるが修正版を出す事にした。 それと、今までの、公開中の不安定なバージョンは公開を終了させた。 Vista のインストール不具合や、プロセスが残る。 など、ユーザに手間をかけさせるし、混乱させると判断した。 現在、安定度の高いバージョンのみをピックアップして公開中。 これで、ようやくバージョン6が安定したはずである。 あとは説明書作りだけである。
これでバージョン6は、ほぼ安定化したと思われる。 残すところ説明書作りである。しばらくは、これに専念したい。 それと同時に、作者もバージョン6を使ってみたいと思う。 作業は説明書作りが続くので、ようやく作者自身、作曲で使える時間が取れる。 実は、開発者用バージョン(デバッグ版)にて、 繰り返し記号に関してのテスト機能を追加した。 繰り返しに関しては、開発が難しく、今でも複雑な繰り返しを書くと間違った繰り返しになる場合があるかもしれない。 今後、繰り返しテスト機能を使えば、いちいち音楽を聴いて確認する手間が省ける。 ドキドキしながら耳で確認し、うまく動作しなかった時のショックは大きい。 再生が終わるまで結果が分からないので、ものすごくテストに時間がかかる。 修正したと思ったら別の繰り返しがうまく行かなくなった。という事も多い。 これが、瞬時にしかも自動でテスト出来るようになったので、今後、品質を上げていくことができそうだ。 それに、今まで動いていたのが動かなくなっていないかなど、不安になる事もない。 ただ、繰り返しに関してはテストデータを作っていかなければならない。 無限に存在する記述パターンを少しずつ蓄積していきたい。
正直、上記の不具合は、ランダムで出るため原因追求が不可能で、 作り変えない限り、修正はぜったい無理だと思っていた。 しかし、本気を出せば出来るものである。 上記の問題はあっさりと解決してしまった。 原因が分かると、なるほどである。修正版は近日リリース予定。 不安定バグが修正できたので、かなり、精神的に楽になった。 事実上バージョン6が完成した事になる。 原因の追究は、リリース版でしか生じなくデバッグできなかったため、 詳細にログを書き出すようにし、調べ上げたらいろいろな事が分かった。 ソフト終了時に異常終了するのは、AUDIOバッファ処理中に、 データ開放が動作してしまうためであった。ソフト終了というアクションは、 ユーザの操作なため、いかなるタイミングでも発動する。この事を忘れていた。 同様にプロセスが残る場合は、上記のときに、AUDIOの停止が動く場合である。 AUDIOバッファ処理中に、AUDIOの停止が動作し、デッドロックする事による。 更に、根本的にデバイス開放手順が間違っていた。というショックにも気が付いた。 また、サンプルレート等を変更した場合、その検出フラグをセットし忘れて、 実質、サンプルレート、ビット数、バッファサイズ、の変更処理が動作していなかった。 それなのに、デバイスは正常に再起動するため、いろいろな症状が出る。 例えば、再生が遅くなったり早回しに聞こえたり、無音になる。 バッファサイズが少なくなった場合は、確実に異常終了するし、バッファサイズを大きくした場合は、 演奏に雑音が入り始めるのである。 これだけ多くのバグが存在しており、それらが組み合わさり、 不可解なランダムバグが生じていたのである。 上記のバグは完全に修正が出来た。信じられない。 と言うことは、問題の原因はAUDIO機能であるため、 フリー版は現在でも安定しているのではなかろうかと思われる。 フリー版に関しても、後で動作チェックしたい。 安定していないとすれば、AUDIO処理が部分的に残ってしまっているのだろう。 そのほかのバグの対応も行っている。 MIDIやAUDIOファイルを作成する時に「¥」マークが出る不具合。 調べてみると、デスクトップフォルダを取得していたものの、 それを使い忘れていた。つまり、フォルダが””になる。 この時、どのような動作をするか、もはや予想できない。 結果として¥マークが出現したのだろう。 このバグに関しても修正できた。 続いて、senza replica の不具合の修正を行った。 現在、さらに「1「2「1「2といった楽譜の記述ができないか検討している。 異常終了やプロセスが残るバグが改善できたので、 とにかく、良かった。一通り他のバグも修正したら、 更新版をリリースする予定。 その後は、説明書作りに全力を注ごうと思う。 それが出来たら、説明書入りの更新版を再び出し、それが事実上のバージョン6安定版となる。 その後ベクターへアップし、古い Studio ftn のURLを削除したら、 一通りの作業が全て完了する。その後バージョン7の開発に入ろうと思う。
後は、音楽記号や音符の描画処理の改善であるが、1年前の開発日記を読み直す所、 そこそこ完成度が上がっているとの事。しかし、かれこれ1年前の事なので、 どういう処理になっているかさっぱり忘れた。 完成度は上がっているようなので、1年前の試作品の処理を見直して、 バージョン7に組み込もうと思う。 他に、シーケンス関連の処理の試作が出来れば、バージョン7の感覚がつかめそうである。 ところで、ようやくベクターの値段変更が終わった。 いろいろ、似たような手順の説明が点在したため、そのとおりにやってもうまく行かず、 正式な手順を知るのに時間がかかってしまった。 一度理解できると、すんなりと変更できた。 ともかく、最初から説明書を読んでいれば、すんなりいったはずで、 ベクター側に余計な手間を取らせてしまった事、申し訳ない。 話は戻って、残すところは旧URLの削除であるが、ベクターにバージョン6をアップしてからでないとできない。 ここで、バージョン6の安定性が問題になる。 やはり、異常終了はまずいと思う。かといって5.55をアップするのも中途半端である。 これでようやく、方針が決まった。 まずは、バージョン6の説明書を完成させつつ、異常終了のバグなどを除去する事である。 これを最優先したほうが良いと考えた。プロセスが残る事も多く、 しばらく使っていると、コンピュータが重くなる。この不具合はなんとしても改善すべきである。 しかし、異常終了バグは、ランダム?で発生するため、調査が困難である。 ふとした時に出る事が多く、調査しようとすると、とたんに出なくなる。 そこで、普段から作者もバージョン6を使いながらバグを待つ必要がある。 それには、ログ、を詳細に書き出さなければならない。 と言うことで、現在のバージョン6に詳細ログを埋め込む作業を現在行っている。 ログだらけで訳がわからなくならないよう、デバイス関連、ユーザ用ログ、など、 分類分けできるようにログの改善を行っている。 それと、原因以前に、ソフト終了時の開放関連の作りを見直したほうが早いと思われる。 時間が無くバージョン6を出したが、本来この部分はリリース前にやる予定であった。 なので、これからこの部分について、対応したい。 ![]() |