summaryrefslogtreecommitdiff
path: root/blog/post/2021-10-10.html
diff options
context:
space:
mode:
Diffstat (limited to 'blog/post/2021-10-10.html')
-rw-r--r--blog/post/2021-10-10.html972
1 files changed, 972 insertions, 0 deletions
diff --git a/blog/post/2021-10-10.html b/blog/post/2021-10-10.html
new file mode 100644
index 0000000..f18b75a
--- /dev/null
+++ b/blog/post/2021-10-10.html
@@ -0,0 +1,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">
+<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.&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> \ No newline at end of file