Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[v0.6] オーディオファイルのデコード結果が正しくない #4

Closed
Reputeless opened this issue Jun 14, 2021 · 5 comments

Comments

@Reputeless
Copy link
Collaborator

Reputeless commented Jun 14, 2021

強化された Audio サンプルを実行したところ、
音声ファイルの長さや再生したときの再生スピードが実際と異なっていました。
デコード時や再生時のサンプリング周波数の設定がどこかで間違っている可能性があります。

分かりやすい再現方法:

  • example/windmill.mp3 example/test.mp3audio.lengthSec() が実際よりも長い
  • サンプリング周波数 22,050 Hz の Ogg ファイルを自前で用意してロードすると audio.sampleRate() で 44,100 Hz と表示されたり、実際の 2 倍速で再生されたりする
@nokotan
Copy link
Owner

nokotan commented Jun 14, 2021

  • example/windmill.mp3 の audio.lengthSec() が実際よりも長い

example/test.mp3 でしょうか。
Safari, Chrome on macOS で 103秒 = 1分43秒と表示され、これは元ファイルの再生時間 (1分43秒) に一致しました。
Chrome on Windows では、112秒 = 1分52秒と表示され、元ファイルより音程が低く、すこし遅く再生されました。

  • サンプリング周波数 22,050 Hz の Ogg ファイルを自前で用意してロードすると audio.sampleRate() で 44,100 Hz と表示されたり、実際の 2 倍速で再生されたりする

手元の環境で再現しました。

Ogg のデコード処理は Siv3D 側の機能に任せていることを含めると、ブラウザ環境の問題というよりは、ファイルのサンプリングレートをどこかで無視してしまっていることが原因に思えます。

@nokotan
Copy link
Owner

nokotan commented Jun 14, 2021

途中で Wave オブジェクトをムーブ構築するところがあるのですが、Siv3D の実装上 ムーブ構築した Wave オブジェクトにサンプリングレートが引き継がれることは保証されてなかったりするのでしょうか。

@Reputeless
Copy link
Collaborator Author

!!
v0.6 の実装ミスで一部のコンストラクタでサンプリングレートが引き継がれていませんでした。
修正コミットを作成中です。またお手数をおかけしました。

@Reputeless
Copy link
Collaborator Author

Reputeless commented Jun 14, 2021

修正しました。 Siv3D@9ca523a
ムーブした先に引き継がれるのが正しい仕様です。

@nokotan
Copy link
Owner

nokotan commented Jun 15, 2021

Web版バイナリおよびサンプルアプリ更新しました

https://github.com/nokotan/OpenSiv3D/actions/runs/928133900
https://siv3d-v6-apps.kamenokosoft.com

@nokotan nokotan closed this as completed Jun 15, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants