com.docomostar.opt.ui
クラス Synthesizer

Object
  拡張com.docomostar.opt.ui.Synthesizer
すべての実装インタフェース:
com.docomostar.ui.MediaPresenter

public class Synthesizer
extends Object
implements com.docomostar.ui.MediaPresenter

シンセサイザ操作機能を利用するためのオーディオプレゼンタです。 音源デバイスへの 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.0

フィールドの概要
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 データの合計上限サイズを取得します。
 com.docomostar.media.MediaResource getMediaResource()
          このクラスのインスタンスに対して呼び出すことはできません。
static Synthesizer getSynthesizer()
          シンセサイザ操作機能オブジェクトを取得します。
static Synthesizer getSynthesizer(int port)
          発音するポート番号を指定してシンセサイザ操作機能オブジェクトを取得します。
 void play()
          メッセージの受付を開始します。
 void sendMessage(byte[] data, int offset, int length)
          単一もしくは複数のメッセージを発行します。
 void setAttribute(int attr, int value)
          発音に関する属性値を設定します。
 void setMediaListener(com.docomostar.ui.MediaListener listener)
          このクラスのインスタンスに対して呼び出すことはできません。
static void setUCSData(byte[][] ucsData, byte[] subVoiceNo)
          シンセサイザ操作機能で利用する UCS データを音源デバイスへ登録します。
 void stop()
          メッセージの受付を停止します。
 
クラス Object から継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

COMMAND_NOTE_ON

public static final byte COMMAND_NOTE_ON
メッセージの 1 つで、ノートオンコマンドを表します (=0)。
チャンネル指定 データ 0 値域 データ 1 値域 データ 2 値域
○ key
(21〜120)
velocity
(0〜127)
―

関連項目:
定数フィールド値

COMMAND_NOTE_OFF

public static final byte COMMAND_NOTE_OFF
メッセージの 1 つで、ノートオフコマンドを表します (=1)。
チャンネル指定 データ 0 値域 データ 1 値域 データ 2 値域
○ key
(21〜120)
― ―

関連項目:
定数フィールド値

COMMAND_BANK_SELECT

public static final byte COMMAND_BANK_SELECT
メッセージの 1 つで、音色バンク変更コマンドを表します (=2)。
チャンネル指定 データ 0 値域 データ 1 値域 データ 2 値域
○ bank
(0〜127)
― ―

関連項目:
BANK_GM, BANK_DRUM, BANK_3POLY, BANK_SE, BANK_UCS, 定数フィールド値

COMMAND_PROGRAM_CHANGE

public static final byte COMMAND_PROGRAM_CHANGE
メッセージの 1 つで、プログラム変更コマンドを表します (=3)。
チャンネル指定 データ 0 値域 データ 1 値域 データ 2 値域
○ prog
(0〜127)
― ―

関連項目:
定数フィールド値

COMMAND_VOLUME

public static final byte COMMAND_VOLUME
メッセージの 1 つで、ボリューム設定コマンドを表します (=4)。
チャンネル指定 データ 0 値域 データ 1 値域 データ 2 値域
○ volume
(0〜127)
― ―

関連項目:
定数フィールド値

COMMAND_EXPRESSION

public static final byte COMMAND_EXPRESSION
メッセージの 1 つで、エクスプレッション設定コマンドを表します (=5)。
チャンネル指定 データ 0 値域 データ 1 値域 データ 2 値域
○ expression
(0〜127)
― ―

関連項目:
定数フィールド値

COMMAND_BALANCE

public static final byte COMMAND_BALANCE
メッセージの 1 つで、ステレオバランス設定コマンドを表します (=6)。
チャンネル指定 データ 0 値域 データ 1 値域 データ 2 値域
○ pan
(0〜127)
― ―

関連項目:
定数フィールド値

COMMAND_MODULATION

public static final byte COMMAND_MODULATION
メッセージの 1 つで、モジュレーションデプス設定コマンドを表します (=7)。
チャンネル指定 データ 0 値域 データ 1 値域 データ 2 値域
○ modulation
(0〜127)
― ―

関連項目:
定数フィールド値

COMMAND_PITCHBEND

