diff options
Diffstat (limited to 'blog/post/2021-10-10.html')
-rw-r--r-- | blog/post/2021-10-10.html | 972 |
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. 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 |