スポンサーサイト

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

[TiMidity] ふぇぇ・・・

某所に公開されているうんこ氏のソースコードをbw版に一部反映させようかと思って
差分見てみたら多すぎてびっくりしたよぉ・・・。

とりあえず、MAP周りとreverb.cまわりを中心にマージしていこうかと思います。。。

SDまわりも私のなんちゃって実装とは違いしっかりしてるようなので
その辺りも自分のコードをポイして反映させる予定です。
あとドラムパートエフェクトも・・・。

忘れないうちにマージ状況
・reverb.c をマージ 終了
・playmidi.c をマージ 終了(テストフィルタとエミュレーションディレイは未反映)
・interface周りをマージ たぶん終了(OUTPUTとDELAYは未反映)
・GUI周りをマージ 終了(ディレイとOUTPUTは未反映)
あとはマップのロードまわり?かな・・・たぶん・・・。

こんな素晴らしいものを公開してくれたうんこ氏には頭が上がりません。ありがとうございます。
某所に書き込む勇気もないので、勝手ながらここでの一方的なお礼とさせて頂きます。すいません。。。
もしマージがダメとか、何かありましたら連絡くれると嬉しいです。

なおLPF butterworthですが
レゾナンス計算式を
double r = 1.0 / (1.0 + fc->midi_reso * 8.0);
みたいにするとかかり方がまた変わってくると思います。
レゾナンスが今まで以上に強力にかかるかもしれません。
なお書き換えた後は音量にご注意ください。
調整中にあやまって違うところ書き換えて大惨事になったとか恥ずかしくて言えない。
スポンサーサイト

[TiMidity] スナップショット的な??

ソースコード(差分あるものは差分無いものはファイル):
http://bluewing.usamimi.info/timidity/files/src20130323.zip

バイナリ:
http://bluewing.usamimi.info/timidity/files/timidity_bwv_20130323_vc9_x32.zip

変更点
LPF周りを変更。butterworthフィルタ追加
REDUCEの値を変更(ドライバ遅延がましになってるかもしれないしなってないかもしれない
ドライバーコンフィグを修正とか
/LARGEADDRESSAWAREをリンカーオプションに追加 これで32bitでも4Gまで扱えるかもしれない。
(未確認)
Shake氏(http://www.shakemid.com/)の巨人のダンジョンのMIDIが正常にならなかった不具合を修正


おおまかには多分こんなトコロです。
LPFはbutterworth以外使ってないのでほかの挙動が怪しくなってるかもしれません。
もし挙動が怪しいところを見つけましたらお手数ですが報告いただけると助かります。
出力が48000hz以外の動作は怪しいかもしれません。
ほかにもなにかいじった気がしますが、LPF周りの演算を変えた以外の記憶が余りありません。

こんな怪しい状態で使用する人もいない気がしますが、とりあえずおいておきます。。。
なお某所に公開されているソースコードの内容は一切含んでません。

64bitビルドとか64bitで64bitドライバインストール手順とかもそのうち・・・

ふぁ!?

某所みたらなんかバイナリあがってて吹いた。
土日休めたらソースコード読んでみようかな。。

固定小数点演算は私も廃止して直そうと思ったけどめんどくさくて挫折。
というか、ソースコード大幅改変してまで変更するメリットもあんまりないような・・・
と思い変更するのを辞めたというオチ。

あとさりげにどっかにも書きましたが、今公開されているbw版のLPFの計算処理
間違ってるんですよね・・・。

おもにこれ
update_channel_filter の後に
recompute_voice_filter を呼んでますが
recompute_voice_filterに渡すのはchではなく、
ただしくはvoiceのindexです。。当時なぜ私はch突っ込んだのか
マジで理解できない・・・。
正直すぐに直せってレベルですよねすいません。すいません。。
たぶんbw版でカットオフが変動しまくるMIDIをならすと
正常にならなくなるのはこれのせいかと思われますorz
※なお↑で落ちないのはポインタチェックが入ってるためです。
 ポインタチェック外せば多分落ちる。

とりあえず次の更新に入れ込む予定のもの
・LPFタイプに butterworth フィルタを追加
・LPF計算処理を大幅に変更(逆効果な可能性はあり)
・fc,qを#extension で設定できるようにしてみたり
・TiMidityDriverの発音遅延を軽減(? 単純にREDUCEの値かえただけなので効果はないかも

なん・・・だと・・・?

http://itpro.nikkeibp.co.jp/article/COLUMN/20051118/224849/

> 既存の32ビット・アプリケーションでも、
> IMAGE_FILE_LARGE_ADDRESS_AWAREフラグを立てているアプリケーションなら、
> Windowsをx64 Editionにするだけで4Gバイトすべてをユーザー領域として使える。

32bit 2GB制限 ってこんな簡単に外せるんだ・・・
しらなかった・・・

次bw版公開するときは試験的に
IMAGE_FILE_LARGE_ADDRESS_AWARE
立てたものを公開するかもです。
いつになるかは未定。


※なお次回公開のものから、int64非対応OSのサポートは一切しません。
 よってVC8版の公開も行う予定はありません。
↑手元でオーバフロー対策に型変更を行ったためです。

PageTop

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

えりおん

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

ブログ内検索

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