summaryrefslogtreecommitdiff
path: root/blog/post/2021-10-10.html
blob: 9b31d8cd69eede15a368009aeb92594befcfbaf6 (plain) (blame)
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
<!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</title>
<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="Privacy.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.&nbsp;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>