2021/08/15(日) [n年前の日記]
#1 [dxruby] bassrbをfiddleを使って動くように修正してみた
_一昨日
、
_昨日
に続けて作業。
DXRuby 利用時、ogg サウンドファイルの再生に利用できるライブラリ bassrb (Bass.rb) を、今時のRuby (3.0.x 等)でも動かせるように fiddle を使って処理するように修正してみた。ライセンスは、オリジナル版に倣って Public Domain ってことで。
_Bass.rb (fiddle使用版。動作には bass.dll が必要)
Ruby 1.8, 1.9 で動かす場合はオリジナル版の処理を通って、Ruby 2.0 以降で動かす場合は fiddle を使って処理するようにしてある。
最新版の bass.dll は、以下から入手できる。
_Un4seen Developments - 2MIDI / BASS / MID2XM / MO3 / XM-EXE / XMPlay
以下の環境で動かして、ogg が再生できることを確認できた。一応、最新版の bass.dll 2.4.16.3 (2021/07/21) をダウンロードして動作確認した。
DXRuby + Bass.rb を利用して ogg を Stream 再生する使用例は以下。ruby ogg_play_stream_bassrb.rb で実行できる。DXRuby のウインドウが開いて、キー入力に応じて再生テストができる。
_ogg_play_stream_bassrb.rb
_loop_bgm.ogg
DXRuby + Bass.rb を利用して ogg を Sample 再生する使用例は以下。ruby ogg_play_sample_bassrb.rb で実行できる。
_ogg_play_sample_bassrb.rb
_jingle.ogg
一応、関連ファイルを全部まとめて zip にして置いておきます。
_ogg_play_with_baserb_20210818.zip
_ogg_play_with_baserb_20210815.zip
ちなみに、bass.dll は、Vox.dll と違って、ogg のループ再生もちゃんと鳴らしてくれる。Vox.dll で再生するとループする時に変な聞こえ方になるけれど、bass.dll は滑らかに(?)ループする。
ただ、bass.dll の商用利用はライセンス料がかかるので注意…。無料で公開する何かしらに添付して使う分にはライセンス料はかからないけれど、おそらく同人ソフトを作って販売する、といった場合にはライセンス料を払うことになるのではないかなと…。たぶん。
DXRuby 利用時、ogg サウンドファイルの再生に利用できるライブラリ bassrb (Bass.rb) を、今時のRuby (3.0.x 等)でも動かせるように fiddle を使って処理するように修正してみた。ライセンスは、オリジナル版に倣って Public Domain ってことで。
_Bass.rb (fiddle使用版。動作には bass.dll が必要)
Ruby 1.8, 1.9 で動かす場合はオリジナル版の処理を通って、Ruby 2.0 以降で動かす場合は fiddle を使って処理するようにしてある。
最新版の bass.dll は、以下から入手できる。
_Un4seen Developments - 2MIDI / BASS / MID2XM / MO3 / XM-EXE / XMPlay
以下の環境で動かして、ogg が再生できることを確認できた。一応、最新版の bass.dll 2.4.16.3 (2021/07/21) をダウンロードして動作確認した。
- Windows10 x64 21H1 and
- bass.dll 2.4.16.3 (2021/07/21)
- Ruby 1.8.7 p330 x86 (i386-mswin32)
- Ruby 1.9.3 p551 x86 (i386-mingw32)
- Ruby 2.3.3 p222 x86 (i386-mingw32)
- Ruby 2.6.8 p205 x86 (i386-mingw32)
- Ruby 2.7.4 p191 x86 (i386-mingw32)
- Ruby 3.0.2 p107 x86 (i386-mingw32)
DXRuby + Bass.rb を利用して ogg を Stream 再生する使用例は以下。ruby ogg_play_stream_bassrb.rb で実行できる。DXRuby のウインドウが開いて、キー入力に応じて再生テストができる。
_ogg_play_stream_bassrb.rb
_loop_bgm.ogg
DXRuby + Bass.rb を利用して ogg を Sample 再生する使用例は以下。ruby ogg_play_sample_bassrb.rb で実行できる。
_ogg_play_sample_bassrb.rb
_jingle.ogg
一応、関連ファイルを全部まとめて zip にして置いておきます。
_ogg_play_with_baserb_20210818.zip
ちなみに、bass.dll は、Vox.dll と違って、ogg のループ再生もちゃんと鳴らしてくれる。Vox.dll で再生するとループする時に変な聞こえ方になるけれど、bass.dll は滑らかに(?)ループする。
ただ、bass.dll の商用利用はライセンス料がかかるので注意…。無料で公開する何かしらに添付して使う分にはライセンス料はかからないけれど、おそらく同人ソフトを作って販売する、といった場合にはライセンス料を払うことになるのではないかなと…。たぶん。
◎ 2021/08/18追記。 :
Bass.rb の一部の記述でバグってたので修正。
[ ツッコむ ]
以上です。