MIDIシーケンスの作り方


JV-1010のためのMIDIシーケンスの作法です。

MIDIインプリメンテーションから見ると、JVにはGSのNPRNに対応するControl Changeはなく、またGS Resetに相当するSysexの音源の初期化コマンドがありません。したがっ音源の初期設定の方法は大きく異なります。
演奏中の音色の変更はCCで行うのは共通ですが、初期設定された内容により、個々のCCの効き方が大きく変わってきますので、これも要注意です。


音源の初期化


どちらもCC(Control Change)、PC(Program Change)、Sysex(System Exclusive)で音源をコントロールするという点では同じですが、決定的に違うのが、JVの場合、曲の始めでの音源の初期設定は複数のSysexをたばねたパッチと呼ばれるデータで行う点です。JVは音色設定の自由度が大きいため、GSでSysexの体系、アドレシング、機能はかなり異なります。

なぜ音源の初期化をパッチで行う必要があるかについては次項「JV-1010のメモリ構成」を参照して下さい。

注記 : Patchと呼ばれる音色コントロール用のSysexがあり、これと紛らわしいのですが、以降、カタカナで「パッチ」と書いた場合はこの複数のSysexたばねたもの、「Patch」と英語で表記した場合は音色コントロール用のパッチのことを意味します。「拡張ボードについて」のページで「パッチ」と書いたのは、この記述では「Patch」のことです。また、この「パッチ」をJV-1010とやりとりする時はバルクデータといいます。あーあ、ややこしい。

Sysexのアドレッシング

アドレッシングの方法はGSよりJVの方がシンプルで、アドレス長はGSは3バイトですが、JVは4バイトて構成され、
第1バイト パッチの種類
第2バイト 同一種類のパッチの識別
第3バイト パッチ内部の構成識別
第4バイト sysex個別要素の識別
となっています。

Sysexとしてパッチをみると、第4バイトのSysex個別機能の識別を00からスタートするSysexデータをまとめたものといえます。したがってSysexは個別機能単位に一まとまりまにしたたパッチとして処理することもできるし、第4バイトを指定した個別機能のコマンドとして送ることもできます(このあたりはGSと同じ)。


パッチの構成

JVのパッチは共通部(Common)と個別部より構成され、以下の4種類があります。括弧内はアドレスの指定の仕方を記述しますが、xx xx とある場合は下位のアドレスが代入され、yy yy とある場合は上位のアドレスが代入されます。また、nn とある場合は複数の要素からなるパッチで、nnには要素番号が入ります。
MIDIインプリメンテーション(p149)のアドレスブロックマップ参照。

JV-1010の音源の初期設定は以上のパッチを必要に応じて、MIDIシーケンスの最初で送り出すことにより実行することになります。


演奏中の設定変更(CCの使い方)

JVでのCCの使い方に関しては、英語ですが、ここに詳しい情報があります。以下の情報はそのlilchipsのtutorials/ctrluseページによります。
(以下CCの数値は全て10進)

MIDIシーケンス演奏中の設定変更はCCまたは個別のSysexの送信することで出来ますが、CCで行なう方がデータの転送量も小さいし、JV側の負担も少ないようなので、特殊な場合を除いて、CCを使う方がいいでしょう。

JVで使うCCですけど、基本的にはGMの規格に準拠していますので、GSと同じです。
JVの場合、CCと実際に操作される機能の対応を自由に設定出来るようになっています。また特定のCCの受信を禁止するということも可能です。詳細は MIDIインプリメントを参照して下さい。
これらの機能は、手弾きの音源として使う時に使うもので、MIDIシーケンスを作るのには関係ありません。ディフォルトの標準の設定(工場出荷状態 全てのCCは受信、CCとの対応はGM標準)で十分でしょう。
注意しないといけないのは、CCはパッチで設定した内容に対する相対値として効くという点ですが、これはGSでもSysexの指定が優先されますので、同じです。ただ、JVの場合、パッチで指定できる範囲が大きいので、何がなんだか訳が分からん状態になりやすいです(経験あり^^;;)。

JVにあってGSにないCCとしては、ブレス・タイプ(CC=2)、フット・タイプ(CC=4)パランス(CC=8)、汎用操作子5-8(CC=80-83)があります。この中で汎用操作子5-8は特定のToneだけ操作するもので、なかなか面白そうです。
ブレス・タイプ、フット・タイプ、パランスはどういう使い方ができるのか、よく分かりません。なにかアイディアを教えていただけると幸いです。

