白 Be 2011 年 5 月

 BeOS 及びパソコン関連の日記です。といっても毎日書いているわけではありませんが(^^;)。タイトルは「はくび(白眉)」と読んで下さい。BeOS が最も優れた OS になってくれたらいいなぁ、などと期待しながら……。
 各日記の日付の部分は、その日記のアドレスへのリンクになっています。他の雑談や日記からこの日記へリンクを張る際の URL 取得用としてご利用下さい。


<< 前の白 Be ] [ 翔星 Be ランド Home ] [ 次の白 Be >>


PR

2011/05/29 B Mode 2 用ピッチエディタの開発

 うたりすをバージョンアップして、UTAU Mode 2 用のピッチエディット機能を搭載予定。

 というか、Mode 2 のピッチエディタがメインで、これまでのうたりすの機能は、ピッチエディット機能の一部の位置づけ(WAVE トレース機能として提供)。


2011/05/29 A TScrollBar の謎

 C++Builder XE のスクロールバーコンポーネント(TScrollBar)の挙動がなんだか妙な感じ。

にした場合、スクロールバーのノブ(スライドバー)をつまんで動かした場合、Position が 71 になったところでノブが一番右端に到達し、それ以上は右に行かない。


 ところが、アロー(三角の部分)を押すと、Position はさらに増え、100 まで行く。71 から 100 まで、GUI 上のノブの位置は変わらない。


 これは TScrollBar がバグってるんじゃないのかな? それとも何か根本的に考え方が違うのだろうか。


2011/05/28 C++Builder XE で自作コンポーネントを作る時の要点

 以下の手順で、自作コンポーネント(カスタムコンポーネント)の新規作成、プロジェクトでの使用、コンポーネントの更新ができる。

【 パッケージの作成 】


【 コンポーネントの作成 】

【 コンポーネントのテスト 】

【 コンポーネントの更新 】

【 メモ 】

【 ソースコードの書き方 】

 コンポーネンの開発(機能追加)をするには、コンポーネントのユニットファイル/ヘッダファイルに以下のような変更を加える。
 試行錯誤と過去の経験でまとめているので、間違っている部分とかもっと良い方法とかあったら教えて下さい。


2011/05/22 Lib UTAU Ver 2.11

 Lib UTAU の更新版を公開しました

 TUtauData::InsertSectionNote() などのバグを修正しました。


2011/05/18 すっぴんプラグインのソースコード

 公開しました

 Lib UTAU に UTAU プラグインとしての定型処理を任せているということもあり、すっぴんプラグイン本体部分のソースコードはわずか 130 行程度です。開発速度が超遅い私としては異例の、45 分程度という速さで開発しました。

 以下、少々の解説。

 当初の実装では、

PBS=0;-12
というようなプロパティを受け取ったら、
PBS=
というように空欄にして返却していましたが、この方法ですっぴんになるプロパティは少ないことが分かりました(空欄返したらデフォルトに戻して欲しいところですが)。

 そこで発想を変えて、すべての音符を削除することにしました(セクション名を DELETE にする)。その代わり、必要最低限のプロパティを持った音符を新たに INSERT しています。

 DELETE/INSERT をすることにより、パイプファイル上では擬似的にすっぴん化を実現しています(ユーザーから見れば本当にすっぴんになっているように見えます)。


2011/05/17 すっぴんプラグインのスクリーンショット

 公開しました


2011/05/15 B Lib UTAU Ver 2.10

 Lib UTAU の更新版を公開しました

 TUtauSection を少しだけ強化し、SetSectionName() を実装するなどしました。


2011/05/15 A すっぴんプラグイン Ver 2.01

 UTAU の音符データに施した調整をすべて除去し、「ベタ打ち」状態に戻す「すっぴんプラグイン」を公開しました

 すっぴんプラグインは Lib UTAU を用いて開発しています。


2011/05/14 UTAU でコンソールに出力されない

 コンソールアプリを作って、UTAU からプラグインとして起動した場合、コンソールに文字列が出力されない。普通にコマンドプロンプトから起動した場合は出力されるのに。

 C++ Builder XE の場合、コンソールアプリを作成する時のウィザードのオプションは、「VCL を使用する」「マルチスレッド」「コンソールアプリケーション」の 3 つ。

 このうち、VCL は使わないからチェックを外し、コンソールアプリケーションはチェックを入れないと Win アプリになってしまう模様なので( _tWinMain が生成される)チェックを入れるとすると、調整できる選択肢はマルチスレッドのみ。しかし、これを有効にしようがしまいが、UTAU には出力されない。

 C++ Builder だけではなく、Visual C++ 2010 Express で作っても結果は同じ。なんでだろ。


2011/05/08 Lib UTAU Ver 2.01

 UTAU プラグイン開発支援用 C++ クラスライブラリ「Lib UTAU」をリリースしました

 UTAU 本体とプラグインとのデータの授受を手軽に行えるようにすることで、プラグイン開発の手間を軽減し、開発者の負担を軽減します。

 Lib UTAU でできることの例:

 プラグイン開発で必ず使う基礎的な機能を一通り盛り込んであります。データを生の形式で扱える他、使いやすい形にアレンジしてアクセスできるようにもしてありますので、プラグインを一から開発するよりもだいぶ開発に要する時間を短縮できるのではないかと思います。

 詳細はヘルプをご覧ください。


2011/05/05 B うたりす Ver 4.03

 UTAU 用の WAVE トレース方式自動調声プラグイン「うたりす」をバージョンアップ。Ver 4.03 を公開

 内部構造を再構築。ほぼ一から作り直している。

 とはいえこれは外部から見ると何が変わっているかは分からないのだけど。

 外部から見えるバージョンアップのポイントとしては、

が挙げられる。


2011/05/05 A C++Builder XE の atof() / _wtof() がバグってる

 C++Builder XE で以下の簡単なコードを実行するとクラッシュする。

void __fastcall TForm1::ButtonTestClick(TObject *Sender)
{
	setlocale(LC_CTYPE, "japanese");
	double a = atof("20");
	double b = _wtof(L"10");
}
 表示されるデバッガ例外通知は、「プロジェクト Test01.exe は例外クラス EAccessViolation (メッセージ 'モジュール 'Test01.exe' のアドレス 004DF900 でアドレス 00000004 に対する読み取り違反がおきました。')を送出しました。」。

 ちなみに、setlocale() を
	setlocale(LC_ALL, "japanese");
にするとクラッシュしない。

 当方の環境は、Windows 7 64bit 上での C++Builder XE update1。たぶん update1。

 たぶんというのは、アップデート作業時にエラーが出て正常終了しなかったものの、バージョン情報では update1 になっているから。もしかしたら、購入したのがわりと最近だから、最初から update1 になっていて、アップデート作業はできなかった、という意味なのかもしれない。

 EDN (Embarcadero Developer Network) にバグレポは出してみたが、契約っぽい画面が 2 回も出てきた割には、投稿した記事のステータスが draft になっているから、うまく投稿できていないかも。

 同様の症例に出会った方はバグレポ出しておいてもらえると幸いです。



<< 前の白 Be ] [ 翔星 Be ランド Home ] [ 次の白 Be >>


最初前先頭次最後ホーム