Package | sora.graybox.synth |
Class | public final class SynthesizerFM4 |
Inheritance | SynthesizerFM4 ![]() ![]() |
=== FM4シンセサイザーの仕様 === [発音方式] ・4オペレーターFM音源(PM音源)方式 ・PCMウェーブテーブル方式(サンプラー) [ボイスパート数] ・16 パート(MIDIチャンネル) [同時発音数] ・1 ~ 1024 ポリフォニック [オーディオ出力] ・2 チャンネル(L,R) [音色プリセット数] ・インストゥルメントプリセット(プログラムチェンジ・マップ) 128 ・インストゥルメントプリセット(ドラム・マップ) 128 ・サンプラープリセット(ドラム・マップ) 128 [システムエクスクルーシブ] ・対応 (デフォルトでは無効)(有効、無効の切り替え可能) [RPN,NRPN] ・対応 (NRPはデフォルトでは無効)(NRPは有効、無効の切り替え可能) ============================== [発音方式について] ・FM音源(PM音源)方式 オペレーター数 : 2 波形テーブル数 : 8 ・PCMウェーブテーブル方式(サンプラー) サンプルデータ数 : 128 ステレオ対応 これらの音源は下記の条件で切り替えができます。 FM変調方式 -> ボイスパートがインストゥルメントモード、 またはパーカッションモードでのとき。 サンプラー -> ボイスパートがサンプラーモードのとき。 [ボイスパートのモードについて] ・モード0 (ミュート) 発音は行われませんが、ピッチベンドチェンジなどのコントロールは受け付けます。 ・モード1 (インストゥルメントモード) FM音源による発音。 プログラムチェンジ[0~127]に、音色のプリセットナンバー[0~127]が割り当てされる。 (tonePresets[0~127]がプログラムチェンジ[0~127]に割当) ・モード2 (パーカッションモード) FM音源による発音。 ノートナンバー[0~127]に、音色のプリセットナンバー[128~255]が割り当てされる。 (tonePresets[128~255]がノートナンバー[0~127]に割当) ・モード3 (サンプラーモード) PCMサンプラーによる発音。1サンプル1音色。 ノートナンバー[0~127]に、サンプラー音色のプリセットナンバー[0~127]が割り当てされる。 (samplerPresets[0~127]がノートナンバー[0~127]に割当) モード変更は、.setPartMode()メソッドを使用する方法と、 プログラム実行中にMIDIメッセージ(NRPN、SysEx)を受信して変更する方法があります。 ================================================================================ [RPN] MSB LSB : parameter : DataEntry 00 00 : PitchBend Sensitivity : 0 - 127 [NRPN] MSB LSB : parameter : DataEntry 00 00 : Master Volume : 0 - 127 20 00 : Default Part Mode : 0 - 3 (0 = Mute, 1 = Instrument, 2 = Percussion, 3 = Sampler) 21 00 : Part Mode : 0 - 3 (0 = Mute, 1 = Instrument, 2 = Percussion, 3 = Sampler) [システム・エクスクルーシブ・メッセージ] F0h : SysEx Status 7Dh : Manufacture ID () 10h : Device ID [ Constant 10h ] 22h : Model ID [ SynthesizerFM4 ] Address : Data Offset Address (Start Address) ... : data F7h : EOX(End Of Exclusive) )マニュファクチャーIDに"7Dh"(ユニバーサルメッセージ)を使用しています。 般のMIDIファイルを読み込ませるような用途に使われる場合は競合にご注意ください。 [アドレスマップ] [00 00 00] ~ [00 7F 7F] : システムコモンパラメーター [01 00 00] ~ [01 7F 7F] : (予約領域) [02 00 00] ~ [02 7F 7F] : ボイスパートパラメーター [03 00 00] ~ [03 7F 7F] : (予約領域) [04 00 00] ~ [04 7F 7F] : 音色プリセットテーブルパラメーター[0~127] [05 00 00] ~ [05 7F 7F] : 音色プリセットテーブルパラメーター[128~255] [06 00 00] ~ [06 7F 7F] : サンプラー音色プリセットテーブルパラメーター[0~127] [07 00 00] ~ [3F 7F 7F] : (予約領域) [ スタートアドレス[00] ] Address : parameter : value 00 00 : Master Volume : 0 - 127 00 01 : Key Reference Pitch : 0 - 127 (-64 ~ 0 ~ 63) : Pitch = 440.0 + value 0.5 [ スタートアドレス[02] ] n : パートナンバー Address : parameter : value 0n 00 : Default Part Mode : 0 - 3 (0 = Mute, 1 = Instrument, 2 = Percussion, 3 = Sampler) 0n 01 : Part Mode : 0 - 3 (0 = Mute, 1 = Instrument, 2 = Percussion, 3 = Sampler) [ スタートアドレス[04] ] xx : プリセットナンバー(プログラムチェンジ対応) [0 - 7F] Address : parameter : value xx 00 : Preset Name : ASCII CODE ~ 0F : xx 10 : --- : --- ~ 18 : xx 19 : key : 0 - 127 xx 1A : pan : 0 - 127 xx 1B : lfoWave : 0 - 3 xx 1C : lfoFreq (LSB) : 0 - 127 xx 1D : lfoFreq (MSB) : 0 - 127 xx 1E : fl : 0 - 127 xx 1F : strc : 0 - 15 xx 20 : --- : --- xx 21 : --- : --- xx 22 : --- : --- xx 23 : tlVelCtrl_0 : 0 - 7 xx 24 : mul_0 : 0 - 15 xx 25 : tune_0 (LSB) : 0 - 127 xx 26 : tune_0 (MSB) : 0 - 127 xx 27 : lms_0 : 0 - 15 xx 28 : wave_0 : 0 - 7 xx 29 : tl_0 : 0 - 127 xx 2A : ar_0 : 0 - 127 xx 2B : dr_0 : 0 - 127 xx 2C : sl_0 : 0 - 127 xx 2D : rr_0 : 0 - 127 xx 2E : kf_0 : 0 - 3 xx 2F : kfStart_0 : 0 - 127 xx 30 ..: (OP1) xx 40 ..: (OP2) xx 50 ..: (OP3) [ スタートアドレス [05] ] xx : プリセットナンバー(ノートナンバー対応) [0 - 7F] Address : parameter : value ------------- 同上 ------------- [ スタートアドレス[06] ] xx : プリセットナンバー(ノートナンバー対応) [0 - 7F] Address : parameter : value xx 00 : Preset Name : ASCII CODE ~ 0F : xx 10 : smplNum : 0 - 127 xx 11 : pan : 0 - 127 xx 12 : octv : 0 - 15 xx 13 : tune (LSB) : 0 - 127 xx 14 : tune (MSB) : 0 - 127 xx 15 : tl : 0 - 127 xx 16 : ar : 0 - 127 xx 17 : dr : 0 - 127 xx 18 : sl : 0 - 127 xx 19 : rr : 0 - 127 ================================================================================ [MIDI インプリメンテーション・チャート] Model : GrayBox Synthesizer FM4 (SynthesizerFM4 Class Object) date : 2023.01.05 Version : 22.12.0 Function Transmitted Recognized Remarks -------------------------------------------------------------------------------- Basic Default X 1-16 Chanel Changed X X -------------------------------------------------------------------------------- Mode Default X Mode 3 Messages X Mode 3 Altered X -------------------------------------------------------------------------------- Note X 0-127 Number True Voice 0-127 -------------------------------------------------------------------------------- Veclocity Note On X 0-127 Note OFF X X -------------------------------------------------------------------------------- After Key’s X X touch Channel X X -------------------------------------------------------------------------------- Pitch Bend X O -------------------------------------------------------------------------------- Control 1 X O Modulation Change 6,38 X O Data Entry (MSB,LSB) 7 X O Volume 10 X O Panpot 11 X O Expression 96,97 X O Data Inc,Dec 98,99 X O NRPN (LSB,MSB) 100,101 X O RPN (LSB,MSB) -------------------------------------------------------------------------------- Program X O Change Variable Range 0-127 TonePreset[0 - 127] (Part Mode 1) -------------------------------------------------------------------------------- System Exclusive X O -------------------------------------------------------------------------------- System Song Position X X Common Song Select X X Tune Request X X -------------------------------------------------------------------------------- System Clock X X RealTime Commands X X -------------------------------------------------------------------------------- Aux All Sound Off X O (120) Messages Reset All- X O -Controllers Local On/Off X X All Notes Off X O (123) Active Sensing X X System Reset X X -------------------------------------------------------------------------------- Notes ) Switchable O,X -------------------------------------------------------------------------------- Mode 1: OMNI ON, POLY Mode 2: OMNI ON, MONO O : Yes Mode 3: OMNI OFF, POLY Mode 4: OMNI OFF, MONO X : No ================================================================================
See also
Property | Defined By | ||
---|---|---|---|
![]() | midiInPorts : int = 0xFFFF
MIDIメッセージの入力対象ポートを示すビットフラグ(16bit)です. | MultiTimberSynthBase | |
![]() | midiOutPorts : int = 0xFFFF
MIDIメッセージの送信対象ポートを示すビットフラグ(16bit)です. | MultiTimberSynthBase | |
![]() | receiveSysEx : Boolean = false
システムエクスクルーシブメッセージを受け取るかを示すフラグ. | MultiTimberSynthBase | |
samplerPresets : Vector.<SamplerPreset> = null
サンプラーの音色プリセットテーブルです. | SynthesizerFM4 | ||
tonePresets : Vector.<TonePresetFM4> = null
インストゥルメントの音色プリセットテーブルです. | SynthesizerFM4 | ||
![]() | voiceParts : Vector.<VoicePart> = null
ボイスパート(MIDIチャンネルパラメーター). | MultiTimberSynthBase |
Method | Defined By | ||
---|---|---|---|
SynthesizerFM4(maxPoly:int = 32, refPitch:Number = 440.0, masVol:Number = 1.0, privateTableData:Boolean = true)
SynthesizerFM4オブジェクトを構築します. | SynthesizerFM4 | ||
![]() | allPartReset(modeReset:Boolean = false):void
すべてのボイスパートのパラメーターをリセットします. | MultiTimberSynthBase | |
![]() | allSoundOff(part:int = -1):void
発音中のすべてのサウンドを停止します。
コントロールチェンジ120のオールサウンドオフと同等の機能です. | MultiTimberSynthBase | |
![]() | allSoundStop(part:int = -1):void
発音中のすべてのサウンドを即時停止します。
この操作によってプチノイズが入る可能性があります. | MultiTimberSynthBase | |
![]() | channelAfterTouch(ch:int, val:int):void
チャンネルアフタータッチメッセージを入力します. | MultiTimberSynthBase | |
clearSampleData(id:int):void
サンプラー用サンプルデータをクリアします. | SynthesizerFM4 | ||
![]() | connectModule(host:GrayBox):void
このメソッドはGrayBox.attachModule()メソッドで
ホストにモジュールが正常に接続されたとき呼ばれます. | MultiTimberSynthBase | |
![]() | controleChange(ch:int, cc:int, val:int):void
コントロールチェンジメッセージを入力します. | MultiTimberSynthBase | |
![]() | disconnectModule():void
このメソッドはGrayBox.detachModule()他、
いくつかのメソッドでモジュールがホストから接続解除されたとき呼ばれます. | MultiTimberSynthBase | |
factoryDataReset():void [override]
波形データ、音色プリセット、サンプルデータをクリアします. | SynthesizerFM4 | ||
![]() | getDefaultPartMode(part:int):int
ボイスパートの、モードの既定値を取得します. | MultiTimberSynthBase | |
![]() | getDeviceID():int
デバイスIDナンバーを取得します.このIDナンバーは主にSysExメッセージ処理に使用されます。
| MultiTimberSynthBase | |
![]() | getManufacID():int
マニュファクチャーIDナンバーを取得します.このIDナンバーは主にSysExメッセージ処理に使用されます。
| MultiTimberSynthBase | |
![]() | getMasterVolume():Number
マスターボリュームの値を取得します. | MultiTimberSynthBase | |
![]() | getMaxPolyphony():int
最大発音ボイス数を取得します. | MultiTimberSynthBase | |
![]() | getModelID():int
モデルIDナンバーを取得します.このIDナンバーは主にSysExメッセージ処理に使用されます。
| MultiTimberSynthBase | |
![]() | getNRPNCtrlFlag():Boolean
NRPNを使ったコントロールのフラグ値を取得します. | MultiTimberSynthBase | |
![]() | getPartMode(part:int):int
ボイスパートのモードの値を取得します. | MultiTimberSynthBase | |
![]() | getPolyphony():int
発音中のボイス数を取得します. | MultiTimberSynthBase | |
![]() | getReferencePitch():Number
音程の基準ピッチの値を取得します. | MultiTimberSynthBase | |
![]() | getRPNCtrlFlag():Boolean
RPNを使ったコントロールのフラグ値を取得します. | MultiTimberSynthBase | |
getSampleData(id:int):SampleData
サンプラー用サンプルデータを取得します. | SynthesizerFM4 | ||
![]() | getSampleRate():Number
サンプリングレートの値を取得します. | MultiTimberSynthBase | |
getWaveForm(id:int, buffer:Vector.<Number>):void
波形テーブルから波形値を読み取り、バッファへ書き込みます(最大2048). | SynthesizerFM4 | ||
![]() | initialize():void
シンセサイザーを初期状態に戻します. | MultiTimberSynthBase | |
![]() | initiModule():void
このメソッドはGrayBox.initiModules()メソッドから呼ばれます. | MultiTimberSynthBase | |
![]() | keyAfterTouch(ch:int, key:int, val:int):void
キーアフタータッチメッセージを入力します. | MultiTimberSynthBase | |
loadPCMData(id:int, dat:ByteArray, sampleFrames:int, ch:int, bitRate:int, sign:Boolean, bigEndian:Boolean):void
バイナリのPCMデータから波形を読み込み、サンプラー用サンプルデータを構築します. | SynthesizerFM4 | ||
loadPCMSamples(id:int, wave:Vector.<Number>, ch:int):void
PCMデータから波形を読み込み、サンプラー用サンプルデータを構築します. | SynthesizerFM4 | ||
![]() | noteOff(ch:int, key:int):void
ノートオフメッセージを入力します. | MultiTimberSynthBase | |
![]() | noteOn(ch:int, key:int, velo:int):void
ノートオンメッセージを入力します. | MultiTimberSynthBase | |
![]() | pitchBendChange(ch:int, lsb:int, msb:int):void
ピッチベンドメッセージを入力します. | MultiTimberSynthBase | |
![]() | pitchBendChangeW(ch:int, val:int):void
ピッチベンドメッセージを入力します. | MultiTimberSynthBase | |
![]() | process(procData:ProcessData):void
このメソッドはGrayBox.process()メソッドから呼ばれます. | MultiTimberSynthBase | |
![]() | programChange(ch:int, num:int):void
プログラムチェンジメッセージを入力します. | MultiTimberSynthBase | |
![]() | resetModule():void
このメソッドはGrayBox.resetModules()メソッドから呼ばれます. | MultiTimberSynthBase | |
![]() | resumeProcess():void
このメソッドはGrayBox.resumeProcess()メソッドから呼ばれます. | MultiTimberSynthBase | |
![]() | setDefaultPartMode(part:int, mode:int):void
ボイスパートの、モードの既定値を設定します. | MultiTimberSynthBase | |
![]() | setDeviceID(id:int):void
デバイスIDを設定します.このIDナンバーは主にSysExメッセージ処理に使用されます。
| MultiTimberSynthBase | |
![]() | setManufacID(id:int):void
マニュファクチャーIDを設定します.このIDナンバーは主にSysExメッセージ処理に使用されます。
| MultiTimberSynthBase | |
![]() | setMasterVolume(val:Number):void
マスターボリュームを設定します. | MultiTimberSynthBase | |
![]() | setMaxPolyphony(num:int):int
最大発音ボイス数を設定します. | MultiTimberSynthBase | |
![]() | setModelID(id:int):void
モデルIDを設定します.このIDナンバーは主にSysExメッセージ処理に使用されます。
| MultiTimberSynthBase | |
![]() | setNRPNCtrlFlag(flag:Boolean):void
NRPNを使ったコントロールのフラグ値を設定します. | MultiTimberSynthBase | |
![]() | setPartMode(part:int, mode:int):void
ボイスパートのモードを設定します. | MultiTimberSynthBase | |
![]() | setReferencePitch(val:Number):void
音程の基準ピッチを設定します. | MultiTimberSynthBase | |
![]() | setRPNCtrlFlag(flag:Boolean):void
RPNを使ったコントロールのフラグ値を設定します. | MultiTimberSynthBase | |
setSampleData(id:int, sampleData:SampleData, deepCopy:Boolean = true):void
サンプラー用サンプルデータをコピーします. | SynthesizerFM4 | ||
![]() | setSampleRate(val:Number):void
サンプリングレートを設定します. | MultiTimberSynthBase | |
setWaveForm(id:int, buffer:Vector.<Number>):void
バッファから波形値を読み取り、波形テーブルへ書き込みます(最大2048). | SynthesizerFM4 | ||
![]() | startProcess():void
このメソッドはGrayBox.startProcess()メソッドから呼ばれます. | MultiTimberSynthBase | |
![]() | stopProcess():void
このメソッドはGrayBox.stopProcess()メソッドから呼ばれます. | MultiTimberSynthBase | |
![]() | suspendProcess():void
このメソッドはGrayBox.suspendProcess()メソッドから呼ばれます. | MultiTimberSynthBase | |
![]() | sysExMessage(msg:ByteArray):void
システムエクスクルーシブメッセージを入力します. | MultiTimberSynthBase | |
![]() | updateAudioChannels(ch:int):void
このメソッドはGraybox.setAudioChannels()メソッドで
ホストのオーディオチャンネル数が更新されたとき呼ばれます. | MultiTimberSynthBase | |
![]() | updateBypassStatus(bypass:Boolean):void
このメソッドはGrayBox.bypassProcess()メソッドで
モジュールスロットのバイパスステータスが更新されたとき呼ばれます. | MultiTimberSynthBase | |
![]() | updateProcessBlockSize(size:int):void
このメソッドはGraybox.setProcessBlockSize()メソッドで
ホストのプロセスブロックサイズが更新されたとき呼ばれます。
| MultiTimberSynthBase | |
![]() | updateSampleRate(sampleRate:Number):void
このメソッドはGraybox.setSampleRate()メソッドで
ホストのサンプリングレート値が更新されたとき呼ばれます. | MultiTimberSynthBase |
Method | Defined By | ||
---|---|---|---|
![]() | _channelAfterTouch(ev:MidiEvent):void | MultiTimberSynthBase | |
![]() | _keyAfterTouch(ev:MidiEvent):void | MultiTimberSynthBase | |
![]() | MultiTimberSynthBase | ||
![]() | MultiTimberSynthBase | ||
![]() | _pitchBendChange(ev:MidiEvent):void | MultiTimberSynthBase | |
![]() | _programChange(ev:MidiEvent):void | MultiTimberSynthBase | |
![]() | _readSysExData(ev:MidiEvent):void | MultiTimberSynthBase | |
_recreateVU(maxPoly:int):void [override] | SynthesizerFM4 | ||
_resetKeyParams():void [override] | SynthesizerFM4 | ||
![]() | _resetVolumeTables():void | MultiTimberSynthBase |
Constant | Defined By | ||
---|---|---|---|
OVER_TONES : int = 16 [static] | SynthesizerFM4 | ||
PG_PHASE_FP : int = 16 [static] | SynthesizerFM4 | ||
WAVE_TABLE_SIZE : int [static] | SynthesizerFM4 | ||
WAVE_TABLE_SIZE_BITS : int = 11 [static] | SynthesizerFM4 |
samplerPresets | property |
public var samplerPresets:Vector.<SamplerPreset> = null
サンプラーの音色プリセットテーブルです.
ボイスパートがサンプラーモード(モード3)のとき、 プリセットナンバー[0~127]のプリセットがノートナンバーにそれぞれ割り当てられます。tonePresets | property |
public var tonePresets:Vector.<TonePresetFM4> = null
インストゥルメントの音色プリセットテーブルです.
ボイスパートがインストゥルメントモード(モード1)のとき、 プリセットナンバー[0~127]のプリセットがプログラムチェンジに割り当てられます。 ボイスパートがパーカッションモード(モード2)のとき、 プリセットナンバー[128~255]のプリセットがノートナンバーにそれぞれ割り当てられます。SynthesizerFM4 | () | Constructor |
public function SynthesizerFM4(maxPoly:int = 32, refPitch:Number = 440.0, masVol:Number = 1.0, privateTableData:Boolean = true)
SynthesizerFM4オブジェクトを構築します.
ParametersmaxPoly:int (default = 32 ) — 最大発音数[1,2,4,8,16,32,64,128,256,512,1024]
| |
refPitch:Number (default = 440.0 ) — 基準ピッチ(Hz)
| |
masVol:Number (default = 1.0 ) — マスターボリューム[0.0~1.0]
| |
privateTableData:Boolean (default = true ) — true でテーブルデータ(SynthDataオブジェクト)をこのオブジェクト固有で生成、保持して使用します。
false で共有のテーブルデータを参照して使用します.
複数のシンセサイザーオブジェクトを使用する場合にテーブルデータを共有することでメモリ使用量を節約することができます。
ただしこの場合、必要が無くなった段階でSynthData.disposeInstance() を使用して解放する必要があります。
|
See also
_recreateVU | () | method |
override protected function _recreateVU(maxPoly:int):void
Parameters
maxPoly:int |
_resetKeyParams | () | method |
override protected function _resetKeyParams():void
clearSampleData | () | method |
public function clearSampleData(id:int):void
サンプラー用サンプルデータをクリアします.
Parameters
id:int |
factoryDataReset | () | method |
override public function factoryDataReset():void
波形データ、音色プリセット、サンプルデータをクリアします.
getSampleData | () | method |
public function getSampleData(id:int):SampleData
サンプラー用サンプルデータを取得します.
Parameters
id:int — サンプルデータナンバー[0~127]
|
SampleData — SampleDataオブジェクト
|
getWaveForm | () | method |
public function getWaveForm(id:int, buffer:Vector.<Number>):void
波形テーブルから波形値を読み取り、バッファへ書き込みます(最大2048).
Parameters
id:int — 波形テーブルナンバー[0~7]
| |
buffer:Vector.<Number> |
loadPCMData | () | method |
public function loadPCMData(id:int, dat:ByteArray, sampleFrames:int, ch:int, bitRate:int, sign:Boolean, bigEndian:Boolean):void
バイナリのPCMデータから波形を読み込み、サンプラー用サンプルデータを構築します.
Parameters
id:int — サンプルデータナンバー[0~127]
| |
dat:ByteArray — PCM波形データ
| |
sampleFrames:int — サンプルフレーム数(チャンネルあたりサンプル数)
| |
ch:int — チャンネル数(1~)
| |
bitRate:int — サンプルビットレート(8,16,24,32)
| |
sign:Boolean — 符号あり波形値の場合true
| |
bigEndian:Boolean — データのバイトオーダーがビッグエンディアンの場合true
|
loadPCMSamples | () | method |
public function loadPCMSamples(id:int, wave:Vector.<Number>, ch:int):void
PCMデータから波形を読み込み、サンプラー用サンプルデータを構築します.
Parameters
id:int — サンプルデータナンバー[0~127]
| |
wave:Vector.<Number> — PCM波形データ[浮動小数点数-1.0~1.0]
| |
ch:int — チャンネル数(1~)
|
setSampleData | () | method |
public function setSampleData(id:int, sampleData:SampleData, deepCopy:Boolean = true):void
サンプラー用サンプルデータをコピーします.
deepCopy
にtrue
を渡して実行すると波形データをディープコピーします。
falseを渡して実行すると波形データの参照だけ渡します。
Parameters
id:int — サンプルデータナンバー[0~127]
| |
sampleData:SampleData — コピー元SampleDataオブジェクト
| |
deepCopy:Boolean (default = true )
|
setWaveForm | () | method |
public function setWaveForm(id:int, buffer:Vector.<Number>):void
バッファから波形値を読み取り、波形テーブルへ書き込みます(最大2048).
Parameters
id:int — 波形テーブルナンバー[0~7]
| |
buffer:Vector.<Number> |
OVER_TONES | Constant |
public static const OVER_TONES:int = 16
PG_PHASE_FP | Constant |
public static const PG_PHASE_FP:int = 16
WAVE_TABLE_SIZE | Constant |
public static const WAVE_TABLE_SIZE:int
WAVE_TABLE_SIZE_BITS | Constant |
public static const WAVE_TABLE_SIZE_BITS:int = 11