スポンサーサイト

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

TiMidity bw版 凍結のお知らせ

突然ですが、勝手ながら、TiMidity bw 版の開発を一時凍結することにしました。
理由としては、TiMidityのデバッグや、改良に割く時間があまりないこと。
というのはたてまえで、一番の理由は、私自身がTiMidityに対してできることがほとんどなくなったことでしょうか。

引き続きサポートや、頂いてる要望に関しては対応する予定ですが、
バイナリが絡む不具合修正等の対応は今のところ考えておりません。
というかデバッグする時間と、ソースいじる時間を私にくださいorz

というわけで、bw版の改良に関しては、ネタができるか、時間が確保できるまで凍結します。
あと、気になってる人は気になっているtimvstwrapについて、こちらに関しては、色々考えた結果
ソースコードを公開することにしました。
特にライセンスとかは、指定なしで、コードの再利用・改良したものの公開等は特に制限しません。

・・・てなかんじで、前置きが長くなりましたが・・・
http://bluewing.usamimi.info/timidity/timvstwrap_130601.zip

スポンサーサイト

[TiMidity] うーん

とりあえずドライバー周りをさわろうかと思ってみたり。

誰得という感じですが、とりあえずこんなのやってます。

すでに入れ終わったもの(デバッグなう)

・ドライバーインストーラにアンインストールをつける。
・インストール時に単体インストールか三種類インストール
 (timiditydrv, timiditydrv1,timiditydrv2)か
 選べるようにする
・ドライバーの音量設定をtimiditydrv, timiditydrv1,timiditydrv2
 それぞれ別々にできるようにする

次入れようかなと思っているもの

・強制GM/GS/XGリセット命令などを送れるようにする
  ドライバー再生での、稀に起こる不具合回避用
・Windows 64bit 用ドライバーインストーラを作る

入れるか未定のもの

・portaudioの実装ではなく、ちゃんとしたDirectSound出力を実装
  誰得度高いのでたぶんやらない。
・VSTを使えるようにしてみる
  内部にダミーウィンドウを生成する処理をいつぞやの更新で仕込んだので、
  できなくはないが、素直にtwsyng使えばいいと思います。。

とまあ微妙なものオンパレードです\(^o^)/
次の更新はいつになるんでしょうね・・・。

[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の値かえただけなので効果はないかも

PageTopNext>>

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

えりおん

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

ブログ内検索

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