1.SiON の主なクラス

org.si.sion.SiONDriver

SiON の中核となるモジュールです.基本的な操作は全て SiONDriver のメソッド/プロパティとして提供されています.

  • 音を鳴らす.波形データを生成する(play, noteOn, sequenceOn, render ...).
  • MMLをコンパイル,演奏する(compile, play ...).
  • mp3(Sound class)を読込む/再生する(setPCMSound, setSamplerSound, setBackgroundSound ...).
  • ボリューム,パン,フェードなどの基本操作をする.
  • エフェクタを設定する.
  • 各種イベントを発行する.

org.si.sion.SiONData

シーケンスデータ(音色設定と楽譜)です.通常 SiONDriver.compile() で MML文字列 から作成します.かなり大変ですが一応スクリプト上で1から構築する事もできます.

org.si.sion.SiONVoice

音色データです.波形,FM音源パラメータ,フィルタエンベロープ,モジュレーション,デチューン,PCMデータなど音色設定の情報を保持します.SiONPresetVoice であらかじめ設定された音色を取得する事ができます.MML内に記述された音色設定("#@{..}"コマンドなど)はコンパイルによりSiONData内に自動的に生成されます.

org.si.sion.events.SiONEvent

SiONDriver が発行するイベントです.ストリーミング中/開始/終了,コンパイル中/終了,フェード開始/終了,MMLシーケンス終了イベントがあります.

org.si.sion.events.SiONTrackEvent

SiMMLSequencer や SiMMLTrack が発行するイベントです.ノートオン/オフイベント,ビートイベント,テンポ変更イベントがあります.

org.si.sion.utils.SiONPresetVoice

プリセット音色を取得するためのクラスです.音色名をキーで指定してアクセスします.

org.si.sion.module.SiOPMPCMData

PCM音源で使用する波形データです.通常 SiONDriver.setPCMData()/setPCMSound() メソッドで波形を登録した際の返値として取得します.SiOPMPCMData.slice() メソッドを用いてデータ再生/ループ位置を設定する事ができます.

org.si.sion.seuqncer.SiMMLSequencer

低レベルな操作をする場合に使用します.SiONDriver 内で実際に演奏を行うシーケンサです.通常これらはSiONDriver内で自動的に操作されますが,より低レベルな操作を行いたい場合は SiONDriver.sequencer プロパティを使ってスクリプト上から操作する事ができます.

org.si.sion.seuqncer.SiMMLTrack

低レベルな操作をする場合に使用します.SiMMLSequencer 内で実際に音をコントロールするトラックです.通常これらはSiONDriver内で自動的に操作されますが,より低レベルな操作を行いたい場合は SiONDriver.noteOn()/sequenceOn(),SiONDriver.newUserControlableTrack() の返値から,または SiONDriver.sequencer.tracks プロパティから操作する事ができます.ただし,SiONDriver.noteOn()/sequenceOn()で返されたインスタンスは,新たにnoteOn()/sequenceOn()が呼び出された時にすでに発音/シーケンスが終了しているとSiONDriver内部で勝手に再利用されます.このインスタンスは無限繰り返しシーケンスの再生時のみ保持可能です(この仕様は将来変更される可能性があります).

org.si.sion.module.SiOPMChannelBase

低レベルな操作をする場合に使用します.SiMMLTrack 内で実際に音を生成するチャンネルの基底クラスです.通常これらはSiONDriver内で自動的に操作されますが,より低レベルな操作を行いたい場合は SiMMLTrack.channel プロパティを使ってスクリプト上から操作する事ができます.このプロパティは,実際には SiOPMChannelFM(PSG/FM/PCM音源), SiOPMChannelKS(物理音源), SiOPMChannelSampler(サンプラー音源)のいずれかの派生クラスインスタンスであり,"%"コマンド/SiMMLTrack.setChannelModuleType()でモジュール変更を行うと実体が入れ替わる場合があります.あらかじめローカルに保存して使用する場合は注意して下さい.

org.si.sion.module.SiOPMChannelOperator

低レベルな操作をする場合に使用します.SiOPMChannelFM 内で実際に音を生成するオペレータクラスです.通常これらはSiONDriver内で自動的に操作されますが,より低レベルな操作を行いたい場合は (SiMMLTrack.channel as SiOPMChannelFM).operator プロパティを使ってスクリプト上から操作する事ができます.

org.si.sion.effector.*

各種エフェクタクラスです.インタラクティブにエフェクタを扱いたい場合は,SiONDriver.effector.connect() を使う事でスクリプト上でnewした各種エフェクタを接続するか,SiONDriver.effector.getEffector()を用いてMML内で接続設定を行ったエフェクタインスタンスを取得(ver0.571)し操作します.また,SiEffectBaseの派生クラスを自分で実装する事で独自エフェクタを接続する事も可能です.

org.si.sound.*

SiONを使用したより高度な操作を提供するクラス郡です.現バージョンでは Scaler と Arpeggiator が使用できます.まだ実験的な実装の段階ですが,これらのクラスによりより簡単にインタラクティブな音楽生成を行う事が可能となる予定です.