ホームへ


Cockatiel(コカティール)とは、ピュアサウンドが提供する一連のサウンド関連ソリューションのシンボルです。
組み込み用サウンドドライバーやオーサリングツールの提供など、サウンドに関連する開発支援を幅広く実現してゆくことを目的とします。
愛らしい鳥の英名であるCockatielは、アプリケーション開発者やサウンドデータ制作者を励まし、作業負担を少しでも軽減したいとの理念を表したサービスブランドです。

スマートフォンアプリ開発に便利。多数の音楽・効果音をコンパクトにまとめるサウンドエンジン、それが ”SmartAudio16”です。

SmartAudio16使用例

SmartAudio16を使うと、動画のようにテンポを維持したままの音程変更や、逆に音程を維持したままのテンポ変更を容易に行うことができます。

MP3などのミックスされたオーディオデータは、テンポを速めようと再生速度を上げると、音程も一緒にあがってしまいます。これは、オーディオ波形のデータを間引くことで、音程をつかさどる『波長』も一緒に短くなってしまうためです。

しかし、SmartAudio16では既存のMIDI規格と同様、シーケンス(譜面)データと音源データを分けた構造となっています。テンポやキーがどのように変化しようと、譜面データが書き換わるのみで、音源データには影響はありません。そのため、ミックスされたオーディオデータでは実現が困難な、独立したキーやテンポの操作が可能となるのです。

お問合わせ資料のご請求は
こちらのフォームからどうぞ

スマートフォン向けサウンドエンジン SmartAudio16 の概要

サウンド制作に長年たずさわってきたピュアサウンドは、このたびスマートフォン(ios , Android)向けサウンドエンジンSmartAudio16を開発いたしました。 多数の音楽・効果音をコンパクトにまとめるだけではなく、発音数管理、優先順位処理もこなすプログラマーに優しいミドルウェアです。

SmartAudio16は、iOS、AndroidOSが搭載された端末上でサウンド演奏を行なうためのライブラリです。
『独自で構築した音源を、独自シーケンスを使用して演奏する』という点において、OS標準のサウンド演奏用サービスとは大きく異なります。

SmartAudio16は旧来の家庭用ゲーム機や携帯ゲーム機、また着信メロディなどと同様の設計思想を持っており、少ないリソース容量でありながら多彩なサウンドの演奏を実現します。
また、SmartAudio16で使用するメモリ領域のサイズは初期化時に任意のサイズを指定できるため、プロジェクトごとに柔軟なメモリ設計が可能です。

特に大量のサウンドを必要とする大規模なゲームアプリケーションや、発音数管理やメモリ管理が煩雑で、プログラマーの負担となるようなアクション性、インタラクティブ性の強いアプリケーションのサウンド開発において効果を発揮します。

お問合わせ資料のご請求は
こちらのフォームからどうぞ

1.仕様・特徴

SmartAudio16は、iOSやAndroidOSの標準サウンド演奏サービスにはない、次の特徴を備えています。

シーケンスによる演奏

SmartAudio16では、スタンダードMIDIファイルを圧縮した非常にコンパクトなシーケンスデータと、音源データを使用して楽曲を演奏します。

演奏に必要な全てのサウンドデータは、『spkgサウンドパッケージファイル』という1つのファイルにまとめられるので、プログラマーは大量のサウンドデータのファイル管理に煩わされる必要がありません。

最大16個のシーケンスを同時演奏可能

SmartAudio16は、シーケンスを演奏するための『シーケンスプレイヤー』という仕組みを備えています。 シーケンスの演奏を開始する際、SmartAudio16がシーケンスに対して自動的に1つのシーケンスプレイヤーを割り当てます。 シーケンスプレイヤーは16個まで用意することができ、それぞれ並列して動作するため、最大で16個のシーケンスを同時演奏することが可能です。

最大16音同時発音可能

たとえばシューティングゲームのように、短時間のうちに多数の効果音が鳴らされるアプリケーションの場合、効果音を際限なく演奏すると、メモリを予想以上に消費したり、CPUの負荷が過剰となります。
CPUの負荷を抑えるために、同時に演奏される効果音の数を制限することが考えられますが、そのような処理を追加することは、プログラマーにとって煩雑な作業であるといえます。
SmartAudio16では、あらかじめ最大の同時発音数を16音に制限しており、後述するプライオリティにより自動的に発音数管理を行うので、プログラマーもサウンド制作者も、シビアに発音数を管理する必要はありません。

プライオリティを用いた発音制御

