1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
|
<!DOCTYPE html><html><head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="theme-color" content="#000000">
<title>Chrisoft::Blog(r#"EDIROL SD-20: the Crumbling of the Canvas?")</title>
<meta name="description" content="«EDIROL SD-20: the Crumbling of the Canvas?» de spelunca ursae visere">
<meta name="author" content="Chris Xiong">
<script type="text/javascript" src="/panel.js"></script>
<script type="text/javascript" src="/themer.js"></script>
<script type="text/javascript" src="/blog/footnoter.js"></script>
<script type="text/javascript" src="/blog/aes-js.js"></script>
<script type="text/javascript" src="/blog/scrypt.js"></script>
<script type="text/javascript" src="/blog/sha256.js"></script>
<script type="text/javascript" src="/blog/decryptor.js"></script>
<link rel="stylesheet" type="text/css" href="/common.css">
<link rel="stylesheet" type="text/css" href="/panel.css">
<link rel="stylesheet" type="text/css" href="/theme0a.css" id="theme0a">
<link rel="stylesheet" type="text/css" href="/theme0b.css" id="theme0b">
<link rel="stylesheet" type="text/css" href="/theme1a.css" id="theme1a">
<link rel="stylesheet" type="text/css" href="/theme1b.css" id="theme1b">
<link rel="stylesheet" type="text/css" href="/theme2a.css" id="theme2a">
<link rel="stylesheet" type="text/css" href="/theme2b.css" id="theme2b">
<link rel="stylesheet" type="text/css" href="/theme3a.css" id="theme3a">
<link rel="stylesheet" type="text/css" href="/theme3b.css" id="theme3b">
<link rel="stylesheet" type="text/css" href="/blog/blogext.css">
<script>
function ol()
{
window.onresize=function()
{
if(window.innerWidth<768)
setupevents();
else unsetevents();
}
window.onresize();
loadTheme();
_decryptonload();
}
</script>
</head>
<body onload="ol()" style="overflow-x:hidden;">
<div id="panel" class="TText">
<ul id="panellist">
<li><a href="/"><h1>Chrisoft</h1></a></li>
<li><a href="/blog"><h2>Blog</h2></a></li>
<li><a href="#"><h3 id="title">EDIROL SD-20: the Crumbling of the Canvas?</h3></a></li>
<li><span>Tags</span>
<ul id="tagslist">
<li><a href="/blog/list/device-review/">device-review</a></li><li><a href="/blog/list/midi/">midi</a></li><li><a href="/blog/list/music/">music</a></li></ul>
</li>
<li id="tocouter">
<span>Table of Contents</span>
<ul id="tocroot">
<li><a class="toctarg" href="#tocanch0">The Encounter</a></li><li><a class="toctarg" href="#tocanch1">The Module</a></li><li><a class="toctarg" href="#tocanch2">The Setup</a></li><li><a class="toctarg" href="#tocanch3">The Sounds</a></li><li><a class="toctarg" href="#tocanch4">The Editability</a></li><li><ul class="tocnode"><li><a class="toctarg" href="#tocanch5">The Quirks</a></li></ul></li><li><a class="toctarg" href="#tocanch6">The Manual</a></li><li><a class="toctarg" href="#tocanch7">The Insides</a></li><li><a class="toctarg" href="#tocanch8">The Secrets</a></li><li><ul class="tocnode"><li><a class="toctarg" href="#tocanch9">Test mode</a></li><li><a class="toctarg" href="#tocanch10">unknown (likely firmware
update) mode</a></li></ul></li><li><a class="toctarg" href="#tocanch11">The Conclusion</a></li><li><a class="toctarg" href="#tocanch12">The … Death?</a></li></ul>
</li>
<li style="margin-left:-0.5em"><a id="prevp" href="2021-06-03.html">Prev post</a></li>
<li style="margin-left:-0.5em"><a id="nextp" href="2022-07-23.html">Next post</a></li>
</ul>
</div>
<div id="content">
<h2 id="titleh" class="TText" style="font-wight:normal;">EDIROL SD-20: the Crumbling of the Canvas?</h2>
<div id="datetags" class="TText" style="margin-bottom:1em;">2021-10-10<br>#device-review #midi #music</div>
<hr><div id="article" class="TText"><script>
window.addEventListener("DOMContentLoaded",function(){
const cl=document.querySelectorAll('div.collapse');
let n=0;
for(let x of cl)
{
const d=document.createElement('blockquote');
const dd=x.cloneNode(true);
x.parentNode.insertBefore(d,x);
x.parentNode.removeChild(x);
dd.id=`cc${n++}`;
dd.style.display='none';
const s=document.createElement('span');
const b=document.createElement('b');
const a=document.createElement('a');
a.classList.add('ca');
a.setAttribute('x',n-1);
a.innerHTML='show';
a.href='javascript:void(0)';
if (dd.hasAttribute('caption'))
b.innerHTML=dd.getAttribute('caption');
else
b.innerHTML=dd.getAttribute('data-caption');
s.appendChild(b);
s.appendChild(document.createTextNode(' ['));
s.appendChild(a);
s.appendChild(document.createTextNode(']'));
d.appendChild(s);
d.appendChild(dd);
a.onclick=function()
{
let x='none';
if(a.innerHTML=='show')
{
a.innerHTML='hide';
x='block';
}
else
{
a.innerHTML='show'
}
document.getElementById(`cc${a.getAttribute('x')}`).style.display=x;
}
}
const al=document.querySelectorAll('audio');
n=0;
for(let x of al)
{
x.id=`a${n++}`;
x.onplay=function()
{
for(let x of al)
{
if(x.id!=this.id)x.pause();
}
}
}
});
</script>
<article>
<p>I was intrigued by the insides of EDIROL’s SD-20. How on earth did
Roland squeeze half of SD-80’s content in to a package that’s smaller
than SD-80’s main board? Turns out it was by crippling the product…</p>
<h2 id="tocanch0" class="tvis">The Encounter</h2>
<p>I didn’t get my SD-20 for $50 as promised in my SD-80 article. The
lowest price I found when I started watching for spares again was $75.
It stayed there for over half a year. But just weeks before I got into
the States, it was gone. All the rest of the listings asked for
ridiculous prices ranging from $150 to $250. There’s no way I will pay
over $100 for a SD-20. So I waited and waited…</p>
<p>Until one day a new listing popped up. It was exactly $100 (with free
shipping). “Well,” I thought, “this is it.” It accepts best offer, but
nobody else offered to buy it until the listing ended. That’s the
bizarre story of me getting my SD-20 at my max acceptable price…</p>
<h2 id="tocanch1" class="tvis">The Module</h2>
<p>I felt the cheapness inside instantly when I picked up the package:
the SD-20 (with the included, somewhat dodgy aftermarket power adapter)
weights absolutely nothing! It’s even lighter than the ThinkPad mouse I
occasionally use. That doesn’t inspire much faith on its insides.</p>
<p>The exterior of the module is made of plastic exclusively. No metal
whatsoever (except on the connectors). SD-80’s metal front cover weights
more than this entire thing…</p>
<p>Flipping the module around reveals the dreaded three word phrase:
“Made in China”. I wonder how many products that are never available in
China at all are assembled in China.</p>
<p>There’s only one button and one knob on the front panel of the SD-20.
This is even more cut down than the SC-8820, which also has only one
button and one knob, but the volume knob doubles as a preview
button.</p>
<p>Roland clearly made SD-20 the intended successor of SC-8820. Just
look at the pictures in the manuals. They have nearly identical form
factors. Let’s see how their sounds will compare.</p>
<p>The choice of ports is kind of weird on the SD-20. It’s almost
identical to the ports on the back of the SC-8820, except the audio
input being replaced by a 3.5mm combo jack, addition of an optical
S/PDIF TOSLINK port, and omission of the DIN MIDI out port. The serial
port (mini DIN 8-pin) featured on all older SC models made its only
reappearance in the SD series. Despite having an audio input port, the
SD-20, just like its predecessors in the SC family, doesn’t have any
digital audio interface functionality. The audio input is merely passed
through to the analog output.</p>
<table>
<tbody><tr>
<td>
<div style="text-align:center;max-width:98%;">
<a href="//filestorage.chrisoft.org/blog/img/sd20_module.jpg"><img style="width: 48%;" src="//filestorage.chrisoft.org/blog/img/ssbsthumb_1536x1536_sd20_module.jpg"></a> <br>SD-20 on top of
the SD-80
</div>
</td>
<td>
<div style="text-align:center;max-width:98%;">
<a href="//filestorage.chrisoft.org/blog/img/sd20_bottom.jpg"><img style="width: 48%;" src="//filestorage.chrisoft.org/blog/img/ssbsthumb_1536x1536_sd20_bottom.jpg"></a> <br>Bottom with
serial number censored
</div>
</td>
</tr>
</tbody></table>
<h2 id="tocanch2" class="tvis">The Setup</h2>
<p>Like the SD-80, Roland has discontinued driver support for the SD-20.
The SD-20 will not even appear powered on if you choose to power the
unit through USB bus power and have no driver installed. The same trick
to make SD-80’s driver work on Windows 10 also works for the SD-20. You
can search the Internet for the trick, or check out my first post on the
SD-80 for the directions.</p>
<p>The module works out of the box on Linux as long as you have proper
kernel support (that is, you shouldn’t have to worry about this unless
you build the kernel yourself). Required kernel modules are identical to
those of the SD-80.</p>
<p>The use of RCA jacks for analog audio output means that I don’t have
the suitable cable to connect them to my audio interfaces at the moment.
Fortunately I can still make digital recordings thanks to the inclusion
of the S/PDIF output. The digital signal has a sample rate of 44100 Hz,
the same as SD-80.</p>
<h2 id="tocanch3" class="tvis">The Sounds</h2>
<p>(Unless otherwise stated, all hardware demos in this section are
recorded through the digital S/PDIF interface with EDIROL UA-25. All
files are level normalized to -1 dB. Excerpts are not normalized after
being extracted from the normalized original.)</p>
<p>It’s the same StudioCanvas sound, but …</p>
<p>With a few exceptions, preset instruments shared by the SD-20 and the
SD-80 sound roughly identical. However, note the different mix levels on
each model.</p>
<div>
<table style="position:relative;left:50%;transform:translate(-50%,0);text-align:center">
<tbody><tr>
<th>
SD-20
</th>
<th>
SD-20 Converter
</th>
<th>
SD-80
</th>
</tr>
<tr>
<td>
<audio controls="" preload="none" src="//filestorage.chrisoft.org/blog/data/SD-20/AMEDLEY.SD20.NCREX.OGG">
</audio>
</td>
<td>
<audio controls="" preload="none" src="//filestorage.chrisoft.org/blog/data/SD-20/AMEDLEY.SD20C.NCREX.OGG">
</audio>
</td>
<td>
<audio controls="" preload="none" src="//filestorage.chrisoft.org/blog/data/SD-20/AMEDLEY.SD80.NCREX.OGG">
</audio>
</td>
</tr>
<tr>
</tr><tr>
<td colspan="3">
Excerpt from AMEDLEY.MID by Earl Gray Fowler from Voyetra Technologies,
arranged for SD-80 (Native Mode)
</td>
</tr>
</tbody></table>
</div>
<p>However significant differences show up as soon as you start tuning
any non-GM1 controls (this includes new controls defined by GM2, e.g. cc
74).</p>
<div>
<table style="position:relative;left:50%;transform:translate(-50%,0);text-align:center">
<tbody><tr>
<th>
SD-20
</th>
<th>
SD-20 Converter
</th>
<th>
SD-80
</th>
</tr>
<tr>
<td>
<audio controls="" preload="none" src="//filestorage.chrisoft.org/blog/data/SD-20/th06_13.sd20.ncrex.ogg">
</audio>
</td>
<td>
<audio controls="" preload="none" src="//filestorage.chrisoft.org/blog/data/SD-20/th06_13.sd20c.ncrex.ogg">
</audio>
</td>
<td>
<audio controls="" preload="none" src="//filestorage.chrisoft.org/blog/data/SD-20/th06_13.sd80.ncrex.ogg">
</audio>
</td>
</tr>
<tr>
</tr><tr>
<td colspan="3">
Excerpt from th06_13.mid
</td>
</tr>
</tbody></table>
</div>
<p>Note the very different filter characteristics on the piano.</p>
<p>What make this module nearly unusable is its 64 voices polyphony.
Roland has been using this “voice” concept for polyphony since the very
beginning of their PCM based synths. An instrument can have up to four
“layers” (or “WGs”, wave generators in Roland’s terms) in these Roland
PCM synthesizers. Each layer can consist of up to two channels (for
stereo samples). Each one of these channels takes up a “voice” when
played. The contemporary set and solo set of the StudioCanvas make heavy
use of layering, as well as stereo samples. Some of these patches
casually use up to 4 voices per note, with a (theoretical) maximum of 8.
Unlike the SC-8850 vs SC-8820, when Roland stripped down the polyphony
of the SD-20, they did not create simplified patches that use fewer
voices like they did for the SC-8820. This immediately brings down the
actual note polyphony of the SD-20 down to the same (or even lower)
level of SC-55, and is no where near usable. Hence in terms of
polyphony, the SD-20 is a downgrade compared to its predecessor SC-8820:
Even you have Roland’s (then) latest studio sounds inside a tiny box,
you have to take great precaution while using them, as they deplete your
available polyphony <em>very</em> fast. Both tracks below demonstrate
how 64 voices is nowhere close to enough for the SD-20.</p>
<div>
<table style="position:relative;left:50%;transform:translate(-50%,0);text-align:center">
<tbody><tr>
<th>
SD-20
</th>
<th>
SD-20 Converter
</th>
<th>
SD-80
</th>
</tr>
<tr>
<td>
<audio controls="" preload="none" src="//filestorage.chrisoft.org/blog/data/SD-20/th06_13.sd20.ncr.ogg">
</audio>
</td>
<td>
<audio controls="" preload="none" src="//filestorage.chrisoft.org/blog/data/SD-20/th06_13.sd20c.ncr.ogg">
</audio>
</td>
<td>
<audio controls="" preload="none" src="//filestorage.chrisoft.org/blog/data/SD-20/th06_13.sd80.ncr.ogg">
</audio>
</td>
</tr>
<tr>
</tr><tr>
<td colspan="3">
“Crude” replica of Septette for a Dead Princess by ZUN. The original
tuning was not replicated.
</td>
</tr>
</tbody></table>
</div>
<p>The SD-20 drops notes like crazy in the final section. The SD-20 MIDI
Converter drops percussion notes instead.</p>
<p>Unlike my SD-80, which sometimes messes up timing a bit and slows
down when the load is high, the SD-20 simply cut off existing notes
instantly without causing timing errors.</p>
<div>
<table style="position:relative;left:50%;transform:translate(-50%,0);text-align:center">
<tbody><tr>
<th>
SD-20
</th>
<th>
SD-20 Converter
</th>
<th>
SD-80
</th>
</tr>
<tr>
<td>
<audio controls="" preload="none" src="//filestorage.chrisoft.org/blog/data/SD-20/kog_09.sd20.ncr.ogg">
</audio>
</td>
<td>
<audio controls="" preload="none" src="//filestorage.chrisoft.org/blog/data/SD-20/kog_09.sd20c.ncr.ogg">
</audio>
</td>
<td>
<audio controls="" preload="none" src="//filestorage.chrisoft.org/blog/data/SD-20/kog_09.sd80.ncr.ogg">
</audio>
</td>
</tr>
<tr>
</tr><tr>
<td colspan="3">
“Crude” replica of Enigmatic Doll from KiohGyoku by ZUN.
</td>
</tr>
</tbody></table>
</div>
<p>Besides the obvious fact that Loose Lips is missing, pay attention to
the way the piano notes are cut short. Also note each model has its own
filter response for the synth bass.</p>
<p>Finally, a GM-ish track for comparing vanilla GM2 patches without any
tweaking. Reed Romance and SH-2 Lead from the SD special set are used in
this adaptation.</p>
<div>
<table style="position:relative;left:50%;transform:translate(-50%,0);text-align:center">
<tbody><tr>
<th>
SD-20
</th>
<th>
SD-20 Converter
</th>
<th>
SD-80
</th>
</tr>
<tr>
<td>
<audio controls="" preload="none" src="//filestorage.chrisoft.org/blog/data/SD-20/AMEDLEY.SD20.NCR.OGG">
</audio>
</td>
<td>
<audio controls="" preload="none" src="//filestorage.chrisoft.org/blog/data/SD-20/AMEDLEY.SD20C.NCR.OGG">
</audio>
</td>
<td>
<audio controls="" preload="none" src="//filestorage.chrisoft.org/blog/data/SD-20/AMEDLEY.SD80.NCR.OGG">
</audio>
</td>
</tr>
<tr>
</tr><tr>
<td colspan="3">
AMEDLEY.MID by Earl Gray Fowler from Voyetra Technologies, arranged for
SD-80 (Native Mode)
</td>
</tr>
</tbody></table>
</div>
<p>Patches in SD-80’s special set are substituted with patches in the
solo set when played with the SD-20 Converter. However hardware SD-20
doesn’t do this substitution and doesn’t produce any sound if a patch
from SD-80’s special set is selected, making the last two segments sound
like a backing track on the SD-20. The choir in the ballad segment also
has a notably shorter release on the hardware SD-20, possibly to
mitigate the impact of a reduced polyphony.</p>
<p>The SD-20 MIDI Converter is actually a reasonably good recreation of
the SD-20 sounds. That is not saying so much, as the hardware of SD-20
itself is simply not capable of recreate the StudioCanvas sounds very
well if the MIDI sequence you feed to it has any complexity to it at
all. Sometimes the output from converter is actually closer to the SD-80
than the SD-20, especially if you take parameter response curves into
consideration.</p>
<h2 id="tocanch4" class="tvis">The Editability</h2>
<p>It’s virtually nothing compared to the SD-80.</p>
<p>The official SD-20 editor can only tune GM2 parameters. The available
parameters are even fewer than the HyperCanvas (HQ-GM2) or TTS-1, mostly
because the SD-20 doesn’t expose those parameters at all. As mentioned
in my first post on the SD-80, the SD-20 editor is essentially the SD-90
editor with the audio / AFX section removed.</p>
<table>
<tbody><tr>
<td>
<div style="text-align:center;max-width:98%;">
<a href="//filestorage.chrisoft.org/blog/img/sd20_editor_main.png"><img style="width: 48%;" src="//filestorage.chrisoft.org/blog/img/ssbsthumb_600x600_sd20_editor_main.png"></a> <br>SD-20
editor. SD-90 GM2 editor on the right for comparison.
</div>
</td>
<td>
<div style="text-align:center;max-width:98%;">
<a href="//filestorage.chrisoft.org/blog/img/sd20_editor_mixer.png"><img style="width: 48%;" src="//filestorage.chrisoft.org/blog/img/ssbsthumb_600x600_sd20_editor_mixer.png"></a> <br>The mixer.
It has a very similar layout to the main page of HyperCanvas / TTS-1.
</div>
</td>
</tr>
<tr>
<td>
<div style="text-align:center;max-width:98%;">
<a href="//filestorage.chrisoft.org/blog/img/sd20_editor_synth.png"><img style="width: 48%;" src="//filestorage.chrisoft.org/blog/img/ssbsthumb_600x600_sd20_editor_synth.png"></a> <br>The
instrument editor. Only GM2 parameters are exposed.
</div>
</td>
<td>
<div style="text-align:center;max-width:98%;">
<a href="//filestorage.chrisoft.org/blog/img/sd20_editor_instp.png"><img style="width: 48%;" src="//filestorage.chrisoft.org/blog/img/ssbsthumb_600x600_sd20_editor_instp.png"></a> <br>The
instrument picker. The instrument picker of the SD-90 GM2 editor is on
the right.
</div>
</td>
</tr>
</tbody></table>
<p>The SD-80 editor doesn’t work on the SD-20. Nor does the XV-2020
(which uses the same synth engine as the SD-20) editor. This makes the
SD-20 far less editable than the SD-80. Forget about manually piecing
together presets on the SD-20 to mimic the SD-80. I don’t even know how
to change the samples used by a part on the SD-20 or is it even possible
(the MIDI implementation doesn’t mention it).</p>
<h3 id="tocanch5" class="tvis">The Quirks</h3>
<p>The address mapping used by SD-20’s DT1 system exclusive messages is
similar to that employed by GS-based Sound Canvas models. Therefore the
SD-20 is still somewhat editable, but nowhere close to the level offered
by the SD-80. GSAE (GS Advanced Editor) may work with the SD-20, but
there could be major compatibility issues.</p>
<p>The SD-20 still responds to GS NRPN messages in native and GM2 mode.
SD-90 and SD-80 doesn’t have such behavior.</p>
<p>SD-20 has a special NRPN for selecting sound sets (MSB:
<code>0x41</code> LSB: <code>0x00</code>, send set # to value MSB) in
GM2 mode. On the SD-90 and SD-80, only system exclusive messages can be
used to select sound sets in GM2 mode. The manual mentioned this
feature, however it doesn’t tell you which NRPN to use.</p>
<h2 id="tocanch6" class="tvis">The Manual</h2>
<p>This really doesn’t deserve its own paragraph, but here it is. Unless
otherwise noted, this is referring to the English manual, not the
Japanese version (which is somewhat better, but still horrible).</p>
<p>The user manual of Roland products has been criticized for being
convoluted, unclear and difficult to navigate through for a long time.
The user manual for SD-20 is on a whole new level. It’s an absolute
abomination.</p>
<p>To be fair, it’s not like one can write a lot about a product that
only have one button and one knob on the front panel. Someone in Roland
must have been forced through this …</p>
<p>Content wise, it’s an amalgamation of SD-80’s “owner’s manual” and
“quick start guide”. This make the entire thing even more confusing. You
can find traces of SD-80’s manual everywhere. Just take a look at the
huge gaps in the instrument list and drum set list. That sad drum set
table even has a missing border. There’s also the sentence that goes
something like this “you can’t edit the sounds in GS mode using the
front panel” <a id="n1" href="#note1" class="note">[1]</a>, which is copied
straight from SD-80’s manual. Well, duh … you can’t do much editing with
one button (which instantly erases all changed parameters when pressed)
and one knob in any mode!</p>
<p>Since the SD-20 can only be controlled through MIDI, there would be
plenty of information on how to operate the module using MIDI messages
in the manual, right? Here Roland took the worst move imaginable and
included ZERO information on that in the English manual, not even the
system exclusive messages to switch between sound generator modes (the
Japanese manual does include this), nor does it include a list of
parameters that can be controlled by MIDI. It’s almost like Roland
doesn’t want you to learn about the parameters it has at all, unless you
read the ultra technical MIDI implementation (which, to make it even
better, only has a download for the Japanese version left on the
official website. Screw everyone who can’t read Japanese I guess).</p>
<h2 id="tocanch7" class="tvis">The Insides</h2>
<p>I spent $100 on this thing mostly because I’m curious about its
insides. After testing it out, I don’t have any hope that there’s a
chance this thing could have an XV chip inside. Having no screwdrivers
did not hinder me even a little bit. I used the scissors in my nail care
kit to remove the only 4 screws in the bottom of the module, and one
screw holding the board. The board came out without any resistance.</p>
<div style="text-align:center;max-width:90%;">
<a href="//filestorage.chrisoft.org/blog/img/sd20_board_bottom.jpg"><img style="width: 50%;" src="//filestorage.chrisoft.org/blog/img/ssbsthumb_1536x1536_sd20_board_bottom.jpg"></a> <br>No ICs on
the bottom side of the board. The scissor used to undo the screws is
visible.
</div>
<table>
<tbody><tr>
<td>
<div style="text-align:center;max-width:98%;">
<p><a href="//filestorage.chrisoft.org/blog/img/sd20_icmap.jpg"><img style="width: 80%;" src="//filestorage.chrisoft.org/blog/img/ssbsthumb_1536x1536_sd20_icmap.jpg"></a></p>
</div>
</td>
<td>
<div>
<div>
<p><x style="display:inline-block;width:0.9em;height:0.9em;border:solid 2px #888;background-color:#ff0000;margin-right:0.5em;transform: translateY(0.2em);"></x>
<a href="//filestorage.chrisoft.org/blog/img/sd20_cpu.jpg">CPU
(SH7016)</a></p>
</div>
<div>
<p><x style="display:inline-block;width:0.9em;height:0.9em;border:solid 2px #888;background-color:#ffa000;margin-right:0.5em;transform: translateY(0.2em);"></x>
<a href="//filestorage.chrisoft.org/blog/img/sd20_io.jpg">8bit MCU, I/O
Controller</a></p>
</div>
<div>
<p><x style="display:inline-block;width:0.9em;height:0.9em;border:solid 2px #888;background-color:#fff300;margin-right:0.5em;transform: translateY(0.2em);"></x>
<a href="//filestorage.chrisoft.org/blog/img/sd20_cpu.jpg">4 Mb System
DRAM</a></p>
</div>
<div>
<p><x style="display:inline-block;width:0.9em;height:0.9em;border:solid 2px #888;background-color:#00f300;margin-right:0.5em;transform: translateY(0.2em);"></x>
<a href="//filestorage.chrisoft.org/blog/img/sd20_cpu.jpg">16 Mb
Flash</a></p>
</div>
<div>
<p><x style="display:inline-block;width:0.9em;height:0.9em;border:solid 2px #888;background-color:#00ffff;margin-right:0.5em;transform: translateY(0.2em);"></x>
<a href="//filestorage.chrisoft.org/blog/img/sd20_io.jpg">RS-232
driver</a></p>
</div>
<div>
<p><x style="display:inline-block;width:0.9em;height:0.9em;border:solid 2px #888;background-color:#00a0ff;margin-right:0.5em;transform: translateY(0.2em);"></x>
<a href="//filestorage.chrisoft.org/blog/img/sd20_xp.jpg">Synth DSP
(RA0C-003, “XP7”)</a></p>
</div>
<div>
<p><x style="display:inline-block;width:0.9em;height:0.9em;border:solid 2px #888;background-color:#00c060;margin-right:0.5em;transform: translateY(0.2em);"></x>
<a href="//filestorage.chrisoft.org/blog/img/sd20_audioio.jpg">4Mb
Effects DRAM</a></p>
</div>
<div>
<p><x style="display:inline-block;width:0.9em;height:0.9em;border:solid 2px #888;background-color:#0000ff;margin-right:0.5em;transform: translateY(0.2em);"></x>
<a href="//filestorage.chrisoft.org/blog/img/sd20_wrom.jpg">2 * 128 Mb
Wave ROM</a></p>
</div>
<div>
<p><x style="display:inline-block;width:0.9em;height:0.9em;border:solid 2px #888;background-color:#a000ff;margin-right:0.5em;transform: translateY(0.2em);"></x>
<a href="//filestorage.chrisoft.org/blog/img/sd20_audioio.jpg">Digital
Audio Modulator, S/PDIF interface</a></p>
</div>
<div>
<p><x style="display:inline-block;width:0.9em;height:0.9em;border:solid 2px #888;background-color:#ff60ff;margin-right:0.5em;transform: translateY(0.2em);"></x>
<a href="//filestorage.chrisoft.org/blog/img/sd20_audioio.jpg">DAC
(AK4382A)</a></p>
</div>
</div>
Click any IC above for a detailed shot of components around that
chip.<br>
<a href="//filestorage.chrisoft.org/blog/img/sd20_board_top.jpg">Click
here for the whole board shot without the IC markings.</a>
</td>
</tr>
</tbody></table>
<p>No, it isn’t an XV chip. It’s an XP7 (RA0C-003) chip. This chip is
also used by the bottom-of-the-barrel model in the XV line-up, the
XV-2020. This is likely the final iteration of the codename XP. The CPU
is a SH7016, same as SC-8850 and SC-D70. Other major chips include two
4Mbit EDO DRAM chips (one for CPU and one for XP7), a 16Mbit flash
memory for system and parameters, and two 128Mbit Wave ROM chips. The
part number and mask ID of the wave ROMs are different from those used
by the SD-80 (either in the service manual or my particular module),
suggesting they may contain different data.</p>
<p>This is a major let down, sort of speak. The hardware is almost as
capable as the XV-2020 (which has a larger CPU RAM and flash memory
chip, 16Mbit and 32Mbit respectively). The XP7 is even capable of using
40 types of classical JV/XP insertion effects (MFX), which is not used
at all by the SD-20. Maybe the reduced system resources prevented Roland
to squeeze the XV-level editability inside.</p>
<p>The XP7 chip runs much hotter compared to the XV chip in the SD-80.
It’s almost too hot to touch when the synthesizer load is high. The XP7
chip in the SD-20 is clock much higher than any previous XP chips
(33.868 MHz vs 24.576 MHz) to achieve the 44.1 kHz digital output, which
is probably the cause of the excessive heat. For a more detailed
technical assessment of the chip (and other Roland PCM synth chips), see
<a href="https://chrisoft.org/blog/post/2020-11-20.html#tocanch16">my
second post on SD-80</a>.</p>
<p>There are 4 unpopulated switch headers on the board. Two are DPDT
switches (SW4 and SW2), two seem to be buttons (SW3 and SW5). SW4 and
SW5 seem to be electrically connected to the peripherals of the USB
controller, SW2 and SW3 seem to be connected to the CPU. One side of SW4
seems to short the USB power. SW2 resets the unit. SW3 puts the unit
into an inoperable state (USB indicator turns off, SPIDF output shuts
down, does not respond to any key press / MIDI input). SW2 is weird. One
side of the upper pole shorts the power to ground. The same side of the
lower pole puts the unit into another inoperable state (just like frozen
in place). The other side doesn’t do anything consistent. Sometimes the
upper pole acts like a perpetual sustain pedal if engaged (no notes are
released even after letting the connection go). All of these switches
behave the same in test mode and doesn’t seem to affect boot mode
selection.</p>
<div class="collapse" data-caption="Incomplete list of integrated circuit chips in the SD-20">
<table>
<colgroup>
<col style="width: 9%">
<col style="width: 30%">
<col style="width: 59%">
</colgroup>
<thead>
<tr class="header">
<th style="text-align: center;">Label</th>
<th style="text-align: center;">Engravement</th>
<th style="text-align: center;">Description</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: center;">IC 1</td>
<td style="text-align: center;">2360 6061B JRC</td>
<td style="text-align: center;">DC to DC converter</td>
</tr>
<tr class="even">
<td style="text-align: center;">IC 2,5</td>
<td style="text-align: center;">4570 652</td>
<td style="text-align: center;">?</td>
</tr>
<tr class="odd">
<td style="text-align: center;">IC 3</td>
<td style="text-align: center;">4556A G034F JRC</td>
<td style="text-align: center;">OpAmp</td>
</tr>
<tr class="even">
<td style="text-align: center;">IC 4</td>
<td style="text-align: center;">AKM 4382AT 4N647</td>
<td style="text-align: center;">DAC</td>
</tr>
<tr class="odd">
<td style="text-align: center;">IC 6</td>
<td style="text-align: center;">ROHM BP5220A 0707S</td>
<td style="text-align: center;">Regulator</td>
</tr>
<tr class="even">
<td style="text-align: center;">IC 7</td>
<td style="text-align: center;">PC401L SOK V2</td>
<td style="text-align: center;">Optocoupler</td>
</tr>
<tr class="odd">
<td style="text-align: center;">IC 8,18,12,15</td>
<td style="text-align: center;">VHC 245 G43</td>
<td style="text-align: center;">74xx245 Transceiver / Buffer</td>
</tr>
<tr class="even">
<td style="text-align: center;">IC 9</td>
<td style="text-align: center;">E 6</td>
<td style="text-align: center;">?</td>
</tr>
<tr class="odd">
<td style="text-align: center;">IC 10,13</td>
<td style="text-align: center;">0634H LVX4245 404495</td>
<td style="text-align: center;">74xx245 Transceiver / Buffer</td>
</tr>
<tr class="even">
<td style="text-align: center;">IC 11</td>
<td style="text-align: center;">Roland R03017389 HD6437016E29FV 6J1</td>
<td style="text-align: center;">CPU (SH7016), SH2</td>
</tr>
<tr class="odd">
<td style="text-align: center;">IC 14</td>
<td style="text-align: center;">E ? (covered)</td>
<td style="text-align: center;">?</td>
</tr>
<tr class="even">
<td style="text-align: center;">IC 16</td>
<td style="text-align: center;">H 4</td>
<td style="text-align: center;">?</td>
</tr>
<tr class="odd">
<td style="text-align: center;">IC 17,25</td>
<td style="text-align: center;">7WU04F 6X</td>
<td style="text-align: center;">74xx04 Inverter</td>
</tr>
<tr class="even">
<td style="text-align: center;">IC 19</td>
<td style="text-align: center;">0625H VHC04 301303</td>
<td style="text-align: center;">74xx04 Inverter</td>
</tr>
<tr class="odd">
<td style="text-align: center;">IC 20</td>
<td style="text-align: center;">953B 69B</td>
<td style="text-align: center;">?</td>
</tr>
<tr class="even">
<td style="text-align: center;">IC 21</td>
<td style="text-align: center;">2933 G2 5L</td>
<td style="text-align: center;">?</td>
</tr>
<tr class="odd">
<td style="text-align: center;">IC 22</td>
<td style="text-align: center;">0626H TC9271FSG</td>
<td style="text-align: center;">Digital Audio Modulator</td>
</tr>
<tr class="even">
<td style="text-align: center;">IC 23</td>
<td style="text-align: center;">7W14F 6W</td>
<td style="text-align: center;">74xx14 Schmitt-Trigger Inverter</td>
</tr>
<tr class="odd">
<td style="text-align: center;">IC 24</td>
<td style="text-align: center;">Roland R02677490 RA0C-003 JAPAN 0645EGI
B0106ZAC</td>
<td style="text-align: center;">ASIC DSP, “XP7” Synth Engine</td>
</tr>
<tr class="even">
<td style="text-align: center;">IC 26</td>
<td style="text-align: center;">Roland R03010612 23C128BL832J
0620K7002</td>
<td style="text-align: center;">128 Mbit Mask ROM, Wave ROM</td>
</tr>
<tr class="odd">
<td style="text-align: center;">IC 27</td>
<td style="text-align: center;">Roland R03010623 23C128BL833K
0620K7005</td>
<td style="text-align: center;">128 Mbit Mask ROM, Wave ROM</td>
</tr>
<tr class="even">
<td style="text-align: center;">IC 28</td>
<td style="text-align: center;">VHC T245A F5 51</td>
<td style="text-align: center;">74xx245 Transceiver / Buffer</td>
</tr>
<tr class="odd">
<td style="text-align: center;">IC 29</td>
<td style="text-align: center;">EliteMT M11L416256SA- 35T SZV2C51GR
0627</td>
<td style="text-align: center;">EDO DRAM 4 Mbit, XP Effects RAM</td>
</tr>
<tr class="even">
<td style="text-align: center;">IC 30</td>
<td style="text-align: center;">LH28F160BJE-BTL80 SHARP JAPAN 0631 5
XN</td>
<td style="text-align: center;">Flash Memory, 16 Mbit, System /
Parameters</td>
</tr>
<tr class="odd">
<td style="text-align: center;">IC 31</td>
<td style="text-align: center;">ti 71CN1RKG4 75C1168</td>
<td style="text-align: center;">RS-232 driver</td>
</tr>
<tr class="even">
<td style="text-align: center;">IC 32</td>
<td style="text-align: center;">EliteMT M11L416256SA- 35T SZV2C51GR
0627</td>
<td style="text-align: center;">EDO DRAM 4 Mbit, System RAM</td>
</tr>
<tr class="odd">
<td style="text-align: center;">IC 33</td>
<td style="text-align: center;">Roland R03011089 138 620B100</td>
<td style="text-align: center;">USB Controller, 8-bit MCU</td>
</tr>
<tr class="even">
<td style="text-align: center;">IC 34</td>
<td style="text-align: center;">2008 680</td>
<td style="text-align: center;">?</td>
</tr>
<tr class="odd">
<td style="text-align: center;">IC 35</td>
<td style="text-align: center;">7W04F 6V</td>
<td style="text-align: center;">74xx04 Inverter</td>
</tr>
<tr class="even">
<td style="text-align: center;">IC 36</td>
<td style="text-align: center;">E 1</td>
<td style="text-align: center;">?</td>
</tr>
<tr class="odd">
<td style="text-align: center;">IC 37</td>
<td style="text-align: center;">7W139F 61</td>
<td style="text-align: center;">74xx139 Decoder</td>
</tr>
</tbody>
</table>
</div>
<h2 id="tocanch8" class="tvis">The Secrets</h2>
<p>It seems dead easy to enter the secret test mode on the SD-20 –
there’s only one button. Hold the button and turn the power on, the USB
indicator will light up. This is the boot mode selection prompt. Release
the button. Now you have around 4 seconds to do one of the
following:</p>
<ul>
<li>Pressing the button twice. The unit will boot into test mode.</li>
<li>Pressing the button three times. The unit will boot into an unknown
mode (likely firmware update).</li>
</ul>
<p>If your action matches none of these, the unit will boot into normal
mode.</p>
<p>This section will employ the following notation for the status of the
indicator LEDs.</p>
<pre><code> PWR USB OUTPUT o o o o
o o MODE o o o o
GM2 G X
S G
o=on
-=off
*=faint</code></pre>
<h3 id="tocanch9" class="tvis">Test mode</h3>
<p>The test mode is far less interesting than that of the SD-80 because
I don’t necessarily understand what does every indicators pattern
mean.</p>
<div class="collapse" data-caption="SD-20 Tests">
<pre><code> test 1 (some sort of version?)
PWR USB OUTPUT - - - o
o - MODE - - - o
Mode key pressed = next
test 2 (some other sort of version? self test? serial port test? midi test?)
PWR USB OUTPUT - - - o
o o MODE - - o o
Mode key pressed = next
test 3 (same as 2)
PWR USB OUTPUT - - - o
- o MODE - - - -
Mode key pressed = power LED flashes once, enters next test
test 4 (LED test)
LEDs lights up in sequence, one by one:
output 1, 2, 3, 4, mode 1, 2, 3, 4 (GM2 L, GM2 R, GS, XG),
all lights off, power, usb
Mode key pressed = next
test 5a (Sound test 1)
PWR USB OUTPUT - o o -
o - MODE - - o -
Resets synthesizer to native mode.
MIDI Channel 1 is set to play a sine waveform.
Plays sine wave on both channels.
Mode key pressed = next
test 5b (Sound test 2)
PWR USB OUTPUT o - - -
o - MODE - - o -
Plays sine wave on left channel.
Mode key pressed = next
test 5c (Sound test 3)
PWR USB OUTPUT - - - o
o - MODE - - o -
Plays sine wave on right channel.
Mode key pressed = next
test 5d (Effects test)
PWR USB OUTPUT o o o o
o - MODE - - - o
Resets synthesizer to native mode.
MIDI Channel 1 is set to play a melodic tom sound.
Plays a tom sound with loud reverb periodically.
Mode key pressed = next
test 6 (probably hardware check)
PWR USB OUTPUT - - o -
o - MODE - - - -
Synthesizer resets again.
The module no longer respond to any key presses from this point.</code></pre>
</div>
<h3 id="tocanch10" class="tvis">unknown (likely firmware
update) mode</h3>
<pre><code> PWR USB OUTPUT o o o o
o - MODE o o o *
Doesn't respond to any key presses. (long, short, multiple presses)
Shows up as a USB device with normal ID (0582:0027).
Does not function as synthesizer.</code></pre>
<h2 id="tocanch11" class="tvis">The Conclusion</h2>
<p>For a low, low price of $300 in 2002, you get 3 set of mediocre (with
a few exceptions) GM2 patches. The sounds themselves are reasonably new
and refreshing back then, but the higher average voice-per-note of the
new StudioCanvas sounds make the SD-20 a less desirable choice than
previous 64-polyphony models. The lack of advanced editing of any sort
removes all possibility to explore custom sound design with the module.
It’s a cheaply built unit that Roland asked for too much. Even for a
Touhou music fanatic today, there are much cheaper ways to get access to
the most sought-after instruments.</p>
<h2 id="tocanch12" class="tvis">The … Death?</h2>
<p>My SD-20 is in temporary coma right now, as it’s receiving a brain
surgery …</p>
<p>I will give updates in a separate post when it’s complete.</p>
<table>
<tbody><tr>
<td>
<div style="text-align:center;max-width:98%;">
<a href="//filestorage.chrisoft.org/blog/img/sd20_wromds.jpg"><img style="width: 48%;" src="//filestorage.chrisoft.org/blog/img/ssbsthumb_1536x1536_sd20_wromds.jpg"></a> <br>I don’t know
what I’m doing …
</div>
</td>
<td>
<div style="text-align:center;max-width:98%;">
<a href="//filestorage.chrisoft.org/blog/img/sd20_wromdmp.jpg"><img style="width: 48%;" src="//filestorage.chrisoft.org/blog/img/ssbsthumb_1536x1536_sd20_wromdmp.jpg"></a> <br>… or do I?
</div>
</td>
</tr>
</tbody></table>
</article>
</div><br><hr>
<div class="TText" id="notediv" style="font-size:80%;"><span class="TText"><a id="note1" href="#n1">[1]</a>: Had to paraphrase this, because Roland prohibits
reproducing contents from their manuals…<br></span></div>
<div id="insanch" style="height:3em;"></div>
<div id="footer" style="">
<div id="pagesw" class="TText" style="width:100%;height:0.5em;"></div>
<div style="text-align:center;" class="TText">
Proudly powered by SSBS <reduced style="font-size:70%;">(the static stupid blogging system)</reduced> 2.5
<br>
Content licensed under CC BY-SA 4.0. <span id="purgep" style="display:none;font-size:70%;">This page has passphrase(s) stored. Click <a href="javascript:_purgep()">here</a> to purge.</span>
</div>
</div>
<div id="cmdbuf" class="TText" style="transition:500ms;padding:1em;font-size:2em;color:white;position:absolute;background-color:rgba(0,0,0,0.6);left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none;opacity:0;">
</div>
</div>
<div id="decryptui" style="display:none;opacity:0;color:white;z-index:1000;position:fixed;left:0;top:0;width:100%;height:100%;background-color:rgba(0,0,0,0.4);transition:opacity 0.5s;">
<div id="decryptdlg" class="TText" style="padding:10px 20px;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background-color:rgba(0,0,0,0.6);">
<div id="keyhint" style="margin-bottom:8px;"></div>
<div style="margin-bottom:8px;">Key: <input id="keyinp" type="text" style="color:#fff;"></div>
<div style="height:2.25em;">
<button id="btndecrypt" onclick="decryptor(decid,document.getElementById('keyinp').value);" style="position:absolute;left:20px;">Decrypt</button>
<button onclick="hidedecryptui();" style="position:absolute;right:20px;">Cancel</button>
</div>
</div>
</div></body></html>
|