読者です 読者をやめる 読者になる 読者になる

S.F. Page

Programming,Music,etc...

PsycleWTL:Win32 GUI Genericsを使用した再構築

きょうも「Detected Memory Leaks!」との戦いです。

PsycleWTL:Win32 GUI Genericsを使用した再構築

ウーンやはりメモリリークが発生しますね。 なぜ起こるのかですが...。 ・ライブラリをUnicode化したときにリークした。 文字列操作あたりが怪しいかも...。 たしかユニットテストがくっついてたんで、それにかけてみようかな...。 ・Win32GUI Gene…

PsycleWTL:Win32 GUI Genericsを使用した再構築

Win32 GUI Genericsでダイアログを作成しはじめてから、メモリーリークが大量に発生するようになりました。 リークが多発するようなことはまだしてないんですけどね....。 デバッグライブラリの使用方法をミスっているとか...

PsycleWTL:「ボケ」防止のための設計メモ...。

※インターフェース定義 ・下記の場合、インターフェースを定義する ・・バイナリレベル(EXE、DLL)で実装を分ける場合 ドライバやスキン、マシンやVSTプラグインなど。 ・インターフェースはCOM互換ではない。オートメーションインターフェースを外部に公開…

PsycleWTL:Win32 GUI Genericsを使用した再構築

DirectSoundドライバの再構築を行っています。 Psycleでは、DirectSoundのストリーミングバッファを使用してレンダリングした音を書き込んでいます。 書き込みタイミングは、タイミング管理用スレッド(PollerThread)でコントロールしています。間隔は10msで…

サンプリング周波数

一般的なサンプリング周波数って、22.05KHz,44.1KHzの次が48KHzで、次が96KHz,192KHzとかになるんですけどこれって何でなんですかね...。

PsycleWTL:Win32 GUI Genericsを使用した再構築

今日もDirectSoundドライバあたりの見直しです。 昨日DirectX9 SDKをアップグレードしましたが、その後なぜかVS.NETのcl.exeでエラーが発生します。 どうも実行可能ファイルのPATHがなくなったため、必要なDLLがロードできなかったようで、PATHを追加したと…

PsycleWTL:Win32 GUI Genericsを使用した再構築

ウーン今日から会社なのでまた歩みがのろくなりますね。 しかし、「Modern C++ Design」は内容が面白いです。 使えるイディオムはじゃんじゃんPsycleWTLに取り入れていきたいですね。っていうか、「PsycleWTL」という名前もWTLから完全に脱却できた時点で名…

PsycleWTL:Win32 GUI Genericsを使用した再構築

相変わらずDirectSound周りをいじってます。とりあえず、Win32 GUI Genericsを使用してダイアログを作り直すところはできました。 今後ですが、従来のPsycleの設定画面は設定できるBufferサイズ、Buffer数、サンプルレートはドライバに関係なく一定なのです…

PsycleWTL:Win32 GUI Genericsを使用した再構築

今日は「プログラム初め」です。 DirectSound設定ダイアログをWin32 GUI Generics化しはじめました。 ダイアログの表示までは何とかできたのですが、WTLでいうExecuteDlgInit()にあたるものが見当たりません。 そういうわけでdialogクラスを少し拡張し、コン…

PsycleWTL:Win32 GUI Genericsを使用した再構築