SmartAudio16は、シーケンスや発音数の最大値を超えた場合、どのサウンドを優先して演奏するかを決めるための『プライオリティ(優先度)』という仕組みを備えています。
プライオリティはサウンド制作者が任意に設定することができます。
そのプライオリティ設定に基づき、SmartAudio16が自動的に発音の管理を行うので、プログラマーは優先度を一切意識せずに最適なサウンド演奏が行われます。
プライオリティには2タイプあり、シーケンスプライオリティはシーケンスプレイヤーの同時演奏数の制御に、トラックプライオリティは16音という発音数の制御に使用されます。

簡潔で安心なメモリ管理

SmartAudio16は、初期化時に連続した動的メモリ領域を『サウンドヒープ』として確保します。
演奏のために必要なデータはすべてサウンドヒープ内に配置されるので、サウンドヒープ外の領域へ無作為に、また予期しない場所に配置されることはありません。
メモリの使用状況を確認するためのメソッドが用意されているので、メモリ管理も容易です。

大量のシーケンスも手軽に一括ロード

サウンドヒープへのデータのロードは、複数のシーケンスと、シーケンスの演奏に必要なオーディオデータをを一かたまりにした『グループ』を単位として行います。
たとえ100個を超える効果音でも、ひとつのグループにまとめれば、たった一回のメソッド呼び出しで演奏に必要なすべてのデータをサウンドヒープへロードすることができます。

安定性の高いCPU負荷

SmartAudio16の1秒間のCPU使用率平均値は、通常9%程度です。(注)
OS標準のサウンド演奏サービスでは、同時演奏するオーディオデータの数が増えるほどCPU使用率も増大していきますが、SmartAudio16では同時発音数の制限内で処理を行うため、極端にCPU使用率が上昇することはありません。
そのため、アプリケーションを通じて安定した動作を実現します。

(注. iPhone4での計測値)

▲ページ上部へ   ■ホームへ

2.プログラマーに優しいライブラリ

一つのライブラリと一つのサウンドデータをリンクするだけで準備完了

サウンドデータ全てを、専用オーサリングツールSoundJungleで一つのサウンドパッケージファイルにパッキング。 膨大なリソースデータの管理に煩わされることは、ありません。

一つのライブラリと一つのサウンドデータをリンクするだけで準備完了

▲ページ上部へ   ■ホームへ

3.動作条件

SmartAudio16の動作環境を次に示します。

2.1.iOS版

  • 機種: iPhone 3GS以降 / iPad (armv7アーキテクチャに対応したCPUを搭載している機種)
  • 言語: Objective-C
  • OS: iOS4.0以上

2.2.AndroidOS(Java)版

  • 機種: ARMアーキテクチャを採用しているCPUが搭載されたAndroidOS端末
  • 言語: Java
  • OS: AndroidOS2.1以上(API level 7)

2.3.AndroidOS(NativeActivity)版

  • 機種: ARMアーキテクチャを採用しているCPUが搭載されたAndroidOS端末
  • 言語: C
  • OS: AndroidOS2.3.3以上(API level 10)

▲ページ上部へ   ■ホームへ

4.オーサリングツールSoundJangle

既存のMIDIファイルやオーディオファイルからデータ作成可能

SoundJungle
オーサリングツールSoundJungle

別途オーサリングツールを使用することにより、spkgサウンドパッケージファイルを独自に作成することが可能です。
spkgサウンドパッケージファイルはスタンダードMIDIファイルやaif、wavファイルといった一般的なデータを使用して作成するので、着信メロディやゲーム機等で使用した過去のリソースを活かすことが出来ます。
またADPCM形式のwavファイルにも対応しています(注1)。
データサイズは、シーケンスデータでは通常のMIDIファイルの約50%、オーディオデータではADPCM使用時に限りaifの約25%のサイズに削減されます(注2)。

(注1. ただし、サウンドヒープへのロード時に、リニアPCM形式にデコードされます。)

(注2. シーケンスデータの容量削減効率はデータ量が多ければ多いほど上がります。そのため、極端に短いシーケンスデータでは容量削減効果が得られません。)

お問合わせ・資料のご請求はこちらのフォームからどうぞ
▲ページ上部へ   ■ホームへ

  • ※「Android」はGoogle Inc.の商標または登録商標です。
  • ※「Java」は、Oracle America, Inc. の商標です。
  • ※「ARM」はARM 社の登録商標です。
  • ※その他記載されている会社名、製品名は各社の登録商標または商標です。
 

ページトップへ