プログラミングノート

一からものを作ることが好きなエンジニアの開発ブログです。

サウンドデータ形式のまとめ

mokitにサウンド系のクラスも追加したいので、サウンドデータの形式について調べてみました。多少間違い/足りない箇所があるかもしれませんが、それぞれのプロファイルで利用できるサウンド形式は下記の通りです。

DoJa
形式 拡張子 関連パッケージ/クラス
MFi mld com.nttdocomo.ui.AudioPresenter
SMF mid, midi com.nttdocomo.ui.AudioPresenter


MFiにはMIDI音源(MIDIから変換)のものと、PCM音源(WAVEから変換)のものがあるようで、前者はバランスを気にしないのであればどの端末でも鳴るようです(PCM音源は各端末専用に作らないと鳴らない)。

MIDP(MEXA)
形式 拡張子 関連パッケージ/クラス
SMD smd, smx, smz com.jblend.media.smd
SMAF mmf com.jblend.media.smaf
SMAF/Phrase mmf, spf com.jblend.media.smaf.phrase
SMF mid, midi javax.microedition.media
SP-MIDI mid javax.microedition.media
PCM(WAVE) wav javax.microedition.media


SMAFに関してもMFiと同様で、MIDI音源のものと、PCM音源のものがあります。S!アプリでは主にSMAF(mmf)とSMAF/Phrase(spf)が利用されているようです。

SMAF(mmf)とSMAF/Phrase(spf)について


ゲームなどでBGMと効果音などを両立させるために複数ファイルの同時再生が必要となりますが、SMAF複数ファイルの同時再生に対応していません。複数再生を行うためにはSMAF/Phrase(MIDI音源)を使用します。ただSMAF/Phraseにも下記制約があるのでこれはこれで大変みたいです。

  • 1データの同時発音数は最大4音
  • 同時に再生できるのは4データ(ファイル)
  • spfmmf(PCM音源)は同時に鳴らすことができる
  • spfmmf(MIDI音源)は同時に鳴らすことができない


DoJaの場合は特に何も考慮しなくても、端末が対応している数だけ、MFi(mld)の複数再生が可能です。