mp3やaac(m4a)ファイルの空白

こんにちは。

ここのところ、とても地味な部分の開発がつづいたり、音響の現場が多かったりして、なかなか開発ブログの更新ができていませんが。
先日とあるユーザー様からサポート宛てに不具合のご報告をいただき、調べてみたところ興味深い結果となりましたので、すこし記事にしてみようと思います。

まず、頂戴した不具合のご報告ですが、それは以下のようなものでした。

  • キュージーのループ機能を使って(おそらくはソログループ機能も併用して)、複数の短いループ音源をランダムにつなげて再生しようとしたところ、同一サンプルのループ時に短い空白が入ってしまい、適切なループ再生がなされない。

ちなみに使用された音源は、GrageBandから書き出した AAC(m4a)ファイルでした。
じつはこのループ再生のつなぎの部分、以前にもご指摘があり、苦労して1フレーム(1/44100秒)の精度でつながるように改修した部分でして、また何かの拍子に不具合が出たのかなと思って、再生状況を確認し、それから音源を波形編集ソフトに突っ込んでみました。

するとどうでしょう、先頭の部分に 20ms (0.02秒) ほどの空白が確認できました。
問題はこの部分だな、と思って空白部分をカット。wavデータにデコードされたデータだったので、そのまま書き出してキュージーに突っ込んだところ、問題なくループ再生されました。

ここまでの検証で問題は解決できた、と思い、ユーザー様に変更後の音源をお送りしようと考えて、空白部分をカットした音源を今度は mp3 形式で書き出したのですが。念のためと思い、キュージーに突っ込んでみると、なんとまたゾンビのように 20ms の空白が甦っているではありませんか。

というわけで、問題は GarageBand からの書き出し時のファイル形式にあったみたいです。その後ユーザー様に Aiff形式にて書き出していただいたところ、問題は無事に解決されたということです。

というような記事を書きながらすこし調べてみると、以下のような記事をみつけました。

[大自然の大辞典 - mp3に変換すると無音部分ができてしまう理由]
http://dj-daishizen.blog.jp/archives/1061296.html

いやはや、デジタル世代にはデジタル世代の、あれやこれやがありますね。
というわけで、開発チーム・三橋は、次期アップデートのコーディングをしながらも、次回ニットキャップシアター 36th 『ねむり姫』のプランにも、ひーひー言いながら取り組んでいます。

もし興味をお持ちいただけた方、2016 7/8 - 11 伊丹アイホールでお待ちしていますー。

ニットキャップシアター『ねむり姫』WEB
http://knitcap.jp/37th/


CueZy開発チーム
三橋 琢