逆にCC=98,99のNRPNはJVにありませんが、これらは他ののCC(1,71-74)で代用するか、Sysexを使うかということになります。

あとJVシリーズ間の互換ですが、JV-1080にはCC=71-74に相当する機能がないようです(多分CC80-83もそうかもしれません)。



JV-1010のメモリ構成


JV/XPシリーズのメモリは読み出しだけ可能なROMと読み書き可能なRAMからなります。
ROMには「MIDIシーケンスの作り方」で説明したパッチ情報と音作りの基となるウェーブデータが固定保存されています。
RAMはROMの情報がコピーされ使用されるる領域で、一時的に使用されるTemporaryな領域とユーザ毎の個別設定を保存するためのUser領域からなります。

JVの動作中のコントロールですが、すべてRAMに書き込まれた情報によって行われ、ROMはRAMにコピーするための情報の保存領域として使用されます(Waveformだけは、直接、使っているかもしれません)。

RAMは不揮発性メモリが使用されていて、パネル操作またはパソコンからのSysex/CC/PCにより変更され、電源を落としても内容は保存されます。また、GS音源と異なり、GS Restに相当するRAMの初期設定用のSysexは無く、完全な初期化はパネル操作(工場出荷時の設定 p21)でのみ可能です。

このあたりが、パソコンと繋ぐことが前提のGSと、手弾きのキーボードと繋いで使われることが多いJVとの大きな違いで、JV-1010の場合、パソコンと繋がなければ使い物にならないのですが、キーボードと繋ぐという設計思想は堅持されているので、要注意です。

具体的には音源の初期設定で、GSの場合、CCでコントロールするのが普通で、Sysexは部分的な特殊な目的の初期選定(例えば音律のチューニングなど)にのみ使うというのが普通ですが、JVでは、バルクデータとして、Sysexをまとめて音源に送り、初期設定を行い、CC/PCだけではできないということになります。

