コンテンツにスキップ

機能解説:サンプリング機能

本ページでは、任意の音声を再生する「サンプリング機能」について説明します。また、専用の音声登録ツールの使用方法も記述します。

機能の概要

サンプリング音声

任意のサンプリング音声(以下「音声」)を本機に転送・登録し、MIDI音楽と同時に再生できる機能です。登録できる音声は32種類・合計50秒です。音質は24kHz・7bit(µ-Law)であり、人の歌声の周波数帯域を綺麗に再生することができます。同時に再生できる音声は1音で、MIDI音源のボイス(40音)とは別になります。

音声は、指定したMIDIチャンネルへ出力されます。そのため、チャンネルより後段の処理(Volume, Expression, パン, フィルタ, Reverb, Chorus, Delay, Distortion)が適用されます。エフェクトやフィルタをうまく使えば、楽しい効果を生み出せると思います。

本機能は本体ソフトウェアVer.1.1.0.a以降で使用できます。→本体ソフトウェアの更新

使用手順

本機能は、以下の手順で使用できます。

  1. SysExの「Sampling Sound Send Data」で、音声を本機の音声メモリに転送
  2. SysExの「Sampling Sound Setting」で、サウンド番号と音声メモリ領域を紐付け
  3. NRPN「Sampling Sound Play」でサウンド番号を指定し、再生

※1. と2.は順番が入れ替わっても問題ありません

以上を行うMIDIファイルを、専用ツールで生成できます。→「CureSampleConv」のダウンロード

ツール上にリニアPCMファイルをドラッグ&ドロップすると、対応した形式であればリストに追加されます。試しに、「CureSampleConv」のフォルダに同梱されている「テスト用音声1.wav」「テスト用音声2.wav」を、ツールに登録してみましょう。なお、対応形式は8kHz~192kHz・8bit~32bitのリニアPCM(.wav)で、32ファイル・合計50秒まで登録できます。

以下の例では、サウンド番号0にテスト用音声1、サウンド番号1にテスト用音声2が割り当てられています。

CureSynthの画像

次に、右上の「MIDIファイル出力」をクリックし、保存先を選べばMIDIファイルが出力されます。

出力されたMIDIファイルを本機で再生すると、約1秒ずつ、リストに登録した順番で、本機からテスト用音声が聞こえます。音声の転送には数秒程度必要です。

登録した音声は、NRPN「Sampling Sound Play」で再生します。音声を再生させたいチャンネルにNRPNを送信すれば、約0.1秒後に再生が開始されます(0.1秒はバッファリングの時間)。NPRNのData Entry MSBがサウンド番号に対応しています。音声の同時発音数は1音のため、音声の再生中に新たにNRPNを送信すると、再生中の音声が停止して新たに音声を再生します。

シーケンサにNRPNの入力機能がない場合は、CC(コントロールチェンジ)で代用します。以下のように、CC99(NRPN MSB)に"11"→CC98(NRPN LSB)に"0"→CC6(Data MSB)に"0(サウンド番号)"→CC38(Data LSB)に"0"を指定すると、 サウンド番号0の音声が再生されます。

CureSynthの画像

本ツールの設定項目は次の通りです。

  • リセット命令を出力する
    • MIDIファイルの最初にリセット命令「CureSynth Reset」を挿入します。
  • 再生コマンドを出力する
    • MIDIファイルの最後に、音声の再生コマンド(NRPN)を挿入します。サウンド番号順に、480tick(約1秒)ずつ音声を再生します。NRPNの入力が面倒な場合のコピペ元としてお使い下さい。再生コマンドはチャンネル1に挿入されるので、音声はチャンネル1に出力されます。
  • 音量を下げる(推奨)
    • 音声の音量を5dB下げます。音声圧縮方式(7bitのµ-Law)の性質により、音量が大きいとS/N比が下がり、ザラザラとした音になります。そのため、音量をある程度下げることを推奨しています。

※「リセット命令を出力する」「再生コマンドを出力する」のチェックをオフにすることで、音声の転送や設定のSysExのみ出力されます。他の楽曲に挿入する場合など、リセット命令や再生コマンドが不要な際にお使い下さい。

注意事項

  • 音声の転送には多量のSysExによる通信が発生します。本機の画面に「Buffer FULL (>_<)」と表示された場合は、通信が捌ききれておりません。音声の転送時にはテンポを下げ、通信量を減らすことをお勧めします。
  • 通信速度の観点から、TRS-MIDI接続ではなくUSB接続をお勧めします。
  • リセット命令(CureSynth Reset, GM System Onなど)を受信すると、再生中の音声は停止し、「Sampling Sound Setting」で設定した音声の再生開始アドレスおよび再生サンプル数は初期化され0(未設定)となります。音声メモリの内容は消去されません。
  • 再生中の音声を停止するには、音声の再生終了まで待つか、未設定のサウンド番号を「Sampling Sound Play」で指定して下さい。

付録:音声メモリ領域の仕様

CureSynthの画像

音声メモリ領域は、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 区間番号は0000H249eH(09374  9375)
aaH: サンプル1 7bit
bbH: サンプル2 7bit
ccH: サンプル3 7bit
... 
nnH: サンプル128 7bit

aaHnnH128バイト固定。区間番号に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アルゴリズムで圧縮しています。圧縮方法は次の通りです。

  1. 圧縮したいリニアPCMを、24kHz, 14bit 符号付き形式(-8192~8191の値)に変換する。これをinputとする。
  2. 次の式に従い、outputを出力とする。

CureSynthの画像

設定

音声の設定には、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)サンプル分再生します。

なお、各サウンド番号に設定する音声メモリ領域は、オーバーラップを許容します。以下のように自由な設定が行えます。

CureSynthの画像