iOSにおける着信音ループ道

時に西暦2008年、iPhone 3G日本初上陸の衝撃からはや幾星霜。もはや「iPhone以前」を思い起こすのも困難なくらい生活に馴染んでいる今日この頃ですが、導入当初のひそかな目論見として、「こ、これは着信音が作りホーダイではないか!」ということがありました。ガラケーの、箱庭的なアプリや、一応ネットに繋げなくもないんだぜ? 程度の環境に比べれば、ほぼほぼpcみたいなもんですから、ちまちまと謎の独自音声マクロ言語しばかなくても、好きな曲をうまいこと切り出すだけで、無限に着信音を量産できるワケです(もちろん個人レベルでの「私的な利用」の範囲内で、ですが)。

で、さっそく音声波形エディタのAudacityなど駆使して、自作着信音作りに着手しはじめたのですが、コレがなぜか上手くいかない。

音声ファイルから4小節程度を切り出し、Audacity上でループ再生させながら前後を切り詰め、素材によってはコンプかけたりしてから、aac(.m4a)ファイルに書き出し。Finder上で.m4rに拡張子を付け替えてから、iTunes経由で同期(iTunes12あたりから、「同期」、ではなく、「送り込み」方式になっており、若干ハマりポイントなのですが、そこは本筋ではないので割愛)。「時計」アプリのタイマーなどで、実際に鳴らしてみると……。

実際には「Your Voice(中塚武)」のイントロ部分をループさせて作っていたのですが、たぶんここで上げるといろいろアウトなので、チップチューン素材 | フリーBGM・音楽素材 MusMus から、http://musmus.main.jp/music/chip_01.mp3 の、0:28〜あたりを4小節ばかりお借りしております。。

……アレ?

なんかキレイにループしない。僅かですが、明らかに、ギクシャクしてしまっています。

Audacityに戻って、アタマをさらに切り詰めたり、いろいろいじってみるも改善せず。

Mac上で音声いじるのはかなり昔からやっていたものの、専業でもないし、アマチュア作曲家とか、そういう深いレベルでやってたワケでもないので、自身のスキルの問題か、あとはiOSの仕様でそうなってしまうのに違いない! と決めつけて、中途半端な仕上がりのままであきらめておりました。

そんなこんなで着信音量産計画は激しく盛り下がったまま時間は経過し、時に西暦2018年。使用中のiPhone SEが「バッテリー性能低下からの突然死を防ぐためにコッソリCPU性能落としてたゲート」にバッチリ該当したので意気揚々とアップルストアへ。バッテリー格安交換!性能も戻る! と、むしろホルホルしながら小一時間待っていると、スタッフの方が申し訳なさそうにバックヤードから現れ、「スミマセン、交換中に突如バッテリーの異常膨張が始まりまして……弊社規定により新品交換となってしまうのですがょ」「(食い気味に)よろこんで☆」。

……というワケで、なんか激しく焼け太ってしまったワケですが、実はこの時、やタイマーやアラームのような「通知音」が一切鳴らない」という謎の問題(MusicアプリやらYoutubeやらの音声はフツーに出るので、スピーカーとか、音声まわりのローレベルな問題ではない)も同時に発生していました。こちらは完全復旧かけると、またぞろ問題が再発してしまうという悲しい状態だったので、意を決して「サラ」からの手動復旧を決意。

まあ、64bit完全移行で動かなくなったアプリを未練たらしく残してたのとかがスッキリして結果オーライだったのですが、いくつかの大事な設定が飛んでしまい、泣きながらガッツで復旧。その過程で、「自作着信音が無くなってる!」となって焦ったのですが、この話の顛末は微妙に別の話なのでこれまたカット。

そんなこんなで悪戦苦闘しているうちに、ふと思い出したのが、この、自作着信音がキレイに仕上がらない問題。完全にiOSのせい、と思い込んでいたので、もしかしたら、着信音の(同期処理が変わったので)iOS11あたりで状況が改善しているかもしれない! さあ、試そう!ということでループ系着信音作成。iTunes経由で送り込み。

結果は果たして、失敗。同じく、ちょこっとした「ギクシャク」ができてしまい、キレイにループしない。

途方に暮れてネットをぐぐると、以前ヒットしたサイト記事「iPhone の着信音のループの間隔 (無音部分の長さ) – のき屋 — 」に遭遇。そうそう、(ほぼ)20ms問題、なんだよな。。あ、0.2秒じゃなくて0.02秒か。人間の耳って結構シビアだなあ。。などと思いつつ、さらによ〜〜く読むこと数回。さらにさらに、今回自作した着信音を聞き直すこと数十回。たまたま、オシリがドラムのフィルインで終わるところでループを切っていたので、iPhoneに入っている着信音は、タムの数がひとつ欠けていることに気づく。アレ? 今回は「微調整」してないのに、何故?

ここに至って、自分の勘違いにようやく気づきました。

× iOSの仕様により、音声のループがギクシャクしてしまう
◯ 波形エディタ(Audacity)から最終的に不可逆系のエンコードをかける際に、音声の「入れ物(タイムコード?)」と「中身(音声そのもの)」に、「ズレ(アタマに空隙入って、その分オシリが切り縮められ、なんか全体にちょっと伸びたりもする)」が発生している

だった、のです。「音声 エンコード 遅延」などでぐぐると、たしかにそれ系の情報がガンガン、ヒットします。

なんと。。

ためしに、Audacity から、(非圧縮の)wav形式で書き出すと、キレイにループします。遅まきながら、mac上にある.m4rファイルを.m4aに戻して再生すると、そもそも、この段階でズレてる!iPhone/iOS関係ない!


オシリの波形がキッチリ、欠けている。トータルの時間も、オリジナルが6.85秒、.m4aに書き出したものを再度開いたものは6.78秒、と、70msの違いが発生している(……20ms、という話とズレてるけどまあ、いいや!)