従って、JV-1010を使いこなすためには、このメモリ領域の使われ方を知ることがポイントとなります。以下はマニュアル及び海外のウェブサイトの情報から暗号解読(^^;;したメモです。

多分、内部的にこのあたりの仕組みはGSでもJVでも大差はないと思いますが、JVの場合、陽に仕組みを見せて、Sysexで変更できるようにしているところが特徴ですね。

説明文中のpNNNとあるのはJV-1010のマニュアルの関連ページです。括弧内は数。

- ROM -

WaveFormを除き、全てRAM領域にコピーされて使用される。ROMの変更はできない(当たり前か^^;)。

WaveForm
INT-A(255),INT-B(193),Session(206),EXT(数はカードしだい)
p132-134
Patch
USER(128),PR-A(128),PR-B(128),PR-C(128),GM(128),PR-E(128),SESSION(255),EXT(Orch1=255)
p118-p121
Performance
USER(32 0x00-0x1F),PR-A(32 0x40-0x5F),PR-B(32 0x60-0x7F)
p131
RhythmSet
USER(2),PR-A(2),PR-B(2),PR-C(2),GM(2),PR-E(2),SESSION(8)
p128-130

- RAM -

パネル操作またはパソコンからのSysex/CC/PCにより変更されます。

以下の説明でパラメータの数値は16進です。

System Common
p142
sysex(00 00 00 00)で設定。

パネル操作(設定を初期化 p47)ではクリアされないみたい(?)。
JV-1010の場合、パネルからはPerformance番号とMaster Tuneが指定できる。

Peformance numberでROMから呼び出すPerformance番号を指定。
Peformance control channelでCC/PCでROMからPerformanceを呼び出すMIDIチャネル番号を指定できるが、CC/PCで音色を指定する場合、ここを無効化(10)しておかないといけない。
Patch Group Type、Patch Group ID、Patch Numberを指定できるが、Temporary Patch用かな。
Scale Tune
p143

sysex(00 00 01 01 - 00 00 0F 00)で設定。
音律の設定用。GSのsysexも使用可。
セント値を1オクターブ分ずらずら並べただけ。
Temporary performance
p144-145

パネルからはEFX Sourceとpart別の音色、レベル、パンなど指定できるみたい。
本体の上パネルに表示あり。

全体の設定をする common とパート別の part(16) からなる。

演奏に使用されるイフェクト、各パートに対応するチャネル番号、レベルなどを設定する。ちゃんと設定されていないと、違ったイフェクト、レベルで演奏されてしまうことになる。設定した音色が意図どおり再生されない原因の一つはこれらしい。

common

sysex(01 00 00 00)で設定。イフェクト、Voice Reserveなど。
JV-1010の場合、EFXは一つしかないので、EFXを使用する全てのPatchはここで設定した内容のイフェクトが有効となる。逆にいうと、EFXの内容が異なる二つのPatchの同時使用できない。設定した音色が意図どおり再生されない原因の一つはこれのようです。

part

sysex(01 00 10 00 - 01 00 1F 00)で設定。
各パートとMIDIチャネル及びパッチの対応はここでとられる。あと、パート別に設定可能なコントローラのレベルの指定。
パッチの指定はPatch Group Type、Patch Group ID、Patch Number で行うが、けしからんのは Patch Group ID の指定方法がインプリメンテーションに書かれていないこと。
Type=00(USER&PRESET)の場合
ID=00 Temporary, 01 USER, 03 PR-A, 04 PR-B, 05 PR-C, 06 GM, 07 PR-E
Type=02(EXP)の場合
ID=02 Orch1, 09 Session
となるみたいだけだけど、なんでこんな重要なことがどこにも書いてないのだろう。
問題はここで指定するレベルとパッチで指定するレベルの関係がよく分からないこと(^^;;。資料によると「performanceの指定がpatchの指定をoverdrivenされる」とあるのだけど。設定した音色が意図どおり再生されない原因の一つはこれかな。

Performance mode temporary patch
p145-147

演奏に使用される音色を指定する各種パラメータ(patch)。パネルでPerformance modeにして VALUEとBANKつまみで音色を指定すると、PARTつまみで指定しているパートにROM(USERの場合はRAM)にあるpatchがこの領域に転送され、音色が変わる。MIDIでCC/PCを出した時も同じ。もちろんSysexで入れ換えることもできる。
ただ次に書く理由よりとても演奏中に入れ換えることはお勧めできません。
JVシリーズがpatchを頻繁に変えるとモタルといわれる原因はこれでしょうね。ちなみに一つの音色のパッチは645byets。まあモタってもしかたがないかなという大きさですね。オンライン中に入れ換えると200ms/patch位かかることになる。
一つのpatchは同一または異なるWaveFormを使った四つのtoneから構成され、各toneにそれぞれGSと同様の音色パラメータを指定することができる。GSでは1つの音しかいじれなかったのが、こっちでは四つ組み合わせていじることができるので、相当にいろいろなことがやれそう(^^)。
全体の設定をする common と音別の tone(4) からなり、パート毎(0-8,0A-0Fパート番号09はTemporary rhythm setup)に指定する。

common

sysex(02 00 00 00 - 02 08 00 00, 02 0A 00 00 - 02 0F 00 00)で設定。EFX、Reverb、chorusの設定など。
analog feelなるパラメータがあり、1/f揺らぎをLFOに与えることができて、演奏に人間味を付けるそうですけど、使えるのですかねぇ。
あと、StructureというtoneをセットにしてTVF,TVAをいろいろ組み合わせる機能があるのですが、これでブースタとして、なんとリングモジュレータが使える。シュトックハウゼンやるのにいいかもしれません(^^;;。
EFXの指定は performance common とまったくいっしょ。両方指定した場合はperformanceの指定が有効になるみたい。

tone

sysex(02 nn 10 00 - 02 nn 16 00)で設定。nnは common に同じ。使うWaveForm、TVF、TVA、LFO1、LFO2など。
パラメータの内容はGSと似ていますが、こちらの方がきめ細かく指定出来ます。例えば TVF、TVAなんかだと各フェーズのボリューム、時間、カーブの形まで指定出来ます。これ上手く使うとROMのpatchては弦の音が膨らみすぎなのを抑えるとか、合唱のアッタクを多少強めにするとか、ピアノのハーフペダルの音作っちゃうとか、いろいろ出来そうです(^^)。

Temporary rhythm setup
p148

調査中ですが、ROMにあるやつはあんまりクラシック向きのものはなさそうです。誰かつくってくれませんか。ティンパニーをベースにして、シンバル、大太鼓、小太鼓、トライアングル、カウベル、銅鑼、カスタネットあたりを適当にいれたリズムセットのパッチが必要ですね。
以下のRAM領域のフォーマットは既に述べてきたものに同じ。

Patch mode temporary patch

パネルでパッチモードにしてパッチを指定した場合にこの領域にROMのPatch内容がコピーされる。sysex(03 00 00 00)でも設定できる。MIDIではあまり使いみちはなさそう。

User patch

使用者が独自に作ったpatchを格納するためのRAM。128個分ある。パネルで「工場出荷時に初期化」すると初期値がRAMのユーザ領域に復元される。
JV-1010の場合、パネルでは保存できないみたい。sysex(11 00 00 00 - 11 7F 00 00)で設定できる。
MIDIでの使い方ですけど、用意した音色がパート数を超えた時にここをつかって切り換えを素早くおこなうという使い方ができそう。問題はオンラインでデータ配付した時、人様のユーザ領域をかってに変えちゃうことになるということ。注意書きして対応ということになると思います。

User rhythm setup

数が二つしかない点を除いて User patch に同じ。sysex(10 00 40 00 - 11 41 00 00)で設定できる。
クラシック系のMIDIではTemporayだけで数は十分だから、使い道はないでしょう。

User performance

これも、数が32である以外は User patch に同じ。sysex(10 00 00 00 - 11 41 1F 00)で設定できる。
クラシック系のMIDIじゃ、あまり使い道はなさそう。メモリの無駄遣いだなぁ(^^;;。




音色の作りかた


JV-1010はGSと比較するとはるかに音を操作できる自由度が大きいです。

4つのTone自在に操作できるし(パラメータを多すぎて、なにがなんだか訳が分からなくなるけど)、EFXというマルチイフェクターがあるし(使いこなしは結構難しそう)、アナログフィールデプスという機能で1/fゆらぎを与える度合いを調整することもできますし(役に立つのかしら)、リングモジュレータまでついています(クラシックじゃ、あまり使い道なさそうですが)。

という次第で、これは強みであると同時に弱みにもなります。ストラクチャの組み合わせが10×10で100。イフェクトの数が40。TVF、TVA、LFO1、LFO2はTone毎に設定可能。とやりだすときりがありません。
従って、リングモジュレータ使って、シュットックハウゼンをバリバリにやろうというのなら別ですが(^^;;、まっとうなクラシックファンだと、ディフォルトのパッチを気に入らない部分をちょっと修正するというアプローチになると思います。
例えば、ストリングの音、ちょっとふくらみ過ぎだから、TVAの値を変えるとか、ピアノのソフトペダルの音が欲しいので、音色を柔らかくするとかという使い方です。

これだけでも、従来の、GSではできなかった音色の変更が可能ですので、表現力は相当に強化されるでしょう。

で、まず音色の指定の仕方から。


音色の指定の方法

JVシリーズは、手弾きのキーボードと繋いでという使い方がメインだったためか、シーケンサとやりとりする時、どういう方法が適当なのか標準が無さそうですね。 例えば、音色の指定でも、CC&PCを使う方法とPerformance Partの音色指定部を使う方式があり、組み合わせるといろいろな設定方法があります。
(以下の説明でPerformanceは全てTemporayPerformanceを意味します)。

  1. SystemCommon+CC&PC
    パフォーマンスモードにして、CCとPCで音色を指定。

    System Commonはアドレス(00 00 00 00)をパフォーマンスモード(01)を指定するだけというデータにすれば、一番簡単なやり方ですが、Peformanceによるイフェクト関連の設定が行われないので、意図通りの音が再生が不可能です。従って、この方式はお勧めできません。
で、以降のやり方はPerformance Common、Performance Partをバルクダンプとして送り、イフェクト関連の設定は指定するPatchに合わせておく必要があります。
  1. SystemCommon+PerformanceCommon+PerformancePart
    パフォーマンスモードにして、Performance Partの音色指定部(Patch Group Type、Patch Group ID、Patch Number)で音色を指定。
  2. SystemCommon+PerformanceCommon+PerformancePart+CC&PC
    パフォーマンスモードにして、Performance Partの音色指定部は適当(00 00 00 00)に仮指定。さらにCCとPCで音色を指定。
2、3共に、取り込んだ音色の部分変更は、この後、Sysexを使い、TemporaryPerformancePatch領域を直接変更することで可能です。
  1. SystemCommon+PerformanceCommon+PerformancePart+TemporaryPerformancePatch
    パフォーマンスモードにして、Performance Partの音色指定部は適当(00 00 00 00)に仮指定。Part毎にTemporary Performance Patchを送り、音色を設定。
  2. SystemCommon+PerformanceCommon+UserPatch+PerformancePart
    パフォーマンスモードにして、あらかじめUser Patchに使用したい音色を設定した上で、Performance Partの音色指定部で使いたいUser Patch番号を指定。(00 01 nn nn)
と五つの方法があります。


PerformancePartの音色指定部の指定パラメータ

これマニュアルの記述がありません。「JV-1010のメモリ構成」Temporary Performance Part を参照して下さい。

Patch指定時のJV側の動作

この時のJV側の動作ですが、「JV-1010のメモリ構成」に書いたように、最終的に聞こえてくる音は全てTemporary PerformanceのRAM領域に設定された内容で決まります。JVにCC&PCやPerformance Partの音色指定部を送り込むとTemporary Performance PatchのRAM領域に指定した音色のROM(UserPatchの場合はRAM)領域の内容がコピーされ、その後、処理はTemporary Performance PatchのRAM領域を使用して行われます。2、3の処理で音色の部分変更をTemporary Performance Patchに対して行うのはこの理由からです。

バルクデータの送信順序

また、System Commonのパフォーマンス番号の指定により、Temporary Performanceの内容が入れ替わりますし、Temporary Performance Partの音色指定部の内容によりTemporary Performance Patchが入れ替わります。したがってバルクデータの送信順序は、上記の通りでないと、おかしなことになります。

それじゃ、2-5のどの方法がいいのだという質問があるかと思いますが、僕は4の方法をお勧めします。理由は
です。


CC&PCを使って音色を切り換える時の注意事項

パッチのイフェクトをパフォーマンスモードでも有効にする方法

ChorusやReverbなどの値であれば、マルチティンバーで各パート毎に設定できます。
具体的にはPatch Commonの EFX TypeからDelay Feedbackまでを Performance Commonの対応する部分にコピーし、Performance PartのOutput Assignを04、FEX_MIX/Chorus/Reverb Send Levelの値を7Fにセットすれば、Patch CommonのChorusやReverbなどの値が有効になります。
ただし、EFX(イフェクト)は2080は3つ、1010は1つですから、イフェクトは全てのPatchで共用することになります。

以上は、マニュアルには明確に書いてありませんが、JV/XPシリーズのFAQのようで、海外のウェブサイトのあっちこっちに情報があります。なんで日本の製品の情報を英語で捜しまわらないといけないのかと疑問には思うのですが(^^;;。

詳しくはここを参照(英語です)




必要なソフトウェア(Windows95/98)


既に述べたように、JV-1010はパッチと呼ばれるSysexのかたまりをMIDIシーケンスの最初でまとめて送り音源を初期設定するという方式をとりますので、JV-1010とバルクダンプ(パッチデータのことです)をやりとりしながらデータの編集を行なうパッチエディタ/ライブラリアンというプログラムとパッチデータの取り扱いのできるシーケンサプログラムが必須です。

パッチエディタ/ライブラリアン

JV-1010の場合、1080/2080用に作られたパッチエディタがそのまま使えます。各機種別のパッチエディタのありかについてはここを、Windows版のプログラムの評価についてはここを参照して下さい(いずれも英語)。

シーケンサ

JV-1010とバルクダンプのやりとりが出来て、syxファイル(バルクダンフをそのままバイナリファイルにしたもの)の取り扱いができるシーケンサが必要です。アドレスの変更、Roland Checksumの自動計算機能も欲しい。
アドレスの変更はTemporary PatchをTemporary Performance Patchに変更したりするので、頻繁に行なうことになります。その度にchecksumの計算が発生しますが、結構大変です。
Windowsだと、普通のシーケンスプログラムならバルクダンプの処理はできますがJV用のアドレスの変更に対応したものがあるのかどうか分かりません。

僕は上記のウェブサイトに紹介されているWinJVというパッチエディタとCakewalkのv2.01(古い^^;;)を使っていたのですが、アドレスを変更とchecksumの計算は手作業となり、やってられないのでプログラムを作っちゃいました。
「Sysex Editor mainly for JV-1010」の項で紹介しますので、よろしければ、お使いください。

Cakewalkでのバルクダンプの取り方

ここをクリックした内容をwincake.iniに加えて下さい。v2.01 or v4.01英語版で動作確認。新しいヴァージョン及び日本語版は分かりません。多分、ローランド提供のプログラムで対応できるのでしょう。


syxファイルをmidファイルに変換する方法

不幸にしてsyxファイルに対応していないシーケンサをお使いでも、syxファイルをmidファイルに変換するDOSのプログラムがありますので、こちらで何とかすることができます。ありかはここです。他にもいろいろなユーティリティがありますので、役に立つかもしれません。



JV-1010の目次のページに戻るのであれば、ここをクリック