Roland JD-800の通称53番ピアノこと、I-53 Ac.Piano 1の構造を調べたので記録に残しておきます。
I-53 Ac.Piano 1そのものを鳴らしたい、或いはエディットしたいという欲求に対しては、今なら公式のRoland BoutiqueシリーズからJD-08が発売されていますので、こちらを導入するのが手っ取り早いです。
物理的なコントローラが不要ならRoland Cloudのソフトウェア版のJD-800を導入するという手もありますね。DACからの出音まで含めて実機相当でなければならないという厳密な思想の方は、JD-800の実機が必要ですが…現存する状態の良いJD-800はあまり流通せず、中古市場で高値安定していますので。
前提
JD-800*1のPatchはPatch Common、Patch Effect、Patch Tone(A,B,C,D)の3つのパラメータグループから構成されます。JV-880/1080/2080/1010等ではPatch EffectはPatch Commonに内包されており、Patch ToneはA~Dではなく1~4で表現されますが、大枠では似たようなものです(個々のパラメータの有無やデータの持ち方など細部ではもちろん違います。)。
以下、各パラメータグループごとにI-53 Ac.Piano 1の設定値を調べていきます。
※本投稿に掲載しているJD-800 I-53 Ac.Piano 1のオリジナルのパッチデータの著作権はローランド株式会社*2にあります。どんなパラメータをどう設定してあの音を作っているのだろうかという調査・分析のために引用しています。
Patch Common
Offset [dec] | Parameter | Raw Value | Decoded Value |
---|---|---|---|
0 | Patch name1 | 0x41 | A |
1 | Patch name2 | 0x63 | c |
2 | Patch name3 | 0x2e | . |
3 | Patch name4 | 0x50 | P |
4 | Patch name5 | 0x69 | i |
5 | Patch name6 | 0x61 | a |
6 | Patch name7 | 0x6e | n |
7 | Patch name8 | 0x6f | o |
8 | Patch name9 | 0x20 | |
9 | Patch name10 | 0x31 | 1 |
10 | Patch name11 | 0x20 | |
11 | Patch name12 | 0x20 | |
12 | Patch name13 | 0x20 | |
13 | Patch name14 | 0x20 | |
14 | Patch name15 | 0x20 | |
15 | Patch name16 | 0x20 | |
16 | Patch level | 0x64 | 100(Max) |
17 | Key range L (Tone A) | 0x00 | MIDI Note#0 |
18 | Key range H (Tone A) | 0x7f | MIDI Note#127 |
19 | Key range L (Tone B) | 0x00 | MIDI Note#0 |
20 | Key range H (Tone B) | 0x7f | MIDI Note#127 |
21 | Key range L (Tone C) | 0x00 | MIDI Note#0 |
22 | Key range H (Tone C) | 0x7f | MIDI Note#127 |
23 | Key range L (Tone D) | 0x00 | MIDI Note#0 |
24 | Key range H (Tone D) | 0x7f | MIDI Note#127 |
25 | Bender range up | 0x02 | 2 |
26 | Bender range down | 0x02 | 2 |
27 | A-touch bend | 0x0e | 0 |
28 | Solo Sw | 0x00 | OFF |
29 | Solo legato | 0x01 | ON |
30 | Portamento SW | 0x00 | OFF |
31 | Portamento mode | 0x00 | NORMAL |
32 | Portamento time | 0x1b | 27 |
33 | Layer tone | 0x05 | AC |
34 | Active tone | 0x01 | A |
35 | [EQ] Low frequency | 0x00 | 200Hz |
36 | [EQ] Low gain | 0x14 | +5dB |
37 | [EQ] Mid frequency | 0x02 | 315Hz |
38 | [EQ] Mid Q | 0x00 | 0.5 |
39 | [EQ] Mid gain | 0x0f | 0db |
40 | [EQ] High freq | 0x01 | 8kHz |
41 | [EQ] High gain | 0x17 | +8dB |
42 | Key mode | 0x00 | WHOLE |
43 | Split point | 0x24 | MIDI Note#36 |
44 | Lower channel | 0x01 | MIDI Ch#2 |
45 | Upper channel | 0x00 | MIDI Ch#1 |
46 | Lower program change | 0x22 | 34 |
47 | Upper program change | 0x22 | 34 |
48 | Hold mode | 0x02 | BOTH |
49 | <dummy> | 0x00 | 0 |
ここで注目すべき点は多くはありませんが、Layer toneとActive toneについては説明が必要だと思います。
Layer toneがACというのはPatchを構成する4つのToneの内、ToneAとToneCの2つだけが有効化されているという意味になります。JV系で言うところのTone Switchと同じ目的のパラメータですが、JV系のTone SwitchがPatch Tone内のパラメータとして各Tone毎に存在するのに対し、JD-800ではPatch Commonに一つに集約されています*3。JD-800の最大同時発音数は24音ですが、キーボードスプリットは設定されていないのでToneAとToneCの2つが同時に鳴ることになり最大同時発音数は半分の12音となります。
Toneの有効/無効を決めるLayer toneパラメータがあるのにActive toneというパラメータもあるのは何故だろうと疑問が湧きますが、こちらはJD-800本体パネルのスライダーなどのコントローラで操作する対象となるトーンを定義しています。つまり、この状態ではToneAだけが本体パネルからエディットできる状態となっています。
他には、3バンドEQの両端で200Hzを+5dB、8kHzを+8dBに設定しているのが目に付く位でしょうか。JD-800由来の同一波形を搭載したモデル以外では、同じ設定値にしても狙った効果は出ないと想定されますが、音作りの参考になるでしょう。
Patch Effect
Offset [dec] | Parameter | Raw Value | Decoded Value |
---|---|---|---|
0 | Group-A sequence | 0x00 | DS-PH-SP-EN |
1 | Group-B sequence | 0x00 | CHO-DLY-REV |
2 | Group-A block-1 sw | 0x00 | OFF |
3 | Group-A block-2 sw | 0x00 | OFF |
4 | Group-A block-3 sw | 0x00 | OFF |
5 | Group-A block-4 sw | 0x00 | OFF |
6 | Group-B block-1 sw | 0x00 | OFF |
7 | Group-B block-2 sw | 0x00 | OFF |
8 | Group-B block-3 sw | 0x01 | ON |
9 | Group-B effect balance | 0x2a | 58:42 |
10 | [Distortion] Type | 0x02 | CRY DRIVE |
11 | [Distortion] Drive | 0x64 | 100(Max) |
12 | [Distortion] Level | 0x64 | 100(Max) |
13 | [Phaser] Manual | 0x1c | 380Hz |
14 | [Phaser] Rate | 0x1c | 2.8Hz |
15 | [Phaser] Depth | 0x3c | 60 |
16 | [Phaser] Resonance | 0x2a | 42 |
17 | [Phaser] Mix | 0x64 | 100(Max) |
18 | [Spectrum] Band 1 | 0x00 | -15 |
19 | [Spectrum] Band 2 | 0x00 | -15 |
20 | [Spectrum] Band 3 | 0x00 | -15 |
21 | [Spectrum] Band 4 | 0x00 | -15 |
22 | [Spectrum] Band 5 | 0x00 | -15 |
23 | [Spectrum] Band 6 | 0x00 | -15 |
24 | [Spectrum] Band width | 0x00 | 1 |
25 | [Enhancer] sens | 0x00 | 0 |
26 | [Enhancer] Mix | 0x00 | 0 |
27 | [Delay] Center tap | 0x75 | 400ms |
28 | [Delay] Center level | 0x00 | 0(Min) |
29 | [Delay] Left tap | 0x7d | 560ms |
30 | [Delay] Left level | 0x43 | 67 |
31 | [Delay] Right tap | 0x70 | 300ms |
32 | [Delay] Right level | 0x51 | 81 |
33 | [Delay] Feedback | 0x48 | +46% |
34 | [Chorus] Rate | 0x04 | 0.4Hz |
35 | [Chorus] Depth | 0x1f | 31 |
36 | [Chorus] Delay time | 0x4b | 26ms |
37 | [Chorus] Feedback | 0x31 | 0% |
38 | [Chorus] Level | 0x63 | 99 |
39 | [Reverb] Type | 0x05 | HALL4 |
40 | [Reverb] Pre delay | 0x35 | 53ms |
41 | [Reverb] Early ref level | 0x00 | 0 |
42 | [Reverb] HF dump | 0x0f | 16kHz |
43 | [Reverb] Time | 0x14 | 2.1s |
44 | [Reverb] Level | 0x32 | 50 |
45 | [Reverb] <dummy> | 0x00 | 0 |
いきなり、"Group-A sequence"や"Group-B sequence"といったパラメータが出てきて何じゃこりゃ?と、思うかもしれませんが、JD-800以外には存在しないパラメータなので当然です。そして、ここで言う"sequence"はMIDIシーケンサの事ではなく、単に「順序」を意味する英語のシーケンスです。JD-800では2系統のマルチエフェクトを積んでおり、それぞれGroup-A・Group-Bと呼称されています。Group-Aはモノラル入出力のエフェクトチェーンが、Group-Bはモノラル入力ステレオ出力のエフェクトチェーンとなっています。この前提知識があると、DS-PH-SP-EN、CHO-DLY-REVといった設定値の意味が見えてくるのではないでしょうか。この場合、Group-AはDistortion⇒Phaser⇒Spectrum⇒Enhancerの順序で、Group-BはChorus⇒Delay⇒Reverbの順にルーティングされエフェクト処理されることを意味しています。
続くパラメータ群の"Group-X block-N sw"というパラメータは各エフェクトのON/OFFを切り替えるパラメータです。ここではGroup-Aは全てOFFで、Group-BのReverbだけ有効な状態となっています。
そして、Group-Bはいわゆる空間系エフェクトなのでDry/Wetレベルを指定するためのエフェクトバランスのパラメータが用意されており、Dry:Wet=58:42が設定されています。
次に各エフェクトの設定値が定義されています。例えば、Distortionが最大に掛かってるように見えますが、前述の通り"Group-A block-1 sw"がOFFなので、この設定値に意味は無く無効です。同様にPhaser, Spectrum, Enhancer, Chorus, Delayの設定値も無効です。意味があるのはReverbのパラメータのみです。Reverb Time=2.1秒は個人的にはやや長いような気もしますが、他はごく一般的な設定値の範疇かと思います。
ちなみに、Group-Bのような空間系エフェクトはJD-800以前の他のRolandシンセにも搭載されていましたが、Group-Aのようなエフェクターを内蔵したモデルは記憶の限りでは存在しませんでした。JD-800は1991年発売ですが、この時点で存在したマルチエフェクトの定番と言えば、BOSS SE-50(1990年発売)があります*4。というわけで、SE-50相当のDSPを積んでそうに思えます*5。
Patch Tone A~D
Offset [dec] | Parameter | ToneA Raw Value | ToneB Raw Value | ToneC Raw Value | ToneD Raw Value | Decoded Value |
---|---|---|---|---|---|---|
0 | Velocity curve | 0x02 | 0x02 | 0x02 | 0x02 | 2 |
1 | Hold control | 0x01 | 0x01 | 0x01 | 0x01 | ON |
2 | LFO1 Rate | 0x49 | 0x49 | 0x49 | 0x49 | 73 |
3 | LFO1 Delay | 0x00 | 0x00 | 0x00 | 0x00 | 0 |
4 | LFO1 Fade | 0x32 | 0x32 | 0x32 | 0x32 | 0 |
5 | LFO1 Waveform | 0x00 | 0x00 | 0x00 | 0x00 | TRI |
6 | LFO1 Offset | 0x01 | 0x01 | 0x01 | 0x01 | 0 |
7 | LFO1 Key trigger | 0x01 | 0x01 | 0x01 | 0x01 | ON |
8 | LFO2 Rate | 0x37 | 0x37 | 0x37 | 0x37 | 55 |
9 | LFO2 Delay | 0x00 | 0x00 | 0x00 | 0x00 | 0 |
10 | LFO2 Fade | 0x32 | 0x32 | 0x32 | 0x32 | 0 |
11 | LFO2 Waveform | 0x00 | 0x00 | 0x00 | 0x00 | TRI |
12 | LFO2 Offset | 0x01 | 0x01 | 0x01 | 0x01 | 0 |
13 | LFO2 Key trigger | 0x01 | 0x01 | 0x01 | 0x01 | ON |
14 | Wave source | 0x00 | 0x00 | 0x00 | 0x00 | INT |
15 | Waveform MSB | 0x00 | 0x00 | 0x00 | 0x00 | MSB=0,LSB=70 |
16 | Waveform LSB | 0x46 | 0x46 | 0x46 | 0x46 | #71 Piano Atk |
17 | Pitch coarse | 0x24 | 0x24 | 0x24 | 0x30 | ABC:-12, D:0 |
18 | Pitch fine | 0x34 | 0x45 | 0x37 | 0x34 | A:2, B:19, C:5, D:2 |
19 | Pitch random | 0x07 | 0x20 | 0x07 | 0x07 | A:7, B:32, C:7, D:7 |
20 | Key follow | 0x0d | 0x0c | 0x0d | 0x0e | A:+101%, B:+100%, C:+101%, D+102% |
21 | Bender | 0x01 | 0x01 | 0x01 | 0x01 | ON |
22 | A-touch bend | 0x00 | 0x00 | 0x00 | 0x00 | OFF |
23 | LFO1 sens | 0x32 | 0x32 | 0x32 | 0x32 | 0 |
24 | LFO2 sens | 0x32 | 0x32 | 0x32 | 0x32 | 0 |
25 | Lever sens | 0x32 | 0x32 | 0x32 | 0x32 | 0 |
26 | A-touch mod sens | 0x32 | 0x32 | 0x32 | 0x32 | 0 |
27 | PITCH ENV Velo | 0x32 | 0x32 | 0x32 | 0x32 | 0 |
28 | PITCH ENV Time velo | 0x32 | 0x32 | 0x32 | 0x32 | 0 |
29 | PITCH ENV Time KF | 0x0a | 0x0a | 0x0a | 0x0a | 0 |
30 | PITCH ENV Level 0 | 0x32 | 0x32 | 0x32 | 0x32 | 0 |
31 | PITCH ENV Time 1 | 0x00 | 0x00 | 0x00 | 0x00 | 0 |
32 | PITCH ENV Level 1 | 0x32 | 0x32 | 0x32 | 0x32 | 0 |
33 | PITCH ENV Time 2 | 0x00 | 0x00 | 0x00 | 0x00 | 0 |
34 | PITCH ENV Time 3 | 0x00 | 0x00 | 0x00 | 0x00 | 0 |
35 | PITCH ENV Level 2 | 0x32 | 0x32 | 0x32 | 0x32 | 0 |
36 | TVF Filter mode | 0x02 | 0x02 | 0x02 | 0x02 | LPF |
37 | TVF Cutoff freq | 0x2e | 0x2e | 0x2e | 0x2e | 46 |
38 | TVF Resonance | 0x00 | 0x00 | 0x00 | 0x00 | 0 |
39 | TVF Key follow | 0x09 | 0x0a | 0x09 | 0x0a | AC:-10%, BD:0% |
40 | TVF A-touch sens | 0x32 | 0x32 | 0x32 | 0x32 | 0 |
41 | TVF LFO select | 0x01 | 0x01 | 0x01 | 0x01 | LFO2 |
42 | TVF LFO depth | 0x32 | 0x32 | 0x32 | 0x32 | 0 |
43 | TVF Env depth | 0x61 | 0x61 | 0x61 | 0x61 | 97 |
44 | TVF ENV Velo | 0x64 | 0x64 | 0x64 | 0x64 | +50(Max) |
45 | TVF ENV Time velo | 0x32 | 0x32 | 0x32 | 0x32 | 0 |
46 | TVF ENV Time KF | 0x0b | 0x0b | 0x0b | 0x0b | +1 |
47 | TVF ENV Time 1 | 0x00 | 0x00 | 0x00 | 0x00 | 0 |
48 | TVF ENV Level 1 | 0x64 | 0x64 | 0x64 | 0x64 | 100(Max) |
49 | TVF ENV Time 2 | 0x3b | 0x39 | 0x3b | 0x39 | AC:59, BD:57 |
50 | TVF ENV Level 2 | 0x3a | 0x3a | 0x3a | 0x3a | 58 |
51 | TVF ENV Time 3 | 0x49 | 0x38 | 0x49 | 0x3b | AC:73, B:56, D:59 |
52 | TVF ENV Sustain level | 0x00 | 0x00 | 0x00 | 0x00 | 0 |
53 | TVF ENV Time 4 | 0x4c | 0x4c | 0x4c | 0x4c | 76 |
54 | TVF ENV Level 4 | 0x00 | 0x00 | 0x00 | 0x00 | 0 |
55 | TVA Bias direction | 0x01 | 0x00 | 0x01 | 0x00 | AC:LOW, BD:UP |
56 | TVA Bias point | 0x34 | 0x3d | 0x34 | 0x3d | AC:MIDI Note#52, BD:MIDI Note#61 |
57 | TVA Bias level | 0x10 | 0x0a | 0x10 | 0x0a | AC:+6. BD:0 |
58 | TVA Level | 0x64 | 0x5a | 0x2f | 0x64 | AD:100(Max),B:90,C:47 |
59 | TVA A-touch | 0x32 | 0x32 | 0x32 | 0x32 | 0 |
60 | TVA LFO select | 0x01 | 0x01 | 0x01 | 0x01 | LFO2 |
61 | TVA LFO depth | 0x32 | 0x32 | 0x32 | 0x32 | 0 |
62 | TVA ENV Velo | 0x56 | 0x56 | 0x56 | 0x56 | +36 |
63 | TVA ENV Time velo | 0x42 | 0x42 | 0x42 | 0x42 | +16 |
64 | TVA ENV Time KF | 0x0d | 0x0d | 0x0d | 0x0d | +3 |
65 | TVA ENV Time 1 | 0x00 | 0x00 | 0x51 | 0x00 | ABD:0, C:81 |
66 | TVA ENV Level 1 | 0x64 | 0x64 | 0x64 | 0x64 | 100(Max) |
67 | TVA ENV Time 2 | 0x34 | 0x34 | 0x34 | 0x34 | 52 |
68 | TVA ENV Level 2 | 0x64 | 0x64 | 0x64 | 0x64 | 100(Max) |
69 | TVA ENV Time 3 | 0x5a | 0x5a | 0x54 | 0x54 | AB:90, CD:84 |
70 | TVA ENV Sustain Level | 0x00 | 0x00 | 0x00 | 0x00 | 0 |
71 | TVA ENV Time4 | 0x37 | 0x32 | 0x32 | 0x32 | A:55, BCD:50 |
前述の通り、Patch CommonのLayer toneでToneA/Cだけが有効化されていますが、ToneB/Dも意味ありげなパラメータが組まれていることが解ります。通称TKピアノや小室ピアノと呼ばれる音を再現する場合にはこのトーンを有効化するのだという通説もありますね。
各Toneの使用波形はいずれも#71 Piano Atkが選択されています。なお、蛇足ながらJD-800のラック版JD-990にはアコースティックピアノ波形がもう一つ標準搭載されており、#109 Ac Piano 1が存在します。これはJV-80*6の#1 Ac.Piano 1と同一波形であるとマニュアルに明示されています*7。こちらのピアノは通称DAピアノや浅倉ピアノと呼ばれる音の元ネタのようで、氏がJV-880を愛用していることが解るインタビュー記事などが見つかります。
閑話休題、各パラメータを眺めてみるとアコースティックピアノなのでいずれのToneもLFOはどこにも適用していません。
ToneA/B/Cは12半音つまり1オクターブ下げられており、ToneDのみ標準の音域で鳴るように設定されています。つまりToneDを有効にすれば1オクターブ下がユニゾンで鳴るように構成されています。同時に、fine tuneでToneAは2cent、Cは5centずらされてますので、ToneA/Cのみでも微妙にデチューンがかかった出音が得られるように構成されています。これは、単純に音に厚みを出すためでしょう。さらに、ランダムピッチが指定されていますので、打鍵するたびに微妙に異なるピッチで発音されます。通常のアコースティックピアノでこの類のパラメータを活用することはあまりないと思いますが、53番ピアノではランダムピッチも使用されているのです。最大値100のため、ToneA/C/Dは7と比較的小さなブレ幅になるように指定されていますが、ToneBのみ32と比較的大きなブレ幅となっています*8。加えて、キーフォローがToneA/Cが101%、ToneDが102%と微妙な値が設定されています。つまり鍵盤の中央部から離れる程ピッチが微妙にズレるように設定されています*9。
アコースティックピアノなのでピッチEGは普通に未使用です。
フィルターは全ToneがLPFで同一カットオフ周波数、レゾナンスも全て0となっています。あの特有のキンキンした感じを出すために若干レゾナンスが掛かっているかと思っていたので意外です。つまりは、#71 Piano Atk波形そのものとPatch Commonで指定されたHighEQの8kHzブーストであの癖のある音になるのでしょう。なお、ToneA/CのみTVFキーフォローが-10%となっています。つまり、高い音になるほどカットオフ周波数が下がり、低い音になるほど上がります。直感的には逆な感じがしますが、53番ピアノの設定はこうなっているのです。全Tone共通してTVFのサスティンレベルが無く、各Toneで長短の差異はありますがDecayTimeと共にフィルタは閉じるようになっています。
アンプはToneA/CのみNote#52以下の音域で音量が徐々に上がるようにバイアスがかけられています。個人的にはピアノ音色は高音域の音量を下げる方向でプログラムすることがありますが、53番ピアノではPatch CommonのLowEQのブースト設定も含めて低音域を強調したい意図がありそうです。ToneA/Dは最大音量100、ToneBは90、ToneCは47となっており、デフォルトで鳴るToneA/CについてはCがAの約半分となっています。これまで見てきたようにToneAとToneCの設定はかなり似ていますが、ToneCのレベルを半分程度に抑えることでデチューン感をさほど感じさせないながらも存在感のある厚みを持ったアコースティックピアノにする狙いがありそうです。また、TVF同様にTVAもサスティンレベルは0ですのでDecayTimeが過ぎれば音は消えるようになっていますが、アコースティックピアノ音色としては一般的な構成でしょう。
なお、アフタータッチは全て無効化されており、ピッチもフィルターもアンプも変化しません。
一方、ベロシティはフィルタとアンプで有効に活用されており、強く打鍵する程フィルタは開き、音量も大きくなるように設定されています。特にフィルタの方は最大値が指定されており、多分にベロシティセンシティブな感じに設定されています*10。
以上。
*1:JD-990も同様です。JD-08はパラメータ一覧が公表されておらず、MIDI SystemExclusiveに非対応な代わりにMIDI CCでパラメータ制御するように変わっており、概ね同様のパラメータ群を持っているようですがその保持方法・制御方法は異なります。
*3:JV系では各Tone毎にON/OFFの本質的に1bitの情報を各1byte使用して合計4byte使用するところ、JD-800ではPatch Commonに各ToneのON/OFFに相当する4bitの情報として集約し1byteの情報として保持しています。他にもJVとJDでは同様のデータでも保持方法が違うことが多く、開発者というか開発体制が全く別物なことが察せられます。フェラーリを連想させる真っ赤なショルダーキーボードAX-1はRoland Italyでデザインされたと聞いていますが、JD-800もイタリアの開発チームが作ったんでしょうかね?
*4:SE-70は1993年なのでまだ存在しません。
*5:Service ManualによればJD-800はSE-50と同一DSPの末尾枝番違いが積まれてることになっています。
*6:つまり、JV-880と同じ。
*7:実際にはJDシリーズはサンプリング周波数44.1kHz、JVシリーズは32kHzという違いがあります。
*8:あまりアコースティックピアノらしからぬためToneBはデフォルトでは無効化されているのでしょうかね。
*9:ToneBはランダムピッチが大きく適用されるためキーフォローは100%のままとして大きく破綻しないようにしているのでしょうかね。
*10:故に、JD-800の53番ピアノをサンプリングするなら音域だけのマルチサンプルだけではなく、ベロシティレイヤーも多分に組まないと再現性が低いのでしょう。