ようやくWindowを表示できるようになりました。 そして、リソースDLLハンドル保持クラスはこのようになりました。 namespace detail { class res_handle { public: ~res_handle(void){}; static res_handle & instance(){ if(m_pres_handle.get() == NULL){ …

PsycleWTL:Win32 GUI Genericsを使用した再構築

Win32 GUI Genericsはやはり面白いですね。 感心したのが、ウィンドウを作るときのcreate_infoに値をセットする部分です。 create_info().menu(ID).instance().... 設定したい値メソッドをピリオドでつないでゆくんですが、これがなんともいい感じなんです。…

PsycleWTL:Win32 GUI Genericsを使用した再構築

PsycleWTLはマルチランゲージ対応にしたために、リソースを国別にDLL化してます。WTLではリソースをDLLで供給する場合の仕組みが用意されているので、容易にリソースDLLに対応させることができましたが、Win32 GUI Genericsは、exeにくっついているリソース…

PsycleWTL:Win32 GUI Genericsを使用した再構築

結局、昨日のLNK2005エラーは、複数の ・スタティックライブラリのC、C++ランタイムライブラリを利用して作成したスタティックライブラリ をリンクしようとすると起きるようです。 仕方がないので、DLLのランタイムライブラリをリンクすることにしました。

PsycleWTL:Win32 GUI Genericsを使用した再構築

ためしに、現在のPsycleWTLのメインフレーム部分をWin32 GUI Genericsを使用して置き換えてみたところ、下記のリンクエラーが大量に出るようになりました。 msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: __thiscall std::basic_string,class std::…

PsycleWTL:再構築

また再構築を続けていきます。 ただし、GUI周りはWin32 GUI Genericsを使用して再構築しようと思います。

boost::serialization & Win32 GUI Generics

早速、MSXMLで保存していた設定をboost::serializationで行うよう変更しました。 しかし、まだ先は長い..。 さらにこんな面白いライブラリも見つけました。

最近のTracker事情

PsycleWTLをのろのろとすすめているうちに、Aodix TrackerやBero Trackerなどのモジュラータイプの「良さげ」なTrackerが出てきました。 とくにBeroTrackerは自分がPsycleに実装したかった機能が実現されているようで、PsycleWTLに対するモチベーションの維…

PsycleWTL:再構築

ほんとにゆっくりすすめてます。 レジストリに保存している設定をXMLに変更する部分は完成しつつあります。 といいいつもこんなもの見つけました。すごいですね...。

PsycleWTL:再構築

少しずつ再構築を進めていっています。 今やっているのは、AudioDriverクラスおよびその派生クラス(ASIO,DirectSound,WaveOut)の再構築です。 AudioDriverクラスはIAudioDriverクラスより派生するようにし、ドライバに対してはIAudioDriverインターフェース…

PsycleWTL:再構築

ウーン今日もあまり進展がありませんねえ。 自分のやりたいことを考えていくとどうもATLというかCOMに近づいていくんですねえ..。 というわけでまたクラスをCOM化するかどうか悩み始めました 少し前にソースを戻して再構築のやり直しをすべきかな..。

PsycleWTL:再構築

昨日はクラス図を作って、もやっとしている部分の洗い出しをしてました。

PsycleWTL:再構築

パターンビューとマシンビューをタブビューにまとめようとしています。 でもこれってMPTに似ているような...。

PsycleWTL:再構築

パターンビュー、マシンビューあたりを再構築しています。 これはピアノロールビューを追加するためには避けて通れません。 というか、今のコードにピアノロールのコードを追加していけばいいのですけど、現在のソースでもパターンエディタと、マシンエディ…

PsycleWTL:再構築

うーん再構築って難しいですね。 前よりよいコード、構造にすべく行っているつもりがはたしてそうなっているのか...。

PsycleWTL:再構築

今、Machine View と Pattern View を別クラスにしています。 それと同時にUndo、Redo部分のコードを書きなおしています。 Machine Viewに関しては、New Featureを組み込みたいですが、年内に形になるかなというペースでしょうか..。 もう少し開発ペースを…

PsycleWTL:再構築

とりあえず、本日までの成果...。 ・ネイティブな部分をActiveX化しました。つってもメソッドはRunしかないですが。 ・Script対応のために、ネイティブなクラスにディスパッチインターフェースをつけるかどうか悩んでましたが、やっぱり既存のクラスを再…

PsycleWTL:再構築

Configurationクラスをいじり始めると、いろいろなところに絡んでいて、いろいろ修正しなくてはいけなくなって大変面倒です。 それと平行して、UIクラスから本来UIで行うべきではない処理などを既存のデータオブジェクトや制御クラスに移す作業も行っていま…

PsycleWTL:再構築

今日から Configuration クラスの再構築を行っています。

PsycleWTL:再構築

今、コード、クラスの再構築作業を行っています。 しかし、属性によるCOMプログラミングとWTLとの組み合わせではまっています。

PsycleWTL:WindowsScriptHost

現在予定から大幅に外れて、PsycleWTLにWindowsScriptHostのサポート部分を組み込んでいます。 これは、PsycleWTLの内部処理の一部をVBScriptやJScriptなどのWindows Script Interfaceに対応したスクリプト言語で書けるようにするために行っています。 うま…

PsycleWTL:.NETとの連携を考える

PsycleWTLのクラス整理はほっといて、.NET Frameworkとの連携を考えています。 考え方としては、 1.ネイティブの部分はネイティブで動かす。 ・動作が遅いと問題が生じるところ ・いままで作った部分 2.UIは.NET言語(C#)で作りたい。 ・作るのが簡単 ・UI…

PsycleWTL.2004.10.20a.Test

また、やってしまいました。 http://prdownloads.sourceforge.jp/psyclewtl/11947/PsycleWTLInstaller.2004.10.20a.Test.exe 今回もBUG修正です。

PsycleWTL.2004.10.15.Test

PsycleWTLをリリースしました。 前回のビルドが思いっきりBUGっていたので、急いで修正しました。 <修正内容> !fix: .psy file loading Failed. !fix: .xm file Loading Failed. !fix: DirectGraphics object error. http://prdownloads.sourceforge.jp/ps…

PsycleWTL:ToDo

今後のToDoです。 まずは、2.1.から取りかかろうと思います。 <ToDo> 1.前のMultiByte版並の安定度にする(完了) 2.クラスの構造を再構築する。 2.0.全体 2.0.1.カプセル化できていないクラスはすべてカプセル化します。 2.0.2.大きな塊ごとにコンポーネ…

PsycleWTL.2004.10.11.Test

PsycleWTL.2004.10.11.Test版をReleaseしました。 <リリースメモ> ・Multi Languageに対応したバージョンです。 言語Resource DLLを追加することによって多言語に対応します。 現在は日本語と英語に対応しています。 テストが不完全なため、前バージョンよ…

PsycleWTL:Multi Language

昨日、言語ごとのリソースファイルを読み込む部分を組み込みました。 これは、VS.NET2003のサンプルより拝借しました。 そして、もともとのPsycleソースを参考に英語リソースを作成しはじめています。 ダイアログ、メニューは英語化?しました。あとはソース…

PsycleWTL:Multi Language

今日はASIOあたりをいじってました。 ASIO SDKのヘルパライブラリが、結構いい加減なUNICODE対応具合だったのでかなり修正をしました。

PsycleWTL:Multi Language

ようやくファイル読み書き部分がまともに動作するようになりました。 PsycleWTLのマルチバイト版とpsfファイルの互換性を保つために、 ・ファイルを読み込むときはANSI->UNICODE変換を行って読み込む ・ファイルを書き込むときはUNICODE->ANSI変換を行って書…

PsycleWTL:Multi Language

今日もBUGの修正を行いました。 ・リソースを別DLLにしたら、XP-Styleが適用されなくなった。 これはマニフェストのみのリソースをPsycleWTL.exeにくっつけたら適用されるようになりました。 ・また、パターンエディタの描画が遅くなった。 TextOutの文字数…

Psycle1.7.8

http://psycle.sourceforge.net/wiki/によると、Psycle1.7.8にPsycleWTLのXMSamplerが移植されるようです。 とてもうれしい出来事です。 さらにさらに、マルチシーケンスとなる模様です。Cool!!

PsycleWTL:Machine Grouping

マシンのグルーピングのアイデアのThread http://psycle.pastnotecut.org/thread.php?threadid=1527&boardid=2&styleid=1&sid=cd8d16fc1edf5088a90048a749e368ea これは前々から私もほしいなあ!と思っていた機能です。 PsycleWTLにも実装したいですね...…

PsycleWTL:Multi Language

何とか、コンパイルが通るようになりました。 しかし、起動してみると、ASIOが認識しなかったり、レジストリ書き込みがおかしいなど、大量のBUGが発生しています。 それをひとつひとつつぶしていきます。

PsycleWTL:MC++

MC++で明示的にネイティブにするためには#pragma unmanagedが必要で、これは関数単位で宣言するので、WTL本体をいじる必要があります。 今日はその辺何とかならないか?と考えてました。 思いついたのが、 ・スタティックライブラリプロジェクトを別につくり…

PsycleWTL:Multi Language着手

XMSamplerはUIが未完成ですが、開発を一時停止し、Multi Language対応を先に行うことにします。 Multi Language対応は、以下の2点の作業を行うことにより実現します。 ・リソースを別DLLに分離する これは別段難しいことはありません。 とりあえず、日本語と…

PsycleWTL:またBUG発見!

Noteをエントリーした後で、削除すると、ボリュームカラムの値が残ってしまいます。 これは次のビルドで直します。

PsycleWTL.2004.09.23.Test

また、BUG修正版のリリースです。 http://prdownloads.sourceforge.jp/psyclewtl/11526/PsycleWTLInstaller.2004.09.23.Test.exe XMSamplerの不具合を修正 ・ボリュームコマンドのPanコマンドが動作しなかった。 ・エンベロープの動きがおかしい

PsycleWTL.2004.09.22.Test

また、リリースしました。 http://prdownloads.sourceforge.jp/psyclewtl/11503/PsycleWTLInstaller.2004.09.22.Test.exe <修正点> ・XMSamplerの修正

XMSampler:Bug発生

何かよくわかりませんが、UIを構築中にBUGを組み込んでしまったようです。 ElwoodのSHOOTING STARを再生すると、おかしくなっていることに気づきました。 うーんなんでだろ...。 4/23くらいまでは大丈夫なんですが、その後のコード追加でおかしくなってし…

PsycleWTL.2004.09.21.Test

またもや、BUG修正版をアップしました。 http://prdownloads.sourceforge.jp/psyclewtl/11492/PsycleWTLInstaller.2004.09.21.Test.exe <修正点> ・旧形式(PSY2SONG)の読み込みがおかしい部分を直した。 これでだいぶまともになりました。 今のところの、P…