機能解説:サンプリング機能
本ページでは、任意の音声を再生する「サンプリング機能」について説明します。専用ツールについては「CSM Editor」サンプリング音声転送を参照して下さい。
機能の概要
任意のサンプリング音声(以下「音声」)を本機に転送・登録し、MIDI音楽と同時に再生できる機能です。登録できる音声は32種類・合計50秒です。音質は24kHz・7bit(µ-Law)であり、人の歌声の周波数帯域を綺麗に再生することができます。同時に再生できる音声は1音で、MIDI音源のボイス(40音)とは別になります。
音声は、指定したMIDIチャンネルへ出力されます。そのため、チャンネルより後段の処理(Volume, Expression, パン, フィルタ, Reverb, Chorus, Delay, Distortion)が適用されます。エフェクトやフィルタをうまく使えば、楽しい効果を生み出せると思います。
本機能は本体ソフトウェアVer.1.1.0.a以降で使用できます。→本体ソフトウェアの更新
使用手順
本機能は、以下の手順で使用できます。
- SysExの「Sampling Sound Send Data」で、音声を本機の音声メモリに転送
- SysExの「Sampling Sound Setting」で、サウンド番号と音声メモリ領域を紐付け
- NRPN「Sampling Sound Play」でサウンド番号を指定し、再生
※1. と2.は順番が入れ替わっても問題ありません
以上を行うMIDIファイルを、専用ツールで生成できます。「CSM Editor」サンプリング音声転送
注意事項
- 音声の転送には多量のSysExによる通信が発生します。本機の画面に「Buffer FULL (>_<)」と表示された場合は、通信が捌ききれておりません。音声の転送時にはテンポを下げ、通信量を減らすことをお勧めします。
- 通信速度の観点から、TRS-MIDI接続ではなくUSB接続をお勧めします。
- リセット命令(CureSynth Reset, GM System Onなど)を受信すると、再生中の音声は停止し、「Sampling Sound Setting」で設定した音声の再生開始アドレスおよび再生サンプル数は初期化され0(未設定)となります。音声メモリの内容は消去されません。
- 再生中の音声を停止するには、音声の再生終了まで待つか、未設定のサウンド番号を「Sampling Sound Play」で指定して下さい。
付録:音声メモリ領域の仕様
音声メモリ領域は、1200000(0x124f80)バイトの領域を持ちます。音声メモリ領域のアドレスは0x000000~0x124f7fで、1バイトが音声の1サンプルに対応しています。音声形式は24kHz, 7bit, µ-Lawです(後述)。
転送
音声の転送には、SysExの「Sampling Sound Send Data」を使います。これは128バイト分のサンプルを送信するSysExです。あらかじめ、音声メモリ領域を128バイト毎の9375区間に分け、順に「区間番号」を0~9374まで振ります。この区間番号とサンプルデータを指定することで、対応する区間に128バイトのサンプルデータを書き込みます。
Sampling Sound Send Data
[F0H 00H 48H 05H 7FH 30H xxH yyH aaH bbH ccH ... nnH F7H]
xxH: 区間番号の上位7bit
yyH: 区間番号の下位7bit 区間番号は0000H~249eH(0~9374 の 9375個)
aaH: サンプル1 7bit
bbH: サンプル2 7bit
ccH: サンプル3 7bit
...
nnH: サンプル128 7bit
aaH~nnHは128バイト固定。区間番号に128を乗じたものが音声メモリ領域の開始アドレスに対応。
例えばxxH=00H, yyH=01Hのとき、区間番号は1であり、音声メモリ領域の開始アドレスは0x000080(1×128)となります。音声メモリ領域の0x000080から、aaH, bbH, ccH...を順に書き込みます。
厳密には、aaH, bbH, ccH ...は7bitのデータ幅で、音声メモリのデータ幅は8bitですが、特に伸張などは行いません。
圧縮
Sampling Sound Send Dataの各サンプル(aaH, bbH, ccH...)は、24kHz, 7bitのµ-Lawアルゴリズムで圧縮しています。圧縮方法は次の通りです。
- 圧縮したいリニアPCMを、24kHz, 14bit 符号付き形式(-8192~8191の値)に変換する。これをinputとする。
- 次の式に従い、outputを出力とする。
設定
音声の設定には、SysExの「Sampling Sound Setting」を使います。これは、32個のサウンド番号(0-31)と、「再生開始アドレス」「再生サンプル数」を紐付けるものです。
Sampling Sound Setting
[F0H 00H 48H 05H 7FH 31H xxH aaH bbH ccH ppH qqH rrH F7H]
xxH: サウンド番号(0-31)
aaH: 再生開始アドレス 上位7bit
bbH: 再生開始アドレス 中位7bit
ccH: 再生開始アドレス 下位7bit
ppH: 再生サンプル数 上位7bit
qqH: 再生サンプル数 中位7bit
rrH: 再生サンプル数 下位7bit
例えばxxH=02H, aaH=00H, bbH=01H, ccH=02H, ppH=03H, qqH=04H, rrH=05Hのとき、サウンド番号2の再生開始アドレスは0x000082, 再生サンプル数は0xc205となります。NRPN「Sampling Sound Play」でサウンド番号2を指定すると、音声メモリアドレス0x000082から0xc205(49669)サンプル分再生します。
なお、各サウンド番号に設定する音声メモリ領域は、オーバーラップを許容します。以下のように自由な設定が行えます。