Pal8000のちょっと開発メモ

開発秘話、というか、いろいろ言い訳を書いてます。
気になることは出てくるもので、自分で突っ込んではおろおろしています。

■dB SettingのLevel Offset設定

2.7.0.5版でLevel Offset設定を新設し、±10dBで可変としました。
実際に基準をお持ちの方は、実音量と振れ方の差を埋めることができますし、
針の振れ方が淋しいとか、振れ過ぎるといった感覚的なものにも対応できます。

実は、2.7.0.1版でデシベル表示をサポートした時は、固定で+2.1dBのオフセットをかけていました。
その由来は、開発中にとあるオシレーターソフトを利用しており、そのソフトで発振する
音量指定と合わせるためにオフセットが必要だったからです。
VUMeter for Windowsのユーザーの方から、-4dBの音量を収めたwavファイルを頂いていたのを
リリース後に思いだし、試したところ、オフセット0でぴったり-4dBを表示していました。

どちらが正しいかを判別する術もなく、安易に設定可能にしてしまいました。
初期値をどうするか悩みましたが、2.1ではなく0としました。

クライテリアをお持ちの方は情報を提供して頂けると嬉しいです。

■プリセットゲージ改め Draw Gauge

目立ちませんが、2.7.0.1版以降で一番の目玉機能です。
プリセットゲージは、お仕着せでパネルのサイズまで固定していたので、ほとんどの皆さんは
使っていなかったのではないでしょうか。2.7.0.1版以降では、自由度が広がりました。
目盛の無いパネルを用意して頂き、「Draw Gauge」のチェックを入れて使うのを
お試しください。
左右非対称や円形のメーターで、対数目盛がきちんと表示されるものが簡単に作れます。

2.7.0.5版で、ゲージ色、レッドゾーンの色、ゲージ文字の大きさ、フォント種類の設定を
追加しましたので、かなり自由にパネルが作れます。
Panel Constructionダイアログには当初からTabが付いていて、利用できなかったのですが
今回、初めて利用しています。
長い伏線でした。

■利用するパネルイメージについて

サイズは自由ですが、最大で横方向512、縦方向が384に縦横比を保持して縮小します。
これは、1024×768の画面で破綻しない様に制限を加える意図があります。
これ以上のサイズを与えてもいいことは何もありませんので、あらかじめ縮小したイメージを
利用されることをお奨めします。
最近のPCはパネルサイズが横方向で1920もあったりしますし、グラフィック性能も高くなったことから
負荷を気にすることもないので、サイズ制限の値は見直した方がいいのかも知れませんね。

■"100"ボタン

Construction画面についている、ボタンの由来と仕様変更について。
PeakLevel針は、振れ方を調整することを可能にしたため、どんな振れ方をするか試したいと思い、
デバッグ用途に「100%のダミー信号」という意味で、適当な名前のボタンを付けました。
でも結構便利で、そのまま正式採用にしてしまったいきさつがあります。
どこかで名前をにでもすれば良かったのですが、自分の中でイメージが固まってしまい、
そのままになってしまいました。
LEDを点灯させるタイミングや色の変化も簡単に見られますので、ばんばん押してみてください。

■針の振れ方を実測してみました

アプリをちょっと改造してファイルにログ出力し、Excelでグラフにしてみました。

生音は、APIを呼び出してOSから読み取れる音量です。
アプリにとっては生の音量ですが、レベル変動をみると、結構OS側でいじっている感じですね。

以下は、Yellow Magic OrchestraのTechnopolis冒頭。
下半分の波形は「Sound Engine Free」を使わせて頂きました。
TO・KI・Oooが読み取れますでしょうか?

音量変化が大きい箇所はVUとRMSの違いも読み取れます。
立ち上がりはRMSの方が元の音量変化に近い感じで、減衰はVUの方が速いです。
PEAKも含め3種類の針の特性の違いが読み取れます。

■g譜Viewer 1.2版、1.4版不具合の顛末

1.2版を公開したあと、自身のDTM制作環境で使いながら少しずつ機能を足していて
そろそろまとめて更新版をリリースしようか、と思って絵入りの取説を書いていました。
テキストをWordに取り込んで章立てがうまくいかず、まあだいたいできた、という段階で
1.2版には大きな問題があることに気が付きました。

設定ファイルを読み込む初期処理の中に、初回でファイルがない場合にデフォルト値を
入れる動作を追加で入れたのですが、その中に初期化していないインスタンスをアクセス
する処理が入っていました。
例えると、土地を買って家を建てて引っ越すのに、家を建てる前に家財道具を送ってしまった、
みたいな話で、当然アプリは落ちます。
1.2版以前を使っていれば、設定ファイルが読め、不具合は起きないので、自分の環境では
意図的に設定ファイルを消さないと不具合は発覚しないのです。
通常、リリース前には当たり前にやってみる動作確認なのですが、1.2版でやったつもりに
なっていたようです。
1.2版のままで使うには、設定ファイルを無理やり入れておけばいいので、このHPでも
取り急ぎトラブルシュート案内をしました。

さらに、ちょうどダウンロード数が伸び始めていたタイミングで、慌てて取説も付けた
更新版として1.4版を出しました。
この時、気になっていた動作が少し遅い件を色気を出して修正したのですが、確認が甘く
リリース後に他の不具合を誘発していることに気が付きました。
縦方向のスクロールを保持する処理に抜けができ、スクロール表示がリセットされてしまうのです。
これを直そうとしたら、少しばかりパニックになってしまい、さらに別の不具合がぞろぞろと
出てきてしまいました。
ということで、年末までのリリースは無理、という判断で一旦公開を停止しました。

公開停止を決断すると、冷静になれ、不具合は割と簡単に収束させることができました。
ただ、それまでの経緯もあり、リリース候補版を自分の環境で使い続け、納得してから
1.45版としてリリースする運びとなりました。

不思議なことに、動作しないというフィードバックはユーザーの方から一件も
頂かなかったので、優しく待っていてもらえるものだな、と思っています。

さて、公式には不具合のある版は流通していないのですが、無断転載して公開しているサイトがあり、
1.2版のまま更新されていないところを知っています。
公開を承認した覚えもなく、窓口も不明なため、更新して欲しいとも言えず、放置してあります。
そういうサイトから拾ってがっかりされるのも嫌なものです。
取説にも書いていてくどいですが、無許可なだけに、勝手に抱き合わせソフトを入れていたりしますので、
本ソフトに限らず、ダウンロード先には充分なご配慮をお願いします。


検索等で直接こちらのページに来られた方、メインページへ