public static final byte COMMAND_PITCHBEND
メッセージの 1 つで、ピッチベンド設定コマンドを表します (=8)。
チャンネル指定 データ 0 値域 データ 1 値域 データ 2 値域
○ pitchbend(MSB)
(0〜127)
pitchbend(LSB)
(0〜127)
―

関連項目:
定数フィールド値

COMMAND_PITCHBEND_RANGE

public static final byte COMMAND_PITCHBEND_RANGE
メッセージの 1 つで、ピッチベンドレンジ設定コマンドを表します (=9)。
チャンネル指定 データ 0 値域 データ 1 値域 データ 2 値域
○ pitchbendSense
(0〜24)
― ―

関連項目:
定数フィールド値

COMMAND_HOLD

public static final byte COMMAND_HOLD
メッセージの 1 つで、サステインレベル維持コマンドを表します (=10)。
チャンネル指定 データ 0 値域 データ 1 値域 データ 2 値域
○ hold
(0〜127)
― ―

関連項目:
定数フィールド値

COMMAND_ALL_SOUND_OFF

public static final byte COMMAND_ALL_SOUND_OFF
メッセージの 1 つで、全音消音コマンドを表します (=11)。
チャンネル指定 データ 0 値域 データ 1 値域 データ 2 値域
○ ― ― ―

関連項目:
定数フィールド値

COMMAND_ALL_NOTE_OFF

public static final byte COMMAND_ALL_NOTE_OFF
メッセージの 1 つで、全音ノートオフコマンドを表します (=12)。
チャンネル指定 データ 0 値域 データ 1 値域 データ 2 値域
○ ― ― ―

関連項目:
定数フィールド値

COMMAND_RESET_CONTROLLER

public static final byte COMMAND_RESET_CONTROLLER
メッセージの 1 つで、コントロールチェンジ設定初期化コマンドを表します (=13)。
チャンネル指定 データ 0 値域 データ 1 値域 データ 2 値域
○ ― ― ―

関連項目:
定数フィールド値

COMMAND_MASTER_VOLUME

public static final byte COMMAND_MASTER_VOLUME
メッセージの 1 つで、マスター音量設定コマンドを表します (=14)。
チャンネル指定 データ 0 値域 データ 1 値域 データ 2 値域
― volume
(0〜127)
― ―

関連項目:
定数フィールド値

COMMAND_MASTER_BALANCE

public static final byte COMMAND_MASTER_BALANCE
メッセージの 1 つで、マスターステレオバランス設定コマンドを表します (=15)。
チャンネル指定 データ 0 値域 データ 1 値域 データ 2 値域
― balance
(0〜127)
― ―

関連項目:
定数フィールド値

BANK_GM

public static final byte BANK_GM
音色バンクの 1 つで、GMを表します (=121)。

関連項目:
定数フィールド値

BANK_DRUM

public static final byte BANK_DRUM
音色バンクの 1 つで、ドラムセットを表します (=120)。

関連項目:
定数フィールド値

BANK_3POLY

public static final byte BANK_3POLY
音色バンクの 1 つで、3和音を表します (=125)。

関連項目:
定数フィールド値

BANK_SE

public static final byte BANK_SE
音色バンクの 1 つで、効果音を表します (=20)。

関連項目:
定数フィールド値

BANK_UCS

public static final byte BANK_UCS
音色バンクの 1 つで、UCS を表します (=17)。

関連項目:
定数フィールド値

SUBVOICE_NOT_EXIST

public static final byte SUBVOICE_NOT_EXIST
サブボイス情報がないことを表します (=-1)。

関連項目:
定数フィールド値
コンストラクタの詳細

Synthesizer

protected Synthesizer()
アプリケーションが直接このクラスのインスタンスを生成することはできません。

メソッドの詳細

getSynthesizer

public static Synthesizer getSynthesizer()
シンセサイザ操作機能オブジェクトを取得します。

このメソッドによって得られたオブジェクトには、 MediaSound を設定することはできませんが、音源デバイスへ直接メッセージを 発行することでリアルタイムな発音が行えます。

シンセサイザ操作機能同士は、同時利用の対象外です。 そのため、このメソッドを複数回呼び出した場合、 常に同じオブジェクトへの参照が返されます。 ただし、getSynthesizer(int port) は、このメソッドとは異なるオブジェクトを返します。

戻り値:
シンセサイザ操作機能オブジェクトを返します。
例外:
com.docomostar.lang.UnsupportedOperationException -
この端末がシンセサイザ操作機能をサポートしていない場合に発生します。

