kuma4649 / mml2vgm

GNU General Public License v3.0
105 stars 10 forks source link

Whether the ADPCM-A of OPNB can seamlessly switch PCM sampling. #105

Closed denjhang closed 3 years ago

denjhang commented 3 years ago

For OPNB, ADPCM-A can only use 18.5khz wav, and the longest audio is about 30 seconds. I recently used a large section of wav samples as PCM samples. I cut several minutes of audio into a file every 30 seconds and defined it as @0, @1, @2, etc. I found that there is a very short interval between @0c and @1c. Can it be eliminated? magic.zip The file contains a few minutes OPNB VGM, using only ADPCM-A.

denjhang commented 3 years ago

The vgm I uploaded has a very short interval every 30 seconds.

kuma4649 commented 3 years ago

恐らく、この問題は解決しません。 発音タイミングは、PCMの合成処理とは別に存在し、正確な同期が不可能だからです。

denjhang commented 3 years ago

Is it possible to advance @1c by a few milliseconds? Does the existing command have this function? If you can make @1c a few milliseconds in advance, you can make up for this gap.

kuma4649 commented 3 years ago

ありません。

denjhang commented 3 years ago

I found a strange way to temporarily solve the problem. I analyzed the output wav and found that there is an interval of about 0.056 seconds in each 30-second segment, so I used the following method to solve the problem. But the effect is not very good 'T15 T8 p2 l1 @20c r~1024 @22c r~1024 @24c 'T16 T8 p2 l1 r~1024 @21c~1024 r~1024 @23c r 截图未命名210422211459

denjhang commented 3 years ago

截图未命名210422212551

denjhang commented 3 years ago

In my impression, many neogeo arcade games use ADPCM-A or ADPCM-B audio streams that last several minutes. How is that done?

kuma4649 commented 3 years ago

おそらく、予め曲のテンポを決めておいて、フレーズごとにサンプリングしていると思います。 後はフレーズが始まるタイミングでキーオンするのみかと。

kuma4649 commented 3 years ago

閉じますね。