【コラム】

実践! iPhoneアプリ開発

10 楽器アプリの作り方 (1) - iPhoneのオーディオフレームワーク

    木下誠  [2009/05/25]

    今回からは、楽器アプリを取り上げてみる。iPhoneをギターやピアノといった楽器にするアプリケーションは、App Storeの売り上げでも人気を博しており、iPhoneアプリの代表格とも言えるだろう。この連載としては、楽器アプリの作り方を通して、iPhoneのオーディオテクノロジーを概観する事が目的となる。

    iPhoneのオーディオフレームワーク

    アプリの制作にとりかかる前に、iPhoneが持つオーディオフレームワークを紹介しよう。図示すると、次のようになると思う。

    iPhoneのオーディオテクノロジーは、Core Audioと総称される。その中でも重要なのは、Mac OS Xに由来するオーディオフレームワークであるAudio ToolboxとAudio Unitだ。この2つのフレームワークに、多くの機能が備わっている。その一部を書き出すと、

    • オーディオファイルの再生、一時停止、ループ
    • オーディオの録音
    • 様々なオーディオフォーマットの読み込み
    • オーディオのエフェクト処理
    • 警告音やバイブレーションの再生(バイブレーションはiPod touchでは不可)

    などがある。オーディオ関連の処理で必要なものは、ここにそろっている。

    OpenALは、標準化されたオーディオAPIである。OpenGLのオーディオ版と考えてもいい。OpenALは様々なプラットフォームで実装されているので、その使い方に慣れている方は、ここから始めるといいだろう。その成り立ちから、ゲームアプリケーションでよく使われているようだ。3次元空間での音源位置指定や、ドップラー効果といった、ゲームで便利そうな機能を備えているのも特徴だ。

    AVFoundationは、オーディオプレイヤーを簡単に作るために用意されたフレームワークだ。オーディオファイルの再生、一時停止、シーク、ボリューム設定、再生時間の取得、などを簡単に行える。これにユーザインタフェースを被せれば、自分のアプリケーションで簡単にオーディオプレイヤーを実現できる。他のフレームワークと比べると、高レベルに位置するものになる。

    楽器アプリのためのライブラリ

    このようなフレームワークがあることをふまえて、楽器アプリを作成する事を考えてみよう。楽器アプリに求められる要件は、次のようなものである。

    • オーディオファイルの再生。ユーザが画面上に表示された楽器の一部をタップすると、用意されたオーディオファイルを再生する。
    • 複数オーディオの同時再生。ユーザが同時に二カ所以上タップした場合は、その数だけオーディオを再生する。
    • オーディオのループ再生。管楽器のように任意の長さの音を演奏できる楽器では、ループ再生する事が必要だろう。

    このような条件を考えると、Core Audioの中から楽器アプリ実現に適したライブラリとして、次のものが考えられる。

    System Sound Service

    Audio Toolboxに含まれるサービスである。30秒以下のシステム警告音を鳴らすのに使われる。打楽器のようなものに対しては、十分な機能と言えるだろう。オーディオライブラリの中でも、最も少ない手順でオーディオファイルを再生する事ができるのも魅力である。

    Audio Queue Service

    こちらもAudio Toolboxに含まれるサービスである。オーディオデータのためのバッファを作成して、そこにデータを追加していく事で再生を行う。再生データを任意に変更する事ができるので、好きな箇所でループを再生を行うなど、自由度の高いオーディオ処理が可能となる。また、自分で波形を作成して鳴らすという、シンセサイザーのようなこともできる。機能が高い反面、取り扱い方は複雑になる。

    OpenAL

    OpenALはもともとゲームのために用意されたAPIなので、自由度の高い再生ができる。OpenGLとの相性もいいので、画面の表示と同期させたいときには適切だろう。また、パフォーマンスの点でも有利な事が多い。

    これらのライブラリを使って、楽器アプリを作成してみよう。

    最後に、一つ重要な点を注意しておく。iPhoneは様々なオーディオフォーマットに対応しているが、ハードウェアの制限としてMP3とAACは、一度に一つのファイルしか再生する事ができない。おそらく、フォーマットのデコードをハードウェアで処理しているためであろう。楽器アプリのように複数オーディオ再生が必要な場合は、AIFFやWAVといったフォーマットで音源を用意しておこう。

    新着記事

    特設サイトの情報

      求人情報

      人気記事

      一覧

      イチオシ記事

      新着記事

      特別企画

      転職ノウハウ

      あなたの仕事適性診断

      4つの診断で、自分の適性を見つめなおそう!

      Heroes File ~挑戦者たち~

      働くこと・挑戦し続けることへの思いを綴ったインタビュー

      はじめての転職診断

      あなたにピッタリのアドバイスを読むことができます。

      転職Q&A

      転職に必要な情報が収集できます

      スカウト転職する

      企業からアプローチのメッセージが届きます。

      マイナビニュースマガジン