JD-800 No.53 Pianoの構造を調べる

 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でパラメータ制御するように変わっており、概ね同様のパラメータ群を持っているようですがその保持方法・制御方法は異なります。

*2:またはRolandから委託を受けたプログラマー

*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番ピアノをサンプリングするなら音域だけのマルチサンプルだけではなく、ベロシティレイヤーも多分に組まないと再現性が低いのでしょう。