GAMDX改造:ADPCM変更の効果は?

このところGAMDX改造の話題が続きましたがそろそろ終わりになります。

もとのGAMDXではADPCMの15.6KHzの音源を内部周波数の62.5KHzにアップサンプリング、その際にローパスフィルターを通していますが何故かpcm8.cppおよびX68pcm8.cppという2つのルーチンで2重にローパスフィルターを通っています。ローパスフィルターのパラメータは固定なので、アップサンプリングする周波数が変わってしまうと問題が生じそうです。また、2回LPFを通るので音の歪みなどが必要以上に乗ってしまう可能性はあるかもしれません。追記:LPFの効果を強めたい場合、2つのLPFを直列につなぐのは「あり」のようですので、音質の劣化はあまり心配しなくていいかもしれません。

この処理を少し変えて、GAMDX内部での周波数(可変にしてみました)に合わせてアップサンプリング、そのあとADPCMが15.6KHzなのでその半分の7KHz以上の成分はノイズと考えられるのでアップサンプリングした周波数に合わせてローパスフィルタを通す、という風にしてあります。

フィルタが変わったことで音質の比較のため内蔵の「X68030のテーマ」のボイスパートを使ってみました。ADPCMの比較をするために、FM音源のところはプログラム上でカットしてあります。

1)もとのGAMDX(MDX player 2.0, 62.5KHz出力を使用。したがってダウンサンプラーはAppleのものが使われます)

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-13-17-48-27

出だし約10秒間を詳しく周波数分析したもの

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-13-17-48-42

2)改造版、ダウンサンプラーはAppleの物を使用

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-13-17-41-01

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-13-17-41-15

3)改造版、ダウンサンプラーはSpeex(Quality=2)を使用

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-13-17-43-27

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-13-17-43-57

4)改造版、Speexリサンプラー(Quality=4)

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-13-17-56-30

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-13-17-56-57

 

SpeexリサンプラーはQuality=2と4でほぼ同じ結果のようです。あとでソースを読んで見る必要あり。AppleよりもSpeexのほうがローパスな傾向があるのと、私が改造したADPCMルーチンは8KHz以上の本来はカットされるべき部分が結構残っているようなのでLPFのパラメータはいじる余地がありそうです。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中