getSynthesizer

public static Synthesizer getSynthesizer(int port)
発音するポート番号を指定してシンセサイザ操作機能オブジェクトを取得します。

このメソッドによって得られたオブジェクトには、 MediaSound を設定することはできませんが、音源デバイスへ直接メッセージを 発行することでリアルタイムな発音が行えます。

シンセサイザ操作機能同士は、同時利用の対象外です。 そのため、このモデルでは、引数 port に指定できるポート番号は 0 だけです。 このメソッドを複数回呼び出した場合、常に同じオブジェクトへの参照が返されます。 ただし、getSynthesizer() は、このメソッドとは異なるオブジェクトを返します。

パラメータ:
port - ポート番号を指定します。
戻り値:
シンセサイザ操作機能オブジェクトを返します。
例外:
com.docomostar.lang.UnsupportedOperationException -
この端末がシンセサイザ操作機能をサポートしていない場合に発生します。
IllegalArgumentException -
引数 port に 0 以外の値を指定した場合に発生します。

play

public void play()
メッセージの受付を開始します。

このメソッドはブロッキングメソッドです。 メッセージ受付準備完了後、受付中状態に遷移し、このメソッドは復帰します。

このメソッドの呼び出し中にアプリケーションがサスペンドした場合、例外 UIException(INTERRUPTED) が発生します。 この場合、アプリケーションのレジューム後、このメソッドのリトライが可能です。

受付中状態でこのメソッドが呼ばれた場合は呼び出しを無視します。

定義:
インタフェース com.docomostar.ui.MediaPresenter 内の play
例外:
com.docomostar.ui.UIException -
(NO_RESOURCES)
シンセサイザ発音のためのリソースが確保できない場合に発生します。
com.docomostar.ui.UIException -
(ILLEGAL_STATE)
音源デバイスでメッセージ受付準備に失敗した場合に発生します。
com.docomostar.ui.UIException -
(BUSY_RESOURCE)
音声・テレビ電話通話中に呼び出された場合に発生します。
com.docomostar.ui.UIException -
(BUSY_RESOURCE)
[Star-1.1 まで] PTT 呼通信中の場合に発生します。
com.docomostar.ui.UIException -
(INTERRUPTED)
サスペンドによりメッセージ受付準備処理が中断された場合に発生します。
com.docomostar.ui.UIException -
(UNDEFINED)
その他の理由によりメッセージ受付準備処理が中断された場合に発生します。

stop

public void stop()
メッセージの受付を停止します。

このメソッドはブロッキングメソッドです。 メッセージ受付停止完了後、初期状態に遷移し、このメソッドは復帰します。

メッセージ受付中状態でないときにこのメソッドが呼ばれた場合は、呼び出しを無視します。

定義:
インタフェース com.docomostar.ui.MediaPresenter 内の stop

setAttribute

public void setAttribute(int attr,
                         int value)
発音に関する属性値を設定します。

AudioPresenter で定義されている以下の属性の設定が可能です。 これら以外の属性が指定された場合は何も行わずに無視されます。 なお、設定可能な属性値は AudioPresenter の各属性で規定されている属性値です。

定義:
インタフェース com.docomostar.ui.MediaPresenter 内の setAttribute
パラメータ:
attr - 設定する属性を指定します。
value - 設定する属性の値を指定します。
例外:
IllegalArgumentException -
引数 attr で指定された有効な属性に対して、引数 value に不正な値が指定された場合に発生します。

setUCSData

public static void setUCSData(byte[][] ucsData,
                              byte[] subVoiceNo)
シンセサイザ操作機能で利用する UCS データを音源デバイスへ登録します。

初期状態(play メソッド呼び出し前)にこのメソッドを呼び出し、UCS データを音源デバイスへ登録します。 なお、初期状態以外の状態でこのメソッドを呼んだ場合は、次回の play メソッド呼び出し時に反映されます。

音源デバイスのデフォルト状態では音源デバイス内蔵音のみを使用します。 UCS データが音源デバイスに登録されている場合、引数 ucsData、 subVoiceNo 共に null を指定することで、音源デバイスから UCS データをクリアし、音源デバイス内蔵音のみを使用するデフォルトの状態に戻すことが可能です。 なお、アプリケーション終了時にも UCS データをクリアし、音源デバイスをデフォルト状態にします。

