<!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">
<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>