com.docomostar.ui
クラス Synthesizer

Object
  上位を拡張 com.docomostar.ui.Synthesizer
すべての実装されたインタフェース:
MediaPresenter

public class Synthesizer
extends Object
implements MediaPresenter
 [iアプリオプションAPI]

シンセサイザ操作機能を提供するクラスです。 音源デバイスへの UCS(User Customize Sound) データの設定と、メッセージによるリアルタイム発音が可能です。

メッセージによるリアルタイム発音の手順は次のようになります。 始めに play() により音源デバイスをメッセージ受付中状態にします。 受付中状態でsendMessage(byte[], int, int) により音源デバイスへメッセージを発行します。 最後に stop() により音源デバイスのメッセージ受付を停止し初期状態に戻します。 なお、これらのメソッドによるシンセサイザ操作機能の状態遷移は以下になります。 (表中の括弧内について、スラッシュの前は具体的な処理を、スラッシュの後は次に遷移する状態を示しています。)

受付中状態でアプリケーションがサスペンドした場合、停止処理が行われます。 すなわち、stop() メソッドが呼ばれたのと同じ状態になります。

――――― play呼出 stop呼出 サスペンド
初期状態 準備処理/
受付中
NOP/--- NOP/---
受付中 --- 停止処理/
初期状態
停止処理/
初期状態

このクラスではシンセサイザ操作機能に必要ないメソッドの利用は制限されています。 詳細は、各メソッドの説明を参照してください。

シンセサイザ機能同士の同時利用ができないことを除き、 原則として、同時利用における動作は、AudioPresenter と同様です。 AudioPresenter または AudioTrackPresenter との同時利用における、 このプレゼンタのデフォルトの利用優先順位は AudioPresenter.NORM_PRIORITY です。 ポート指定がない場合、およびポート指定がある場合、 これらのインスタンスが混在した場合の動作についても AudioPresenter と同様です。 以下に AudioPresenter、AudioTrackPresenter との同時利用における補足を示します。

AudioPresenter との同時利用:

このプレゼンタは AudioPresenter との同時利用をサポートします。

このプレゼンタの利用時における AudioPresenter の並列再生可能数は機種依存です。 このプレゼンタと AudioPresenter をあわせた同時利用可能数が、 AudioPresenter クラスに記述されているミニマムスペック未満となる場合も有り得ます。

AudioTrackPresenter との同時利用:

このプレゼンタと AudioTrackPresenter の同時利用をサポートしているかどうかは機種依存です。

サポートしていない場合は、同時利用可能数が 1 であるとみなします。 また、サポートしている場合、 このプレゼンタの利用時における AudioTrackPresenter の並列再生可能数は機種依存です。 このプレゼンタと AudioTrackPresenter をあわせた同時利用可能数が、 AudioPresenter クラスに記述されているミニマムスペック未満となる場合も有り得ます。

シンセサイザ操作機能における注意事項

音源デバイスへ UCS を設定する場合には、 端末の音源デバイスに対応した UCS データを作成する MFi オーサリングツールが必要です。

音源デバイスへ発行するメッセージのフォーマットは、端末の音源デバイスに対応したフォーマットです。 MIDI メッセージと異なる点に留意してください。

このクラスで定義されているメッセージの詳細な振る舞いは、 音源デバイスに依存します。

導入されたバージョン:
Star-1.5

フィールドの概要
static byte BANK_3POLY
          音色バンクの 1 つで、3和音を表します (=125)。
static byte BANK_DRUM
          音色バンクの 1 つで、ドラムセットを表します (=120)。
static byte BANK_GM
          音色バンクの 1 つで、GMを表します (=121)。
static byte BANK_SE
          音色バンクの 1 つで、効果音を表します (=20)。
static byte BANK_UCS
          音色バンクの 1 つで、UCS を表します (=17)。
static byte COMMAND_ALL_NOTE_OFF
          メッセージの 1 つで、全音ノートオフコマンドを表します (=12)。
static byte COMMAND_ALL_SOUND_OFF
          メッセージの 1 つで、全音消音コマンドを表します (=11)。
static byte COMMAND_BALANCE
          メッセージの 1 つで、ステレオバランス設定コマンドを表します (=6)。
static byte COMMAND_BANK_SELECT
          メッセージの 1 つで、音色バンク変更コマンドを表します (=2)。
static byte COMMAND_EXPRESSION
          メッセージの 1 つで、エクスプレッション設定コマンドを表します (=5)。
static byte COMMAND_HOLD
          メッセージの 1 つで、サステインレベル維持コマンドを表します (=10)。
static byte COMMAND_MASTER_BALANCE
          メッセージの 1 つで、マスターステレオバランス設定コマンドを表します (=15)。
static byte COMMAND_MASTER_VOLUME
          メッセージの 1 つで、マスター音量設定コマンドを表します (=14)。
static byte COMMAND_MODULATION
          メッセージの 1 つで、モジュレーションデプス設定コマンドを表します (=7)。
static byte COMMAND_NOTE_OFF
          メッセージの 1 つで、ノートオフコマンドを表します (=1)。
static byte COMMAND_NOTE_ON
          メッセージの 1 つで、ノートオンコマンドを表します (=0)。
static byte COMMAND_PITCHBEND
          メッセージの 1 つで、ピッチベンド設定コマンドを表します (=8)。
static byte COMMAND_PITCHBEND_RANGE
          メッセージの 1 つで、ピッチベンドレンジ設定コマンドを表します (=9)。
static byte COMMAND_PROGRAM_CHANGE
          メッセージの 1 つで、プログラム変更コマンドを表します (=3)。
static byte COMMAND_RESET_CONTROLLER
          メッセージの 1 つで、コントロールチェンジ設定初期化コマンドを表します (=13)。
static byte COMMAND_VOLUME
          メッセージの 1 つで、ボリューム設定コマンドを表します (=4)。
static byte SUBVOICE_NOT_EXIST
          サブボイス情報がないことを表します (=-1)。
 
コンストラクタの概要
protected Synthesizer()
          アプリケーションが直接このクラスのインスタンスを生成することはできません。
 
メソッドの概要
static int getAvailableMessageNum()
          一度に発行できるメッセージの上限数を取得します。
static int getAvailableUCSDataNum()
          設定できる UCS データの上限数を取得します。
static int getAvailableUCSDataSize()
          設定できる UCS データに含まれる Wave データの合計上限サイズを取得します。
 MediaResource getMediaResource()
          このクラスのインスタンスに対して呼び出すことはできません。
static Synthesizer getSynthesizer()
          シンセサイザ操作機能オブジェクトを取得します。
static Synthesizer getSynthesizer(int port)
          発音するポート番号を指定してシンセサイザ操作機能オブジェクトを取得します。
 void play()
          メッセージの受付を開始します。
 void sendMessage(byte[] data, int offset, int length)
          単一もしくは複数のメッセージを発行します。