ucsData[m] と subVoiceNo[m] (m は任意のインデックス) によって、 メインボイスとサブボイスから成る 1 対の UCS データを表します。 ucsData[m] の インデックス m は UCS データ番号として使用します。

ucsData[m] には、この端末に対応した MFi オーサリングツールによって作成した UCS データファイルのバイナリを指定します。 UCS データファイルには、通常メインボイスとサブボイスが格納されますが、 ucsData[m] には 1 つのメインボイスの Wave データしか設定することができません。 シンセサイザ操作機能では、引数 subVoiceNo を用いて、サブボイスとメインボイスの依存関係を構築します。

subVoiceNo[m] には、 サブボイス番号として UCS データ番号 n(m ≠ n) を指定します。 メインボイスの UCS データである ucsData[m] に、 サブボイスの UCS データとなる ucsData[n] を関連付けます。 なお、サブボイスが不要な場合には、引数 subVoiceNo[m] に SUBVOICE_NOT_EXIST または、 subVoiceNo[m] に対応する UCS データ番号 m を指定します。

具体例として、下図を示します。

サブボイスの括り付け

図で示したメインボイスとサブボイスの依存関係は以下になります。

音源デバイスへ登録できない UCS データが含まれている場合の動作を以下に示します。

UCS データの個数が設定可能なデータ数を超過した場合
  • この端末がサポートする UCS データの個数は機種依存です。
  • サポートする UCS データの個数を超えた場合は、余分な UCS データを音源デバイスへ登録しません。
  • UCS データ個数の超過によって、このメソッドは例外を発生させません。
UCS データに含まれる Wave データ部の合計サイズが設定可能なサイズを超過した場合
  • この端末がサポートする UCS データに含まれる Wave データ部の合計サイズは機種依存です。
  • サポートする UCS データに含まれる Wave データ部の合計サイズを超えた場合は、 引数 ucsData に指定した全ての UCS データが無効になります。
  • 音源デバイスから前回登録した UCS データをクリアします。
  • UCS データに含まれる Wave データ部の合計サイズの超過によって、このメソッドは例外を発生させません。
ucsData とsubVoiceNo の配列数が不一致である場合
  • 配列数の少ない方のデータ数までを有効な UCS データとして扱い、以降の配列の値を無視します。
  • ucsData の配列数が多い場合でも UCS 番号を割り当てません。
ucsData または subVoiceNo の配列数が 0 である場合
  • 登録すべきデータがないため無視します。
subVoiceNo[m] にサブボイス番号として無効な UCS 番号(0 〜「サポートするUCSデータの個数 -1」)を指定した場合
  • UCS データ(ucsData[m]、subVoiceNo[m]) を音源デバイスへ登録します。
  • ucsData[m] の SubVoiceMixingLevel を 非0 に設定すると、この UCS データを発音できません。
  • ucsData[m] の SubVoiceMixingLevel を 0 に設定すると、この UCS データを発音できます。
subVoiceNo[m] にサブボイス番号として無効な UCS 番号(「SUBVOICE_NOT_EXIST以外」かつ「サポートするUCSデータの個数以上」)を指定した場合
  • UCS データ(ucsData[m]、subVoiceNo[m]) を音源デバイスへ登録しません。
  • ucsData[m] の SubVoiceMixingLevel の設定値に関わらず、この UCS データは発音できません。
ucsData[m] に不正なデータを指定した場合
  • 不正な UCS データ(ucsData[m]、subVoiceNo[m]) として処理し、音源デバイスに登録しません。
  • このメソッドは例外を発生せず、不正な UCS データを除く正常な UCS データだけを音源デバイスに登録します。
  • 不正な UCS データの UCS データ番号を欠番として扱います。
  • ucsData の配列インデックスと UCS データ番号がずれることはありません。
  • ucsData[m] に null を指定した場合も不正なデータとして扱います。

不正な UCS データが存在した場合の具体例を以下に示します。 下図の場合、data2、 data3 は不正なサブボイスを持つため発音できませんが、 data1 のサブボイスである『data2 のメインボイスデータ部分』は正常なので、 data1 は発音可能です。

無効なデータの扱い


