スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

TiMidity やっぱりおかしいよレゾナンス

レゾナンスとカットオフの計算タイミングがおかしい気がします。
Harmonic Content & Brightness が変更されても、すぐに再計算されないのかこれ。
あるいは、パラメータが完全に無視されてるような気がする。

・・・というわけで、Harmonic ContentとBrightnessを代入してる箇所に、強引に再計算処理を追加してみる。
→すぐに反映されるようになった!

でもこれでいいのか謎。
とりあえずもう少し手元でわふわふ。

スポンサーサイト

Windows7 上での Timidity Driver の動作確認完了

適当に64bitビルドした dll を rundll32 でドライバー入れたら見事に動いた\(^o^)/

追記
ちゃんとインストールできてなかったというオチな罠。
64ビットでビルドするとやっぱりポインタ周りのせいで動かなくなる。
ただ、32ビットでビルドして、timiditydrv を syswow64 フォルダにコピー後 rundll32 で 32bit ドライバーをインストールしたらこちらは不都合もなく快適に動作しています。
一応32bit互換モードで動いてくれてるのかなー。

windows 7 でデバイスマネージャを見るとtimiditydrvの項目が見当たらない件。
こりゃーこまったぞ/(^o^)\

windows7 で、ハードウェアの追加が出来ない件

手元で適当に作った、timidity driver x64 版を windows 7 上に入れようと思い、ハードウェアの追加と削除を実行したんだ…。

そしたら…"デバイスが検索可能かどうか確認してください"とかでやがりました。
どうやって確認したらいいんですか\(^o^)/
再起動しても追加できないよ!
というわけで、動くかどうか確認できず。

っていうかWindows 7 でも MIDI デバイスの変更できるのか謎。
ううー。Windows 7 が発売されたら、再チャレンジしようカナ…。

まあ…無事追加できたところで、ちゃんとは動かないと思いますが…。

…なぜかって?
ソースを見ればわかりますが、 timidity は ポインタを long (4byte) などに格納している場所があります。
ところが x64 のポインタは 8バイトなので、4バイトじゃ足りないんですね。
ということでそういう箇所を全部 unsigned __int64 や、LPARAM, WPARAM などに変えてやらないといけません。
また GetWindowLong や SetWindowLong を GetWindowLongPtr, SetWindowLongPtr に書き換えたりしないとだめです。

めんどうですね!
もちろんWIN32, WIN64 両方でビルドが通らないと話にならないので
#ifdef WIN64
__int64 ptr = p;
#else
long ptr = p;
#endif
みたいなことをしないとね!

PageTop

最近の記事
月別アーカイブ
カテゴリー
FC2カウンター
プロフィール

えりおん

  • Author:えりおん
  • 詳細情報
  • 性別:男です
  • 年齢:まだまだ若いですお♪
  • ちゃんと就職できたようです。社会人生活!

ブログ内検索

RSSフィード
リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。