……いやはや、思い込みというものは実にオソロシイものですね。まさか、エンコーダがこんなアナログちっくなバグ^h^h仕様 を抱えているとは全く想像しなかっただけに、原因突き止めにエラく時間かかってしまいました。

しかし、まだハナシは終わりません。なにせ着信音は.m4a(.m4r)にしないことには受け付けてもらえないのてすから、なんらかの方法で「遅延させずにm4aコンテナ化」させないことには、問題は解決しないのです。

ダメ元で、.wavファイルの拡張子をむりくり.m4rにして喰わせてみると、さすがに拒否。ふむ。そりゃそうだ。

もしかしたらアップルロスレスならいいんじゃね?などと思うものの、Audacityで書き出す方法が分からず、iTunesで変換。
アレ、コンテクストメニューに入ってたはずの、変換時のエンコーディング指定どこ行った(正解は、「環境設定→一般→CDがセットされたとき、の「読み込み設定」」なのだが、そんなん分かるか(怒))??? ……などと試行錯誤している間に、「たぶんaac形式のm4a」ができてしまい、さらにうっかりこのファイルをダブルクリック。当然、iTunesが取り込んでしまい、再生開始。アレ?ギクシャク感が……無い?、慌てて当該ファイルをFinder上で表示させ、拡張子を.m4rに。すかさずiPhoneに送り込み。

……ギクシャク感、無い!\(^o^)/

なんと、iTunes内蔵の「純正エンコーダ」は、遅延(冒頭ズレ、最後が切られる)が起きないのですね〜。

というワケで、最後の方は偶然に助けられましたが、ワタシの着信音を巡る戦いはおよそ10年の時を経て、ようやく終着したのでした。

いやはや。

【手順まとめ】

  1. 着信音に適した、キャッチーでBPMの安定した曲を見つける
  2. Audacityで気の済むまでいじって、ループ再生(Shift+スペース)して気にならないところまで仕上げる
  3. 「File→Export…」で、wavファイル書き出す(非圧縮系ならたぶんなんでも良い。この時点で、ズレや遅延が無いことを「耳」で確認すること)
  4. いったん、iTunesにwavファイルを取り込む
  5. 「ファイル→変換→AACバージョンを作成(※エンコーディング方式によっては、ここのメニュー名は「アップルロスレスバージョンを〜」とかになる)」で、.m4aファイルを作る
  6. 新しくできた「曲」を右クリックして、「Finderで表示」する
  7. 当該ファイルの拡張子を.m4rに変更(警告は、当然、無視)
  8. (iPhoneなどを接続した状態で)iTunesのデバイスアイコンクリック→着信音を選択してから、着信音が並んでいるペインに.m4rをドラッグ&ドロップ

手数多いうえに、iTunesを行ったり来たりするのでヒジョーに煩雑ですが、エンコーダによる遅延・ズレを回避するには、現状、これしか方法、無いです。ハイ。

もう21世紀にもなるのに、いったい俺(たち)は何と格闘しているのやら。。

とりあえず、Appleにおかれては、そろそろメニューやら機能の配置をいきあたりばったりに変えるのをヤメレ★

あ、そうだ。この記事、いずれ「風化」するのでバージョン書いておこう。

  • iOS11.x
  • iTunes 12.7 (←ここが一番改悪^h^h迷走^h^h変化が激しいので注意)
  • Audacity 2.0.5

での話です。

【延長戦】
……と、ここまで書いて、ふと、「GarageBandでは共有メニューから一発で着信音が書き出せて云々」みたいな記述を他サイトで見かけたことを思い出しました。iOS側の問題だと思い込んでいたので、音声ファイルの編集環境自体を露ほども疑っていなかったのですが、結局のところ「純正エンコーダ」ならば問題が起きない、のであれば、Apple謹製のGarageBandで着信音を作成すれば、問題ないのではないでしょうか。

というわけで、生まれて始めて、GarageBandで曲づくり(笑)。

プリセットのループ集から適当に切って貼って、「共有→着信音をiTunesに…」を選択。iTunesに画面が切り替わり、上手くいった風、ですが、iPhoneに入らない。「着信音」の項目にも該当のものは見当たらず。

ここでまたハマるところですが、どっこい私は着信音の同期問題については並みの人より詳しくなってしまっているので、「ハハンこれはiTunesにおいて、着信音の扱いが「同期」から「送り込み」に変更になった現状にGarageBandがついていってないな」ということにいち早く気が付き、「ホームディレクトリ→iTunes」フォルダを確認。「Import」という、いかにもな名前のフォルダが新たに出来ている! 開けると、果たして、作成したばかりの「ringtone_sample.m4r」が書き出されている。うはは。

このファイルを、iTunesのデバイスボタン→サイドバーの着信音を開き、ドラッグ&ドロップすると、(当たり前ですが)無事、iPhoneにファイル送り込み完了。再生すると、ループのギクシャク感は全く無し。\(^o^)/

……なるほど、道理で、「iOS 着信音 ループしない」とかでぐぐってもあんまりヒットしないワケですな。ガレバンで作ってればそもそも問題に気づきませんからな。。

というわけで、ガレバンだと数ステップほど手順が減りますが、根本的に「なんかメンドイのう……」感は拭えませんね。ワタシは別に作曲したり、アレンジするほどのガッツはなく、むしろなるべく原曲のまま、単にキレイにループする部分を切り出したいだけなので、引き続き扱いに慣れたAudacityを使い続けるでしょう。

ありものループを重ねただけのどうでもいい仕上がりですが、(キレイにループする)「自作」着信音、よろしければどうぞ(ringtone_sample.m4r)。

どっとはらい。(完)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です