追加案:各サウンドフォント毎の音量調節

Issue #583 resolved
CardWirthプレイ専門の人 created an issue

※初めに、筆者は開発の素人であると明記します。 なので、一Pyプレイヤーとして書き込みます。

サウンドフォントを好みのものに変えてプレイできるのも魅力的な要素だと思うのですが、 サウンドフォントはファイルによって音量にかなり差があるようで、 複数のサウンドフォントを組み合わせて使用するのは難しかったです。

各サウンドフォント毎に音量調節できるようになると色々使えて楽しいと思うので、 設定に追加するのを提案します…!

Comments (21)

  1. k4nagatsuki repo owner

    ご提案ありがとうござます。

    たしかにサウンドフォントによっては音量が小さいと感じたことはありましたが、組み合わせの事は盲点でした。

    フォントのサイズと同じ要領で、パーセンテージを入れる欄を設ければよさそうですね。2.1リリース後の実装を考えたいと思います。

    音声ライブラリの仕様上、100%を超える大きさにする事はできないので、プレイヤーは全体音量の調節も含めて値を決める事になるかと思います。

  2. CardWirthプレイ専門の人 reporter

    素早いお返事ありがとうございます。

    開発が進んでいるということで提案させてもらったのですが、ご検討していただけるようで大変嬉しいです。

    sf2ファイルをいくつか落として使用してみた時に不便だったので、実装されるのが楽しみです。

    大変だと思いますが、開発応援しています…!

  3. k4nagatsuki repo owner

    応援ありがとうございます。

    予定では、明日10/1にバージョン2のバグフィクス版である2.1をリリースし、しばらく(2週間ほど)様子を見て、2.2のリリースが必要になるようなバグが出なければバージョン3の開発をスタートする事にしています。

    本格的な新機能の実装はそれからになるので、しばらくお待ちいただく事になってしまうかと思いますが、ご了承ください。

  4. CardWirthプレイ専門の人 reporter

    バージョン2.1使用してみます。

    といっても、普通にプレイする程度しかできませんが。何か見つかればまた報告したいと思います。

  5. k4nagatsuki repo owner

    申し訳ありません。一度「実装を考える」と言ってしまったあとなのですが、この機能の実現は困難です。

    というのも、CWPyがMIDI再生に使用しているBASS MIDIライブラリには、サウンドフォント別に音量を設定するという機能が無いからです(参考:BASS_MIDI_FONTEX)。

    いかにも可能そうに書いてしまったのは私の勘違いのせいです。多分以下のような思考を辿ってしまったのだと思います。

    1. 「サウンドフォントAとサウンドフォントBを切り替えた時に出る音量の違いを吸収したいのかな」 ←これが勘違い
    2. 「それならAとBがそれぞれ選択された時に最終的な音量を調節すればいい」
    3. Issueを読み返して複数のサウンドフォントの組み合わせの問題と気づく
    4. 2.の検討で「できる」と確信していたので、問題の前提が違ったにもかかわらず考え直さなかった

    将来はできるようになる可能性も無い事は無いと思うのですが、その可能性は小さそうな上(もしかしたら原理上困難なのかもしれませんが、それについての知識は私にはありません)、短期的に実現できる事はほぼ無いと思います。

    本当に申し訳ありません。

  6. 暗黒 騎士

    VirtualMIDISynthというBASS.DLL利用のドライバソフトがあるのですが、 そのVer2以降でサウンドフォントごとの音量調整が可能になっていたので、自分もイケるんじゃないかなと思ってたんですが、Pyの実装上ではBASS_MIDI_FontSetVolumeは使えないのでしょうか? (相変わらず糞初心者なので見当違いなこと言ってたらすいません。)

    http://www.un4seen.com/doc/#bassmidi/BASS_MIDI_FontSetVolume.html

  7. k4nagatsuki repo owner

    あ!

    本当ですね。構造体を見てオプションは無いと思い込んでしまいました。

    すみません、上の長文は忘れてください。多分実現できるんじゃないかと思います。

    あとで時間を作って試してみます。

  8. k4nagatsuki repo owner

    試しましたが、BASS_MIDI_FontSetVolumeは想像通りに動きます。

    実現に問題はないと思われます。当初の予定通り、来週末が過ぎた辺りで実装したいと思います。

    お恥ずかしい限りです。

  9. 暗黒 騎士

    おお、ということは現状大抵のサウンドフォントではMP3/OGG再生に比べてMIDI音量が小さすぎて100固定にせざるをえないという問題も解消できるかもしれないですね。(VirtualMIDISynthは500まで上げられる)

  10. k4nagatsuki repo owner

    ボリューム値は0~1なので100%超えにはならないはずなのですが、VirtualMIDISynthはどうやって実現しているんでしょう?

    あれはたしかサウンドドライバのように動くので、他の音量を下げる事で調節しているのでしょうか。

  11. ハルキゲニア

    オーディオ楽曲に比べMIDI楽曲の音が小さいと思った事はありません。 サウンドフォントも中身はwavなのでオーディオです、PYの初期設定でミュージック音量が小さくなっており、ミュージックを下げるとサウンドフォントの音量も下がります。

    MIDIを下げるとサウンドフォントだけ小さくなり、MIDIだけ2重に音量が下がります。 小さく聞こえる原因はそれかもしれません。 私は全て100%に設定して総合音量で調整するようにしてます。そうしないと音量のバランス取れないからです。

  12. k4nagatsuki repo owner

    そういえば、どうしてMIDIの音量だけ分けて設定できるようになっているのかは私は知りません。

    Rebootより前の時期に何かの問題を解決するために分けたのだと思いますが、MIDI以外も設定可能にするなり、BGM音量をMIDIとMIDI以外に完全に分けてしまうなり、整理した方がよさそうな気もします。

  13. CardWirthプレイ専門の人 reporter

    報告に気が付かず申し訳ありません。

    すべて読んだのですが理解が追いつかず、提案した身としては恥ずかしい限りです…。

    k4nagatsukiさん、暗黒 騎士さん、ハルケギニアさん、実装に向けて尽力してくださりありがとうございます。

    音量に関してはシナリオ『沃穣の楽園』のmp3が初期搭載の005.6mg_Aspirin_Stereo_V1.2_Bankと比較するとかなり大きいです。手持ちで一番音量の大きいsf2ファイルのTimbres Of Heaven GM_GS_XG_SFX V 3.4 Finalくらいの大きさでした。

  14. CardWirthプレイ専門の人 reporter

    氷雪の街ラガル、歯車都市ギアウッド、天の光と冥の闇、これらのmp3も005.6mg_Aspirin_Stereo_V1.2_Bankと比較するならかなり音量が大きかったです。ただ音量の抑えてある(小さい)サウンドを使用しているシナリオもありました。

    が、提案した案件とは若干論点が違ったのであえてお伝えはしていませんでした…。

  15. k4nagatsuki repo owner

    特定のファイルの音量が大きいという問題は、仮にMIDIとそれ以外で音量調節ができるようになったとしても、解決できないと思います。あるファイルの音量が大きいからといって音量を下げると、他のちょうどいい音量のファイルが小さくなりすぎるからです。

    それはシナリオ側で対処するしかない問題です。

  16. CardWirthプレイ専門の人 reporter

    MIDIとそれ以外の音量を分ければある程度は調整できそうですが、各オーディオファイルで音量が違うのはどうにもなりませんね…。

    音源の音量が小さいサウンドフォントを使用しているとMIDI以外のBGMに切り替わったときびっくりするので4↑の案はかなり魅力的だと思います。

  17. k4nagatsuki repo owner

    MIDIとその他の音量調節についてはこのIssueとは別の話になるので、issue #586を立てました。

  18. k4nagatsuki repo owner

    pull request #2037

    サウンドフォントの音量調節を実装しました。Downloadsから最新のテスト版(今はcardwirthpy_20171015d.zip)を入手してお試しください。

    テスト版は、容量削減のためフォントなどが含まれていません。2.1などの完全なバージョンに上書きしてご使用ください。

    音量だけを変更する場合でも演奏が再スタートしてしまうのですが、BASS MIDIの仕様で演奏中のサウンドフォント音量変更はできないようになっているようなので、そういう風にしてあります。

  19. CardWirthプレイ専門の人 reporter

    おつかれさまです。試してみた所何の問題もなく使用できました。

    非常に快適です。ありがとうございます…!

  20. k4nagatsuki repo owner

    MIDIとそれ以外の音量調節については別の課題を立てたので、これは完了にします。

  21. Log in to comment