====== Getting Started with Audio ====== 原文 //Getting Started with Audio [[http://developer.apple.com/referencelibrary/GettingStarted/GS_MusicAudio/index.html]]// ===== 技術概要 ===== オーディオ技術は、多くの Mac OS X アプリケーションの成功に、必要不可欠な技術です。 基本的な音声再生には、全ての開発者は Quick Time を使うことが出来ます。また、Cocoa 開発者ならば NSSound クラスを使用することも出来ます。 簡単な音声再生を越えた操作には Core Audio を用います。 Core Audio を使うことで、音声やMIDIファイルの録音、編集、フィルタリング、変換、生成、そして再生を行うことが可能です。 ゲームやその他のアプリケーションに、あたかも実体験しているかのような音声効果を加えるには OpenAL を用います。 音声やデータを CD/DVD に焼くには Disc Recording API を使います。 Core Audio は Audio Unit として知られる、柔軟性に富み、応用範囲の広いプラグインアーキテクチャを提供します。 Audio Unit を使用することで、Logic Pro や GarageBand といったデジタルオーディオアプリケーションに、機能を追加(enhance)する事が出来ます。 同様に、自分で開発するアプリケーションに、オーディオ的な特徴を付加することも出来ます。 Audio Unit により、アプリケーションはフィルタリングやリバーブといったエフェクト、MIDI ベースの音楽の統合(synthesis)、音声データ形式の変換、ミキシング、定位変更、音声生成、再生などの機能を提供することが出来ます。 ハードウェアベンダならば、その製品と Mac OS X がやり取り出来るようにするために、ドライバを提供する必要があるかもしれません。 Core Audio はドライバ開発を援助します。 開発者は、必要とする Core Audio の部品のみを、選択して使うことができます。 例えば、ゲームプログラマならば、MIDI データの再生とサンプリング音声を組み合わせたいかもしれません。また、ひょっとしたら Audio Unit によるエフェクトを、この2つの音源をミックスしたものに適用するかもしれません。 そして、リアルなユーザー体験を提供するために、処理した音声データを OpenAL に渡す事も出来るでしょう。 ===== ここからはじめましょう ===== 音声技術を使用したアプリケーションの開発に取り組む前に、以下の文章を読むべきでしょう: * [[翻訳文章:オーディオ:core_audio_概要:はじめに|Core Audio 概要]] で Core Audio の特徴、構造、プログラミングインターフェースについて学びましょう。 * [[http://developer.apple.com/audio/|Audio]] ページで Core Audio API、関連文献、Technical Note の最新情報に詳しくなりましょう。 * [[http://developer.apple.com/sdk/|Core Audio SDK]] のサンプルコードを見て、多くのプロジェクトの開始地点としましょう。 ===== 学習課程の選択 ===== アプリケーションの開発に用いる言語や複雑さに基づいて、Mac OS X の様々なオーディオ API の中から、実際に使用する物を選択します。 基本的な音声再生には、次に述べる Cocoa や Carbon の組み込みサービスを用います。 音声データや MIDI データの操作、Audio Unit や Audio Codec の作成には、Cocoa/Carbon アプリケーションの中で Core Audio を使用します。 ==== 音声再生 ==== 音声データの単純な再生を必要とする Cocoa アプリケーションを作成する場合は、[[http://developer.apple.com/documentation/Cocoa/Conceptual/Sound/index.html|Sound Programming Topics for Cocoa for Cocoa]] をご参照下さい。 Carbon アプリケーションを作成する場合は、Quick Time を用いて基本的な音声再生を行います。 Quick Time については [[http://developer.apple.com/documentation/QuickTime/RM/MusicAndAudio/Sound/index.html|Quick Time Audio]] をご参照下さい。 ==== 高度な音声データ再生と操作 ==== 自身の Mac OS X アプリケーションに、以下のいずれかの特徴を加えたい場合は、[[翻訳文章:オーディオ:Core Audio 概要:はじめに|Core Audio 概要]] を読み、適切な Core Audio や OpenAL の API の使用を決めて下さい: * デジタル信号処理 * MIDI ベースの音楽の統合(synthesis) * 音声データの編集と再生 * 音声の空間的な操作(#原文:Spatial manipulation of audio) * 音声データ形式の変換 * ハードウェアとのやり取り * 音声データの記録媒体への保存 Audio Unit を開発するならば、その概念とチュートリアルを提供する [[http://developer.apple.com/documentation/MusicAudio/Conceptual/AudioUnitProgrammingGuide/index.html|Audio Unit Programming Guide]] をお読み下さい。 [[http://developer.apple.com/sdk/|Core Audio SDK]] は Audio Unit の参考文献と、開始点となる様々な Xcode プロジェクトを含んでいます。 開発する Audio Unit が、Logic Pro といった Apple Pro アプリケーションでの使用も視野に入れるならば、[[http://developer.apple.com/audio/pdf/AudioUnitDevGuidelines.pdf|Audio Unit Developer Guidelines (PDF)]] を精読下さい。 Technical Q&A QA1318 [[http://developer.apple.com/qa/qa2001/qa1318.html|How to Handle Audio Data With Magic Cookie Information]] は、Magic Cookie を要求する圧縮形式でメタ情報を使う方法を解説します(#原文:describes how to use metainformation with compression formats that require it.)。 Core Audio SDK の Services フォルダにある AudioFileTools という Xcode プロジェクトは、音声の録音と再生、形式変換、インターリーブなどの動作例を提供します。 アプリケーションで音声の空間的な操作を扱いたい場合、特にゲーム開発者ならば、OpenAL について [[http://www.openal.org/|OpenAL]] のウェブサイトでより深く学びましょう。 Audio Codec を開発する場合は、[[http://developer.apple.com/documentation/MusicAudio/Reference/CoreAudio/index.html|Core Audio]] の [[http://developer.apple.com/documentation/MusicAudio/Reference/CoreAudio/audiocodec/chapter_3_section_1.html|Audio Codec]] をお読み下さい。 [[http://developer.apple.com/sdk/|Core Audio SDK]] は、独自のコーデックの土台として使えるサンプルコーデックが含まれています。 ==== アプリケーションで MIDI を使う ==== シンセサイザで MIDI データの演奏を行ったり、入ってくる MIDI データを記録したりするつもりならば、[[翻訳文章:オーディオ:Core Audio 概要:はじめに|Core Audio 概要]] の [[http://developer.apple.com/documentation/MusicAudio/Conceptual/CoreAudioOverview/WhatsinCoreAudio/chapter_3_section_7.html|Core MIDI Services and MIDI Server Services]] をお読みください。 Quick Time での MIDI データの使い方を学ぶには [[http://developer.apple.com/documentation/QuickTime/RM/MusicAndAudio/MIDIFileFormat/index.html|MIDI File Format]] をご覧ください。 ==== オーディオデバイスへの対応 ==== オーディオデバイスのドライバを書く必要があるのならば、[[http://developer.apple.com/documentation/DeviceDrivers/Conceptual/WritingAudioDrivers/index.html|Audio Device Driver Programming Guide]] をご参照下さい。 [[http://developer.apple.com/referencelibrary/GettingStarted/GS_HardwareDrivers/index.html|Getting Started with Hardware and Drivers]] も読むとよいかもしれません。 ==== ディスクへの書き込み ==== アプリケーションがディスクへの書き込み機能を提供する予定ならば、[[http://developer.apple.com/documentation/ReleaseNotes/UserExperience/DiscRecording.html|Disc Recording]] リリースノートを精読下さい。 Disc Recording API は [[http://developer.apple.com/documentation/MusicAudio/Reference/DiscRecordingFrameworkRef/index.html|Disc Recording Framework Reference]] で、Disc Recoding UI の API は [[http://developer.apple.com/documentation/MusicAudio/Reference/DiscRecordingUIFrameworkReference/index.html|Disc Recording UI Framework Reference]] に文章化されています。 ===== 次なる高みへ ===== [[http://developer.apple.com/referencelibrary/MusicAudio/index.html|Audio Reference Library]] 以下の資料を含みます。それらページへ簡単にアクセス出来るように、リンクしておきます: * [[http://developer.apple.com/documentation/MusicAudio/index.html|Guides]] \\ 技術の概念と手引きです。 * [[http://developer.apple.com/reference/MusicAudio/index.html|Reference]] \\ 音声技術をリファレンス形式で詳細に解説する事に焦点を当ててています。 * [[http://developer.apple.com/releasenotes/MusicAudio/index.html|Release Notes]] \\ 音声の技術と SDK についての様々な覚書です。 * [[http://developer.apple.com/samplecode/MusicAudio/index.html|Sample Code]] \\ 様々な音声技術のサンプルデモアプリケーションです。[[http://developer.apple.com/sdk|Core Audio SDK]] がインストールされていれば、/Developer/Examples/CoreAudio にサンプルプロジェクトが格納されており、Xcode Tools の一部として利用できます。 * [[http://developer.apple.com/technicalnotes/MusicAudio/index.html|Technical Notes]] \\ 音声技術に関連する事項の最新の文章です。 * [[http://developer.apple.com/technicalqas/MusicAudio/index.html|Technical Q&As]] \\ Apple のサポート技術者による、プログラミングのヒント、コードの抜粋、FAQ です。 * Mailing Lists \\ Core Audio メーリングリスト([[http://www.lists.apple.com/mailman/listinfo/coreaudio-api|coreaudio-api]])は、Mac OS X で Core Audio/OpenAL/MIDI APIを使う開発者仲間が、問題や議題を議論するのにとても適した場所です。