このメソッドに UCS データを指定した具体例を示します。

  // 1 つの UCS データを表すucsData
  byte[][] ucsDataOK1 = new byte[]{ new byte[]{ ... } };
  // 複数の UCS データを表す ucsData
  byte[][] ucsDataOK2 = new byte[]{ new byte[]{ ... }, new byte[]{ ... }, ... };
  // null配列を含む不正な ucsData
  byte[][] ucsDataNG  = new byte[]{ new byte[]{ ... }, null, ... };
  
  // 1 つの UCS データを設定する場合
  ap.setUCSData(ucsDataOK1, new byte[]{ 0 });
  // 複数の UCS データを設定する場合
  ap.setUCSData(ucsDataOK2, new byte[]{ 1, Synthesizer.SUBVOICE_NOT_EXIST, ... });
  // UCS を利用しない場合
  ap.setUCSData(null, null);
 

このメソッドにおける注意事項

音源デバイスでアライメントを行うため、 UCS データに含まれる Wave データをパディングすることがあります。 setUCSData(byte[][], byte[]) に複数の UCS データを設定する場合、 実際に設定可能な Wave データの合計上限サイズは、 getAvailableUCSDataSize() で取得したサイズよりも若干小さくなることがあります。

UCS データファイルに含まれるサブボイスの Wave データも、 UCS データに含まれる Wave データ部の合計サイズのカウント対象です。 MFi オーサリングツールで UCS データファイルを作成する際はご留意ください。

パラメータ:
ucsData - UCS データを指定します。 UCS を使用しない場合は null を指定します。
subVoiceNo - 各 UCS データのサブボイスを UCS 番号で指定します。 UCS を使用しない場合は null を指定します。
関連項目:
SUBVOICE_NOT_EXIST, getAvailableUCSDataNum(), getAvailableUCSDataSize()
例外:
com.docomostar.lang.UnsupportedOperationException -
この端末がシンセサイザ操作機能をサポートしていない場合に発生します。
NullPointerException -
引数 ucsData、 subVoiceNo のどちらか片方だけ null が指定された場合に発生します。
com.docomostar.ui.UIException -
(NO_RESOURCES)
UCS データを設定するのに必要な領域が不足している場合に発生します。

sendMessage

public void sendMessage(byte[] data,
                        int offset,
                        int length)
単一もしくは複数のメッセージを発行します。

引数 data にメッセージを含むバイナリデータを指定します。 引数 offset から 引数 length 分のメッセージを発行することが可能です。

シンセサイザ操作機能においては、MIDI メッセージとは異なり、 1 メッセージは 5byte で構成されています。 下表に 引数 offset = 0 における i 番目のメッセージの具体例を示します。

data[i + 0] コマンド種別
data[i + 1] 制御対象チャンネル
data[i + 2] データ 0
data[i + 3] データ 1
data[i + 4] データ 2

コマンド種別には、このクラスのフィールド COMMAND_* を指定します。 制御対象チャンネルは、標準で 0 〜 15 の 16 チャンネルを指定できます。 それ以上のチャンネルをサポートしているかどうかは端末に依存します。 ただし、全チャンネルが対象のメッセージの場合は、 チャンネルの指定は無視されますので、何を指定しても構いません。 データ 0 〜 2 は、コマンド種別にあわせて様々な値を指定することができます。 データの指定の詳細は COMMAND_* を参照してください。

音源デバイスに対して一度に発行できるメッセージの上限数は端末に依存します。 上限数を超えたメッセージを無視します。

発行する各メッセージにおいて、「制御対象チャンネル」の値は 0x0F で、 「データ0」「データ1」「データ2」の値は 0x7F で、 それぞれマスクされてから(ビット論理積を取ってから)解釈されます。 マスク処理後でもなお、 発行するメッセージに不正なメッセージが含まれていた場合は、 不正なメッセージだけを無視します。 このメソッドでは、例外は発生せず、不正なメッセージを除く正常なメッセージを音源デバイスへ発行します。

このインスタンスが受付中状態以外の状態で、 このメソッドが呼ばれた場合は、例外 UIException(ILLEGAL_STATE) が発生します。

パラメータ:
data - メッセージデータ群を指定します。 nullが指定された場合は何も処理されません。
offset - メッセージデータ群の処理開始位置を指定します。
length - 処理を行うバイト列の長さを指定します。 0が指定された場合は何も処理されません。
関連項目:
COMMAND_NOTE_ON, COMMAND_NOTE_OFF, COMMAND_BANK_SELECT, COMMAND_PROGRAM_CHANGE, COMMAND_VOLUME, COMMAND_EXPRESSION, COMMAND_BALANCE, COMMAND_MODULATION, COMMAND_PITCHBEND, COMMAND_PITCHBEND_RANGE, COMMAND_HOLD, COMMAND_ALL_SOUND_OFF, COMMAND_ALL_NOTE_OFF, COMMAND_RESET_CONTROLLER, COMMAND_MASTER_VOLUME, COMMAND_MASTER_BALANCE, getAvailableMessageNum()
例外:
IndexOutOfBoundsException -
引数 offset または引数 length のどちらかが負の場合、 または引数 offset + 引数 length が引数 data.length よりも大きい場合に発生します。
IllegalArgumentException -
引数 length が 5 の倍数でない場合に発生します。
com.docomostar.ui.UIException -
(ILLEGAL_STATE)
初期状態でこのメソッドを呼び出した場合に発生します。

getAvailableUCSDataNum

public static int getAvailableUCSDataNum()
設定できる UCS データの上限数を取得します。

上限数は機種依存です。

戻り値:
設定できる UCS データの上限数を返します。
関連項目:
setUCSData(byte[][], byte[])

getAvailableUCSDataSize

public static int getAvailableUCSDataSize()
設定できる UCS データに含まれる Wave データの合計上限サイズを取得します。

合計上限サイズは機種依存です。

UCS データファイルのサイズではなく、中に含まれる Wave データ部分のサイズであることに注意してください。 UCS データファイルについては、setUCSData(byte[][], byte[]) を参照してください。

戻り値:
設定できる UCS データの合計上限サイズを返します。
関連項目:
setUCSData(byte[][], byte[])

getAvailableMessageNum

public static int getAvailableMessageNum()
一度に発行できるメッセージの上限数を取得します。

上限数は機種依存です。

戻り値:
一度に発行できるメッセージの上限数を返します。
関連項目:
sendMessage(byte[], int, int)

getMediaResource

public com.docomostar.media.MediaResource getMediaResource()
このクラスのインスタンスに対して呼び出すことはできません。 このメソッドを呼び出すと、 常に UnsupportedOperationException 例外が発生します。

定義:
インタフェース com.docomostar.ui.MediaPresenter 内の getMediaResource
戻り値:
常に例外が発生するため、戻り値が返ることはありません。
例外:
com.docomostar.lang.UnsupportedOperationException -
このメソッドが呼ばれた場合に発生します。

setMediaListener

public void setMediaListener(com.docomostar.ui.MediaListener listener)
このクラスのインスタンスに対して呼び出すことはできません。 このメソッドを呼び出すと、 常に UnsupportedOperationException 例外が発生します。

定義:
インタフェース com.docomostar.ui.MediaPresenter 内の setMediaListener
パラメータ:
listener - 指定に意味を持ちません。
例外:
com.docomostar.lang.UnsupportedOperationException -
このメソッドが呼ばれた場合に発生します。


NTT DOCOMO,INC.

本製品または文書は著作権法により保護されており、その使用、複製、再頒布および逆コンパイルを制限するライセンスのもとにおいて頒布されます。NTTドコモ(その他に許諾者がある場合は当該許諾者も含めて)の書面による事前の許可なく、本製品および関連する文書のいかなる部分も、いかなる方法によっても複製することが禁じられます。フォントを含む第三者のソフトウェアは、著作権法により保護されており、その提供者からライセンスを受けているものです。

Sun、Sun Microsystems、Java、J2MEおよびJ2SEは、米国およびその他の国における米国 Sun Microsystems,Inc.の商標または登録商標です。サンのロゴマークは、米国 Sun Microsystems, Inc.の登録商標です。

FeliCaは、ソニー株式会社が開発した非接触ICカードの技術方式です。FeliCaは、ソニー株式会社の登録商標です。

「iモード」、「iアプリ/アイアプリ」、「i-αppli」ロゴ、「DoJa」はNTTドコモの商標または登録商標です。

その他記載された会社名、製品名などは該当する各社の商標または登録商標です。