diff options
Diffstat (limited to 'blog/post/2020-11-20.html')
-rw-r--r-- | blog/post/2020-11-20.html | 2522 |
1 files changed, 0 insertions, 2522 deletions
diff --git a/blog/post/2020-11-20.html b/blog/post/2020-11-20.html deleted file mode 100644 index 938ebf5..0000000 --- a/blog/post/2020-11-20.html +++ /dev/null @@ -1,2522 +0,0 @@ -<!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-80: The Adventure Continues")</title> -<meta name="description" content="«EDIROL SD-80: The Adventure Continues» 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-80: The Adventure Continues</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">“Official” Service Manual</a></li><li><a class="toctarg" href="#tocanch1">USB-PD Mod</a></li><li><ul class="tocnode"><li><a class="toctarg" href="#tocanch2">(Accidentally) Circuit bent -SD-80</a></li></ul></li><li><a class="toctarg" href="#tocanch3">Recording Setup Update Part -1</a></li><li><a class="toctarg" href="#tocanch4">Recording Setup Update Part -2</a></li><li><a class="toctarg" href="#tocanch5">Recording Setup Update Part -3, 4, 5…</a></li><li><a class="toctarg" href="#tocanch6">Rompler Preservation</a></li><li><ul class="tocnode"><li><a class="toctarg" href="#tocanch7">Emulation</a></li><li><a class="toctarg" href="#tocanch8">Sampling the Rompler</a></li><li><a class="toctarg" href="#tocanch9">Dumping and Deciphering</a></li><li><ul class="tocnode"><li><a class="toctarg" href="#tocanch10">Extra rambling about the ROM -chip</a></li></ul></li><li><a class="toctarg" href="#tocanch11">SD-20 MIDI File Converter</a></li><li><ul class="tocnode"><li><a class="toctarg" href="#tocanch12">FrankenTTS-1</a></li><li><a class="toctarg" href="#tocanch13">Other observations</a></li><li><a class="toctarg" href="#tocanch14">So… is this it?</a></li></ul></li><li><a class="toctarg" href="#tocanch15">Roland Cloud</a></li></ul></li><li><a class="toctarg" href="#tocanch16">A -History lesson from someone who barely knows anything about it</a></li><li><ul class="tocnode"><li><a class="toctarg" href="#tocanch17">LA</a></li><li><a class="toctarg" href="#tocanch18">(Unnamed synth engine in -U-110)</a></li><li><a class="toctarg" href="#tocanch19">EP</a></li><li><a class="toctarg" href="#tocanch20">GP</a></li><li><a class="toctarg" href="#tocanch21">XP</a></li><li><ul class="tocnode"><li><a class="toctarg" href="#tocanch22">Original XP</a></li><li><a class="toctarg" href="#tocanch23">XP2</a></li><li><a class="toctarg" href="#tocanch24">XP3</a></li><li><a class="toctarg" href="#tocanch25">XP6</a></li><li><a class="toctarg" href="#tocanch26">XP7</a></li></ul></li><li><a class="toctarg" href="#tocanch27">XV</a></li><li><a class="toctarg" href="#tocanch28">WX</a></li><li><a class="toctarg" href="#tocanch29">Beyond WX</a></li></ul></li><li><a class="toctarg" href="#tocanch30">Role played by the -CPU in sound generation</a></li><li><a class="toctarg" href="#tocanch31">Other Curious Stuff</a></li><li><ul class="tocnode"><li><a class="toctarg" href="#tocanch32">SD-80 is an XV-5080 …</a></li><li><ul class="tocnode"><li><a class="toctarg" href="#tocanch33">SD-80’s sound content</a></li></ul></li><li><a class="toctarg" href="#tocanch34">More on SD-80 vs SD-90 vs -SD-20</a></li><li><ul class="tocnode"><li><a class="toctarg" href="#tocanch35">What does a SD-90 have -that SD-80 doesn’t?</a></li><li><a class="toctarg" href="#tocanch36">What does a SD-80 have -that SD-90 doesn’t?</a></li><li><a class="toctarg" href="#tocanch37">What’s the SD-20 anyway?</a></li><li><a class="toctarg" href="#tocanch38">What role does MFX play?</a></li></ul></li><li><a class="toctarg" href="#tocanch39">Light Load vs -High Load</a></li><li><a class="toctarg" href="#tocanch40">Block Diagram</a></li><li><a class="toctarg" href="#tocanch41">Other weird and interesting -stuff</a></li></ul></li><li><a class="toctarg" href="#tocanch42">Errata of the original post</a></li><li><a class="toctarg" href="#tocanch43">References</a></li></ul> - </li> - <li style="margin-left:-0.5em"><a id="prevp" href="2019-09-04.html">Prev post</a></li> - <li style="margin-left:-0.5em"><a id="nextp" href="2021-06-03.html">Next post</a></li> - </ul> - </div> - <div id="content"> - <h2 id="titleh" class="TText" style="font-wight:normal;">EDIROL SD-80: The Adventure Continues</h2> - <div id="datetags" class="TText" style="margin-bottom:1em;">2020-11-20<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>This the follow up article of my first post on the SD-80. View it <a href="https://chrisoft.org/blog/post/2019-04-25.html">here</a>.</p> -<p>It’s been <del>one year and a half</del> -<del style="text-decoration-style: double">two years</del> three years -since I got my SD-80. A lot of stuff happened (including the great -pandemic of COVID-19 and my escape from Wuhan). I’ve also discovered a -lot more about the SD-80. Instead of updating the original post (which -is already excessively long), I decided to start a new post instead.</p> -<p>The actual publish date of this post is 2022-06-30 <del>because I -have crippling procrastination</del>.</p> -<p>My special thanks go to:</p> -<ul> -<li>Kalas, who contacted me for my original SD-80 post, without whom -half of this article wouldn’t even exist.</li> -<li>Discord user KR.Palto#7592, who also has a <a href="https://www.youtube.com/c/KRPalto47_th_MIDI">YouTube channel</a>, -for providing plenty of useful information and PCB shots of various -Roland synth modules.</li> -</ul> -<p>I’ve been procrastinating the release of this post for too long -(almost 2 years by now). For this reason, the information I had on these -modules may have updated half-way through the writing of this post. -Therefore this post may contain self-contradicting statements. I’ll try -to clear up any confusing parts. Feel free to reach to me if you find -any, or just for any thoughts you have on this post. I would encourage -anyone reading this post to get in touch with me if you have anything to -discuss or find a mistake in this post. Every message will be greatly -apprecitated. You can find ways to contact me in the “about” section of -the home page.</p> -<h2 id="tocanch0" class="tvis">“Official” Service Manual</h2> -<p>The site where I got my other service manuals for Roland synths (none -of which I really own) has been updated with a service manual for SD-80. -I got one copy immediately once I knew about this (Special thanks go to -Kalas for letting me know).</p> -<p>Most of the service manual goes as expected: the general format, most -chips (I correctly identified all chips that has Roland marking on them -somehow), the block diagram and testing mode. There’s really not that -much information in this manual that is new to me. The schematics are -extremely useful for modding and repairing though.</p> -<div class="collapse" data-caption="Updated list of integrated circuit chips on SD-80 main board"> -<table> -<colgroup> -<col style="width: 8%"> -<col style="width: 18%"> -<col style="width: 21%"> -<col style="width: 51%"> -</colgroup> -<thead> -<tr class="header"> -<th style="text-align: center;">Label</th> -<th style="text-align: center;">Engravement</th> -<th style="text-align: center;">Model</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;">62292 361</td> -<td style="text-align: center;">M62292FP-D60J</td> -<td style="text-align: center;">Regulator</td> -</tr> -<tr class="even"> -<td style="text-align: center;">IC 2</td> -<td style="text-align: center;">6417706 SH3 BC13008 133 0413</td> -<td style="text-align: center;">HD6417706</td> -<td style="text-align: center;">SH3 CPU</td> -</tr> -<tr class="odd"> -<td style="text-align: center;">IC 3</td> -<td style="text-align: center;">LH28F 160BJE-BTL80 SHARP JAPAN 0428 -7xN</td> -<td style="text-align: center;">LH28F 160BJE-BTL80</td> -<td style="text-align: center;">16Mbit Flash Memory</td> -</tr> -<tr class="even"> -<td style="text-align: center;">IC 4, IC 6</td> -<td style="text-align: center;">SANYO LC381616IET-70 KZA7G0CD1 0042</td> -<td style="text-align: center;">SDRAM LC3816161ET-70-TLM</td> -<td style="text-align: center;">16Mbit SDRAM (System RAM)</td> -</tr> -<tr class="odd"> -<td style="text-align: center;">IC 5, IC 37</td> -<td style="text-align: center;">‘H5’ or ‘115’ (illegible)</td> -<td style="text-align: center;">TC7SH04FU</td> -<td style="text-align: center;">Inverter</td> -</tr> -<tr class="even"> -<td style="text-align: center;">IC 7</td> -<td style="text-align: center;">4D46 LV 00A</td> -<td style="text-align: center;">HD74LV00A</td> -<td style="text-align: center;">NAND Gate</td> -</tr> -<tr class="odd"> -<td style="text-align: center;">IC 8, IC 20, IC 22~25</td> -<td style="text-align: center;">4C1Y LV 245A</td> -<td style="text-align: center;">HD74LV245A</td> -<td style="text-align: center;">8-bit Transceiver</td> -</tr> -<tr class="even"> -<td style="text-align: center;">IC 9, IC 11</td> -<td style="text-align: center;">F P42AB VT245A</td> -<td style="text-align: center;">74VHCT245A</td> -<td style="text-align: center;">8-bit Transceiver</td> -</tr> -<tr class="odd"> -<td style="text-align: center;">IC 10, IC 12</td> -<td style="text-align: center;">0431H LVXC3245</td> -<td style="text-align: center;">TC74LVXC3245FS</td> -<td style="text-align: center;">Configurable 8-bit Transceiver</td> -</tr> -<tr class="even"> -<td style="text-align: center;">IC 13</td> -<td style="text-align: center;">VHC T139A 4 23</td> -<td style="text-align: center;">TC74VHCT139AFT</td> -<td style="text-align: center;">Dual 2/4 Decoder</td> -</tr> -<tr class="odd"> -<td style="text-align: center;">IC 14</td> -<td style="text-align: center;">‘H12’ or ‘H2’ (illegible)</td> -<td style="text-align: center;">TC7SH08FU</td> -<td style="text-align: center;">AND Gate</td> -</tr> -<tr class="even"> -<td style="text-align: center;">IC 15</td> -<td style="text-align: center;">4D36 LV 04A</td> -<td style="text-align: center;">HD74LV04A</td> -<td style="text-align: center;">Hex Inverter</td> -</tr> -<tr class="odd"> -<td style="text-align: center;">IC 16</td> -<td style="text-align: center;">4D16 LV 14A</td> -<td style="text-align: center;">HD74LV14A</td> -<td style="text-align: center;">Hex Schmitt-Trigger Inverter</td> -</tr> -<tr class="even"> -<td style="text-align: center;">IC 17</td> -<td style="text-align: center;">Roland R02902867 137 352B100</td> -<td style="text-align: center;">M37641M8-137FP</td> -<td style="text-align: center;">7641 8-bit microcontroller, MIDI/USB -interface</td> -</tr> -<tr class="odd"> -<td style="text-align: center;">IC 18</td> -<td style="text-align: center;">VH3 139 4 24</td> -<td style="text-align: center;">TC74VHC139FT</td> -<td style="text-align: center;">Dual 2/4 Decoder</td> -</tr> -<tr class="even"> -<td style="text-align: center;">IC 19, IC 27</td> -<td style="text-align: center;">Roland R01455956 RA08-503 JAPAN 0330EAI -F0032ZAC</td> -<td style="text-align: center;">TC223C660CF-503</td> -<td style="text-align: center;">Tone Generator + Effects Processor with -integrated LCD & Input Controller</td> -</tr> -<tr class="odd"> -<td style="text-align: center;">IC 21</td> -<td style="text-align: center;">7WU04 4.F</td> -<td style="text-align: center;">TC7WU04FU</td> -<td style="text-align: center;">Inverter</td> -</tr> -<tr class="even"> -<td style="text-align: center;">IC 26, IC 30</td> -<td style="text-align: center;">HYUNDAI GM71C18163CJ6 0040 AG1 -KOREA</td> -<td style="text-align: center;">GM71C18163CJ-6</td> -<td style="text-align: center;">16Mbit EDO DRAM (XV RAM / Effects delay -line)</td> -</tr> -<tr class="odd"> -<td style="text-align: center;">IC 28</td> -<td style="text-align: center;">Roland R02678601 23C128L-529J -0224E7007</td> -<td style="text-align: center;">UPD23C128040ALGY-***-MJH</td> -<td style="text-align: center;">128Mbit Mask ROM (Wave ROM)</td> -</tr> -<tr class="even"> -<td style="text-align: center;">IC 29</td> -<td style="text-align: center;">Roland R02678612 23C128L-535K -0222E7005</td> -<td style="text-align: center;">UPD23C128040ALGY-***-MKH</td> -<td style="text-align: center;">128Mbit Mask ROM (Wave ROM)</td> -</tr> -<tr class="odd"> -<td style="text-align: center;">IC 31, IC 35</td> -<td style="text-align: center;">4570 431</td> -<td style="text-align: center;">UPC4570G2</td> -<td style="text-align: center;">Operational Amplifiers</td> -</tr> -<tr class="even"> -<td style="text-align: center;">IC 32, IC 34</td> -<td style="text-align: center;">PCM1716E 27ZDHFM</td> -<td style="text-align: center;">PCM1716E</td> -<td style="text-align: center;">DAC</td> -</tr> -<tr class="odd"> -<td style="text-align: center;">IC 33</td> -<td style="text-align: center;">04 16H TC9271FS</td> -<td style="text-align: center;">TC9271FS</td> -<td style="text-align: center;">Digital Audio Modulator/Transmitter</td> -</tr> -<tr class="even"> -<td style="text-align: center;">IC 36</td> -<td style="text-align: center;">A E</td> -<td style="text-align: center;">TA78L05F</td> -<td style="text-align: center;">Regulator</td> -</tr> -</tbody> -</table> -<p>The CPU is in clock mode 1 (MD2=MD1=0, MD0=1). Input clock is 12MHz -from the 8-bit 7641 controller. Actual clock of the SH-3 CPU depends on -the value of its FRQCR register. However, the only possible values of -the internal clock speed is either 48MHz or 96MHz (refer to the -datasheet of SH7706 for details) <a id="n1" href="#note1" class="note">[1]</a>. Either way, the CPU is downclocked by quite a -large margin.</p> -<p>The tone generator RA08-503 “XV” is an ASIC manufactured by Toshiba -on a 300nm process (type TC223C).</p> -</div> -<h2 id="tocanch1" class="tvis">USB-PD Mod</h2> -<p>WARNING: I’m a computer scientist (in its loosest sense), not an -electrical engineer. Do not take any part of this section as advice. If -you fried your equipment (I did!!) following this as an instruction, -don’t blame it on me.</p> -<p>The 220V to 110V converter brick I have to carry around has been -bugging me since the very first day I got my SD-80. Because the unit -only consumes around 10 watts of power, I’ve always been dreaming of -alternative ways to power it. When I first cracked my module open, I -measured the power rails going out from the power supply unit: there is -a ±15V pair, plus a +5V rail.</p> -<p>My top candidate was a solution based around USB-PD. I’ve seen people -modding their ThinkPads to charge through USB Type-C on r/ThinkPad, so I -thought that module plus some DC-DC converter circuitry will do the job. -I also had a fallback plan, which is basically to use any switching mode -power supply that accepts universal voltage has two output rails (one -positive and one negative), and stick some additional regulator -circuitry to generate the 5V output.</p> -<p>The USB-PD trigger module is actually very easy to come by nowadays, -especially for someone in China. While others struggles to find these -weird stuff on ebay and aliexpress, we just source them straight from -taobao (which is essentially aliexpress for domestic users). There are -even ready-to-use multi-rail voltage converter modules out there (they -are either based around LM337/LM317, or TPS543x). Finally I picked the -(seemingly) most popular PD trigger module people use to mod laptops -from YZXstudio, and an adjustable voltage converter module based around -TPS5430. The pictures below are from their sellers.</p> -<table> -<tbody><tr> -<td> -<div style="text-align:center;max-width:98%;"> -<a href="//filestorage.chrisoft.org/blog/img/sdp2_pdtrigerboard.jpg"><img style="width: 50%;" src="//filestorage.chrisoft.org/blog/img/ssbsthumb_600x600_sdp2_pdtrigerboard.jpg"></a> <br>USB-PD -trigger board -</div> -</td> -<td> -<div style="text-align:center;max-width:98%;"> -<a href="//filestorage.chrisoft.org/blog/img/sdp2_vrm.jpg"><img style="width: 50%;" src="//filestorage.chrisoft.org/blog/img/ssbsthumb_600x600_sdp2_vrm.jpg"></a> <br>Adjustable VRM -Module -</div> -</td> -</tr> -</tbody></table> -<p>I also bought some basic tools for soldering (Chinese knock-off of -Quick 936A, lead-based solder and solder wick – I was too dumb to -remember purchasing any flux) to make sure I can do the modding in my -dorm.</p> -<p>I waited a few days for all packages to arrive. After that I tested -every component I need and they worked just fine. It’s time to pull the -trigger. I started with desoldering the AC input socket. That went -decently smoothly. My confidence started to build up and proceeded to -desolder the original SMPS module, which is a rectangular daughter board -that has quite a few pins soldered on both sides of the board. Things -went horribly wrong (particularly because I didn’t have any flux and the -original lead-free solder refused to flow or blend with my leaded -solder) and I started ripping tracks off the base board. Finally I -decided it was an impossible task for me to desolder it without -completely destroying both boards, so I simply drilled the pins out of -the board. While the base board wasn’t totally destroyed, it was pretty -close. I soldered wires directly to the components on the base board -(because tracks on the other end have been ripped off). At this time my -soldering job was just totally awful because I was pissed and it was -super late into the night. Anyway, when I finally piecing everything -together, it somehow worked.</p> -<p>Next it was time to put everything back into place. I had the idea of -designing a 3d-printed holder for the USB Type-C extension cable that -fills the hole for the original AC socket, however I couldn’t even -afford a proper 2d-printing setup, let alone a 3d one. So I have to -scrap that idea for now. None of the screw holes on the converter board -can fit the holes on the chassis, so I just taped the module down. It -was a complete mess inside my SD-80 now, but at least everything still -worked (until a couple minutes later). I did mention that I had the wish -to make custom acrylic chassis for my SD-80 some day in the future, -hopefully I can get this mess fixed by then.</p> -<div style="text-align:center;max-width:90%;"> -<a href="//filestorage.chrisoft.org/blog/img/sdp2_pdmodded.jpg"><img style="width: 50%;" src="//filestorage.chrisoft.org/blog/img/ssbsthumb_1536x1536_sdp2_pdmodded.jpg"></a> <br>The USB-PD -modded SD-80 -</div> -<h3 id="tocanch2" class="tvis">(Accidentally) Circuit bent -SD-80</h3> -<p>I started messing around and decided to try to run the SD-80 without -the ±15V rail. Everything except the front panel phones output and -output 1 on the back panel worked just fine. This is not very surprising -– all chips on the main board only takes <= 5V, and it makes sense to -derivate all those voltages from the 5V rail. After a quick look at the -service notes, I found that the ±15V rail is only used by the OpAmps in -the final output stage of output 1, which is on the volume board.</p> -<p>And then something extremely stupid happened. Any proper electrical -engineer will cringe hard. At this point I was getting cocky, and -started randomly probing around with my multimeter on the volume board. -I “accidentally” shorted the first two pins of the connector going from -the main board into the volume board (pin 1 and pin 2 on CN7 of volume -board). The output from the headphone jack immediately turns into -complete garbage (severe distortions on low frequencies). The OpAmps -chip on the volume board started getting ridiculously hot… crap! I still -managed to fry something for an otherwise “perfect” modding project!</p> -<p>Of course this is undesirable. So I had to find a fix to this.</p> -<p>Fortunately, nothing on the main board seemed to be hurt. I can just -bypass the volume control and get the correct output on output 1 using -some jumper wires. So the fault is contained in the volume board. I’ve -basically sent -15V straight into the base of two transistors, but -measuring those transistors didn’t reveal anything wrong with them. So I -had to assume I have fried the amp chip (NJM4565). I got a few -replacements (NJM4580, compatible spec-wise) from taobao, and replaced -the “faulty” NJM4565 (still without using flux). But the audio output is -still messed up and the opamp chip still gets very hot after the -replacement. I decided to give up for now, and look into the thing -later. Meanwhile I just tucked some of the wires from CN6 into CN7 so -that I can still get analog output from output 1 on the back panel.</p> -<table> -<tbody><tr> -<td> -<div style="text-align:center;max-width:98%;"> -<a href="//filestorage.chrisoft.org/blog/img/sdp2_volbrd_fixattempt.jpg"><img style="width: 33%;" src="//filestorage.chrisoft.org/blog/img/ssbsthumb_1536x1536_sdp2_volbrd_fixattempt.jpg"></a> <br>My -terrible SMD soldering -</div> -</td> -<td> -<div style="text-align:center;max-width:98%;"> -<a href="//filestorage.chrisoft.org/blog/img/sdp2_bypass.jpg"><img style="width: 33%;" src="//filestorage.chrisoft.org/blog/img/ssbsthumb_1536x1536_sdp2_bypass.jpg"></a> <br>Recombined plug -for volume board bypass -</div> -</td> -</tr> -</tbody></table> -<div style="text-align:center;max-width:90%;"> -<br> -</div> -<h2 id="tocanch3" class="tvis">Recording Setup Update Part -1</h2> -<p>Since I have always wanted to record my SD-80 through a digital link -(even before frying the analog output), I have been keeping an eye on -cheap digital recording solutions. Modern professional audio interfaces -never come with digital input on budget models. Among the older -interfaces, UA-25(EX) from Roland (EDIROL / Cakewalk) seems to be a -reasonable choice. There are also a bunch of different models from -various brands of the same era that have digital inputs. However these -models are virtually impossible to get in China. Then some cheapo -consumer grade stuff caught my attention – several relatively nameless -brands have “sound cards” for home theater uses that have digital I/O. -Those are priced at roughly 200~300 Chinese yuan. Among those I found a -more widely recognized brand called Terratec. They have PCI-e and USB -sound cards that comes with digital I/O and are available for purchase -in China. Price are on the higher end (300+ CNY), however still way -cheaper than the cheapest professional audio interface that doesn’t have -digital I/O (those start from ~800 CNY). Plus these models seem to have -a reasonable Linux user base, so I got their Aureon 7.1 USB.</p> -<p>This thing feels extremely cheap on first sight, weights close to -nothing, and is made entirely out of plastic. It comes with an extremely -thin S/PDIF fiber optical cable which looks so fragile that a single -touch may break it. It does work out of the box. ALSA recognizes it as -“Aureon 7.1 USB” without further clue about the chip it uses, however -the Windows driver is more telling. Its control panel associates the -chip with a Taiwanese company called Cmedia, and the kernel driver is -named <code>cm106.sys</code>. Upon further investigation this thing is -likely to be based on their CM106 chip (which is an ancient solution -from 2003), or its pin-compatible successor CM6206. I don’t have -interest in disassembling it right now (update: confirmed by a teardown -later. It’s indeed based around the CM6206), but either way it’s a cheap -consumer grade solution.</p> -<p>SD-80’s digital output is fixed at 44100 Hz sample rate. So the sound -card must also record at 44100 Hz to make a correct recording (unless it -has internal resampling). This is easily doable under Windows (just -select the appropriate sampling rate in the device properties dialog). -It’s also reasonably easy with Jack, where you can just start the server -on that specific device with the correct sampling rate. But this is not -that easy to achieve for pulseaudio. By default, recent versions of -pulseaudio auto detects cards with the <code>module-udev-detect</code> -module, which doesn’t allow setting a different sample rate for a single -sound card. Setting <code>alternate-sample-rate</code> doesn’t work -either because this card supports digital signals at 48000Hz which in my -case is the value for <code>default-sample-rate</code>, and therefore -would not fallback to <code>alternate-sample-rate</code>. I had to write -a small function to fix this:</p> -<pre><code>spdif_samplerate() -{ - pacmd unload-module `pacmd list-modules | grep -B 2 Aureon_7 | awk '/index:/ {print $2}'` - pacmd load-module module-alsa-card device_id=`awk '/Aureon 7\.1 USB$/{print $1}' /proc/asound/cards` name="usb-0ccd_Aureon_7.1_USB-00" card_name="alsa_card.usb-0ccd_Aureon_7.1_USB-00" namereg_fail=false tsched=yes fixed_latency_range=no ignore_dB=no deferred_volume=yes use_ucm=yes avoid_resampling=no rate=44100 -}</code></pre> -<p><del>Using a cheap consumer grade card does come with consequences. -The recording seems to have a small DC bias – it’s not real DC though, -the offset changes from time to time. When the input signal goes silent, -the offset might differ from the offset when the signal was silent last -time.</del> <a id="n2" href="#note2" class="note">[2]</a> For this reason, I always add a high-pass filter -when using the material recorded by this sound card. With the HPF -applied, this sound card does produce clearer digital recording than my -Scarlett Solo with very cheap cables.</p> -<p>There’s no ASIO driver for this card either (Aureon 7.1 PCIe does -have ASIO driver, but I can’t install that card on my laptop), which -means I have to either use Steinberg’s generic ASIO driver, or ASIO4ALL, -both of which are… kind of trash, but still usable. The card doesn’t -have a bad latency issue though: it’s obviously way worse than the -Scarlett, but still tolerable.</p> -<p>So that’s my <del>current</del> recording setup. I’m currently OK -with it. However I’m not going to stick with it forever. I’ll upgrade to -a UA-25(EX), or better yet, an SD-90 because that way I can use its ASIO -output directly, plus I’ll be able to chain my SD-80 to it and use both -at the same time.</p> -<h2 id="tocanch4" class="tvis">Recording Setup Update Part -2</h2> -<p>(This part is written Q4 2021)</p> -<p>Yes I did upgrade to a UA-25 (non-EX). I got mine for about $60 -(after a long struggle against eBay’s virtually non-existent customer -service to lift a stupid suspension on my account).</p> -<p>Gentoo Linux handles this new interface without any problem. The -troublesome part is Windows (again). Just like the SD-80, Roland didn’t -release any Windows 10 driver for the UA-25. <a href="https://chrisoft.org/blog/post/2019-04-25.html#tocanch4">The -trick</a> I used to make their SD-80 Windows 8/8.1 driver install on -Windows 10 worked fine, and the driver installed correctly. But things -quickly went down hill. Whenever I open an application that uses ASIO, -the driver freaks out and causes audio dropouts like crazy. This glitch -makes the driver basically unusable.</p> -<p>I tried drivers for different Windows versions. Nothing changed. When -I was desperate and searching around the web, I discovered that UA-25EX -has an official Windows 10 driver. UA-25EX is virtually the same as -UA-25 except it comes with an improved limiter section which I assume -has largely nothing to do with the driver. So I decided to try some “mad -hax”.</p> -<p>Windows driver for UA-25EX is only available from Microsoft as a -Windows update package. Roland says if you have a UA-25EX, the package -will automatically install itself once you plug it in. But I don’t have -a UA-25EX: I only have a UA-25. So I had to go to the Windows Update -Catalog, looked for the driver package there, and download the build for -my computer (which turned out to be much harder than it needs to be, but -I won’t go deeper into that here). I extracted the package, and modified -the USB product ID the driver is designed for in the INF file:</p> -<pre><code>%DriverDeviceDesc%=DriverInstall, USB\VID_0582&PID_00E6 ; UA-25EX</code></pre> -<p>Just change <code>PID_00E6</code> to <code>PID_0074</code> (and also -the comment if you wish). AND IT FRICKING INSTALLED. ASIO also worked -perfectly. (Insert a thousand-word essay trashing Roland’s bad practice -here.)</p> -<p>So did the upgrade work? Nope. The DC bias is still there. Now it’s -more likely that the DC bias is from the SD-80 itself. Also another very -telling clue is that when the sound generator inside the SD-80 is reset, -the DC bias immediately goes away. I did some additional research on the -Internet and discovered people have theorized that the DC bias is from -the effect processor. They are having a <a href="https://gearspace.com/board/electronic-music-instruments-and-electronic-music-production/1302162-roland-xv5080-spdif-issue.html">similar -problem</a> with their XV-5080 and XV-5050 as well, both of which have -the same synth engine as the SD-80. By replicating their experiments and -getting the same result, I personally conclude that the DC bias comes -from the amp / gain / filter section of the integrated effects -processor. So I guess I’ll have to keep using high-pass filters on the -output for now.</p> -<p>So the only upgrade is that now I can record S/PDIF signal with -native ASIO. Besides that, it’s actually a downgrade: Output from the -computer will be muted if the digital input of the UA-25 is enabled. -This forced me to keep using the analog input for monitoring.</p> -<h2 id="tocanch5" class="tvis">Recording Setup Update Part -3, 4, 5…</h2> -<p>Yes I did upgrade. (again!!)</p> -<p>I saw a UA-101 in a listing for $80. I bought it. Then there was a -whole saga which ended in me getting two of them for the price of one. -And then I saw a SD-90 for $120… you know what happened.</p> -<p>This is getting too long to write in detail here. I’ll give detailed -information on my current recording setup in a new post, if I care to -write it at all.</p> -<h2 id="tocanch6" class="tvis">Rompler Preservation</h2> -<p>Kalas was extremely keen on preserving the sounds of SD-90/80 during -our communications. I have the intention to keep these legendary Roland -sounds around long into the future as well. We discussed the following -possibilities. Note that due to the locked-down nature of SD-90/80, we -referred to them mostly as “Romplers”, but these methods listed below -apply to those expandable models as well, especially considering they -are nothing but romplers that you can add more ROMs to, and the -architecture of Roland’s PCM synth.</p> -<p>In this section I’ll start using the word “SD-90” and “SD-80” -interchangeably, and by saying “SD-90”, I’m actually referring to the -synthesizer module built into it. If Roland was being honest when they -were saying “the newly developed multitimbral MIDI sound module, as -built into the well-received SD-90” when they were introducing the SD-80 -<a id="n3" href="#note3" class="note">[3]</a>, it should be -safe to assume they are virtually the same thing. I know this is kind of -sloppy. If you want to read more on this, checkout the <a href="#tocanch33">“More on SD-80 vs SD-90 vs SD-20”</a> section.</p> -<h3 id="tocanch7" class="tvis">Emulation</h3> -<p>This method was brought up by Kalas. Indeed there are a couple of -sound modules / synthesizers that has been emulated with reasonable -success. <a href="https://github.com/munt/munt">Munt</a> has an amazing -emulation of Roland’s LA synthesis found in the MT-32 or D-50. -<a id="n4" href="#note4" class="note">[4]</a> Yamaha’s FM -synthesis chips have been reverse engineered from inside out: there are -<a href="https://github.com/gtaylormb/opl3_fpga">implementations on -FPGA</a>, multiple nearly perfect software implementations, and other -bizarre stuff. MAME has emulation for multiple MU-series models, plus -work has been put into making an emulated SC-55 in MAME.</p> -<p>However, I personally don’t think emulation is the way to go for -SD-90/80. The success (or lack thereof) of these emulated models does -have their reasons:</p> -<ul> -<li>Emulation of Yamaha’s FM chips is a success because those chips are -available to third-party sound card makers, and therefore have public -datasheets that contains critical information for emulating the chip, -which includes register mapping, and the detailed architecture of the FM -synthesizer. This drastically decreased the amount of reverse -engineering required to get a perfect emulated implementation. Roland -has never made their synthesizer chips available to third-party vendors, -and therefore it’s impossible to take advantage of public -datasheets.</li> -<li>Emulation of several early gaming consoles’ sound system has been -successful because -<ul> -<li>They are relatively sample.</li> -<li>Similar to Yamaha’s FM chips, programmers can also directly -interface with them. Therefore their programming manuals have detailed -description on how sound generation works in the chips. SD-90/80’s -synthesizer chip XV meets neither of these two criteria.</li> -</ul></li> -<li>Most emulated sound modules in MAME have been a failure in terms of -real-world usability. The emulated MU-series either freezes, produces no -sound at all, or makes loud unexpected noise when playing the demo -track. The SC-55 emulation barely works – they only got the CPU working -and running its dumped control ROM. Please don’t get me wrong: the fact -that some emulated MU model could make any sound is almost a miracle for -me, and definitely a huge achievement despite the far-from-ideal results -it currently has, as Yamaha’s sample based synth chips -(<code>GEW/SWP</code> stuff) are no easy nut to crack. This approach is -highly unlikely to work for the SD-90/80 because unlike gaming consoles, -getting the CPU to run its system code doesn’t mean much for synthesizer -emulation. It’s the emulation of the actual synth/DSP chip that matters. -And the XV chip found in SD-90/80 is a <strong>monstrosity</strong> -compared to the early SWP chip in the MU-series. For this reason, I find -a pure emulation based solution difficult to implement for -SD-90/80.</li> -<li>Munt is successful because instead of an instruction-to-instruction -emulation, it’s more like a software reimplementation of the LA synth. -It doesn’t try to run the control ROM on an emulated Intel 8098 CPU, but -instead only use it for determining some characteristics of the software -implementation of the LA synth. This approach makes the most sense when -trying to recreate SD-90/80 in software form, but still definitely -require tons of reverse engineering (either blackbox or whitebox).</li> -</ul> -<p>For these reasons, I don’t think an OPL3-level emulation of SD-90/80 -is possible <a id="n5" href="#note5" class="note">[5]</a>. However, I will discuss an approach that -resembles Munt’s in the <a href="#tocanch8">Dumping and Deciphering</a> -section.</p> -<h3 id="tocanch8" class="tvis">Sampling the Rompler</h3> -<p>Many people have attempted to sample the SD-90. We already have the -(in)famous THFont from forever ago that contains some samples from the -SD-90, plus <a href="https://musical-artifacts.com/artifacts/1367">these</a> efforts to -create a complete set of sampled instruments from the SD-90. However, -these folks aren’t doing it in the most efficient way IMHO. Since the -SD-90/80 is extremely editable, one can craft presets ideal for raw -sample extraction (no filters, no LFO, just a plain tone with a constant -amplitude envelope). Since many preset instruments in the SD-90/80 -consist of multiple layers using different samples, instead of sampling -the patches, one can sample every individual waveform and layer the -samples in a way similar to the original presets to make close -imitations of SD-90/80 instruments. If done properly under ideal -conditions, the resulting sample library should be around the same size -of SD-90/80’s sample ROM, but decompressed (my guess is ~64 MiB -<a id="n6" href="#note6" class="note">[6]</a>).</p> -<p>If you’re only going to use the vanilla SD patches without any sort -of modification (including filter response, envelope, and effect -parameters), those existing samples will work just fine and they are -probably the most accurate out there if recorded properly. Of course, -the “efficient” approach of sampling sacrifices some level of that -accuracy (due to a different engine being used for playing back the -samples). But in exchange you get the highest level of freedom to -recombine the raw samples into custom patches including tweaking all -possible parameters and effects available in the synth engine of your -choice (which is a huge plus for me personally, as I love to create -whacky patches).</p> -<p>One problem for extracting the samples is that, a single waveform in -the SD-80 may contain different samples assigned for different key -ranges. This is often called a “multisample” by some sources. The way -the samples are mapped to the keys must be figured out before actually -sampling them. I have written a small(ish) python script to do exactly -that. It records the SD-80 playing two different keys at the same pitch -one after another, and compare them by calculating the correlation. If -the correlation is lower than a threshold, the two keys use different -samples. This approach works reasonably well for most samples, but for a -few analog synth samples, it works poorly. For those samples, I had to -resort to relying on the human ear (DTW, dynamic time warping, is also -used sometimes, but it usually has poor results for these samples as -well). Also the XV engine have some weird quirks near the keys C7-D8 -(96-110). The actual waveform produced within that range varies very -slightly from time to time. This is possibly due to the effect of <a href="https://en.wikipedia.org/wiki/Aliasing">aliasing</a> becoming -prominent for these high-pitched notes. I have already figured out -key-sample mapping for all multisamples (they are not guaranteed to be -correct, due to reasons mentioned above).</p> -<p>Another problem is looping. Roland uses sample looping extensively in -their PCM synths. It’s basically their secret sauce to squeeze thousands -of instruments into a unit with only tens of megabytes of samples. -Sample loop points can also be computed using cross-correlation. But is -nowhere near perfect. Of course it can be done manually, but that would -be a tedious task.</p> -<p>No actual recording of the raw samples have been done by me yet.</p> -<p>I have also dumped the instrument configuration for all preset -instruments and rhythm sets as part of my SD-80 dumping project (for -SD-80’s native mode only. I’m not sure whether this is doable for its -GS/XGLite instruments without a lot of reverse engineering, but nobody -cares about those anyway). For now, it can be used to recreate -parameter-accurate SD-80 patches in Roland’s SRX/Zenology plugins. -However it’s not yet in a very human-readable form (either raw binary -registers dump or decimal values with field names).</p> -<p>Once the samples are there, one can easily piece them together within -the sample playback engine of their choice, be it HALion, KONTAKT, or -even just soundfont synthesizers. Sure the feature set of each -sample-based synth engine is not exactly the same, but I think decent -results could be achieved for most instruments.</p> -<h3 id="tocanch9" class="tvis">Dumping and Deciphering</h3> -<p>The wave ROM in the SD-80 is a standard part despite the custom -Roland engravement on it <a id="n7" href="#note7" class="note">[7]</a>. This is expected because Roland has been -using standard mask ROM parts from various manufacturers for the wave -ROM. This means the content of SD-80’s wave ROM can be easily -dumped.</p> -<p>This might be shocking for some of the readers, but Roland does -compress their samples. This is evident from the specification of -XV-5080 “Wave memory: 64MB (16-bit linear format)” while the XV-5080 -only has 32 MiB wave ROM. The compression, previously unknown to me, has -been identified to be a variant of the differential pulse-code -modulation (DPCM) called FCE-DPCM by <a href="http://www.dtech.lv/techarticles_roland_exp.html">some amazing -person</a>. The same person seemed also figured out the structure of the -wave ROM used by sample-based synthesizers from Roland of that general -era. Unfortunately, I wasn’t able to find the article on the technical -details of the compression method at the time of writing. Anyway, hats -off to Edward of dtech.lv!</p> -<p>I <strong>will surely</strong> make a dump of the wave ROMs of my -SD-80. However, I want to do it in an nondestructive manner – I don’t -want to get a ROM dump and an unusable SD-80 (or end up with no valid -ROM dump and an unusable SD-80). Since I have proved my SMT soldering -job is terrible and shall never be in the vicinity of a SMT board -holding a soldering iron or hot air gun, I might try some clipping the -chip instead. I’m considering to try <a href="https://www.360-clip.com/uni-48.htm">this</a> clip from 360-clip. -It claims to be applicable to any 48-pin TSOP chips. If that’s true, -with the help of this clip and a Raspberry Pi <a id="n8" href="#note8" class="note">[8]</a>, I -can suck that juicy content out of the wave ROM chips of the SD-80.</p> -<p>Once we have the ROM dump, we can start trying to figure out its -structure. If we somehow managed to do that, we would be able to feed -the decompressed samples together with the already dumped patch -parameters to some existing or new, custom sample-based software -synthesizer, and achieve decent results mimicking the SD-90/80. Patches -that make use of MFX would certainly be a pain to deal with. However one -can always simulate MFX with external DAW effects. To hear the -difference MFX makes for various preset patches that use it, see the <a href="#tocanch37">“What role does MFX play?”</a> section.</p> -<p>I believe this approach is very similar to that one used by Munt -(although I only read a small part of Munt’s code base, and I didn’t -read anything about their reverse engineering approach). The SH3 CPU -plays a relatively minor part in the tone generation of SD-80. Instead, -we should focus on replicating the sounds of the XV engine. Also, an -logic-level reverse engineering of the XV chip doesn’t seem reasonable -because it’s such a huge and complex chip (or rather, a huge gate -array). Just save the hassle, treat it like a blackbox and try to -reproduce its output using a software implementation should be able to -produce acceptable result on its own.</p> -<h4 id="tocanch10" class="tvis">Extra rambling about the ROM -chip</h4> -<p>In the part number of <code>μPD23C128040ALGY-***-MJH/MKH</code>, the -<code>***</code> part is the ROM code. When a mask ROM chip is -commissioned, the customer (Roland in this case) needs to submit the -desired ROM content and their choice for various other options (in case -of <code>μPD23C128040ALGY</code>, they can choose how the logic level on -a certain pin controls the outputs). The manufacturer then arrange the -mask according to this information and assigns a ROM code to this -specific mask <a id="n9" href="#note9" class="note">[9]</a>. Therefore, for two -chips of the same type, if they have the same ROM code, their contents -should be identical. This way we can guess with fair amount of certainty -that the XV-3080, XV-5080 and XV-5050 have identical wave ROM contents -(they all use <code>μPD23C128040ALGY-849-MJH</code> and -<code>μPD23C128040ALGY-850-MJH</code>).</p> -<p>Among the chips with Roland markings in the SD-80, the XV chip and -8-bit MCU with Roland-programmed ROM has other markings that matches -Roland’s internal part numbers (the numbers with a prefix R, like -<code>R01455956</code> and <code>R02902867</code>), and followed by a -indicative part number of the actual chip (<code>137</code> and -<code>RA08-503</code>). However, none of these features matches on the -wave ROM chips. The wave ROM chips has internal part number -<code>R02678601</code> and <code>R02678612</code>, while the numbers on -the service manual are <code>03010612</code> and <code>03010623</code> -respectively. The indicative part also doesn’t match either: the chips -in my unit have <code>23C128L-529J</code> and <code>23C128L-535K</code>. -While the J/K variant and the <code>23C128L</code> part does match, what -I presumed is the ROM code doesn’t (529 vs 525 on IC28, 535 vs 526 on -IC29). What does this mean? I don’t really know. My SD-80 is built -relatively late into production (date code on the main board is -2004-08-27, date on the service manual is May 2002 – when the SD-80 was -initially released). Maybe Roland did revise the wave ROM content. If -that’s the case, it would be interesting to find one with the original -ROMs and compare them. I wouldn’t expect there to be any significant -differences, though.</p> -<h3 id="tocanch11" class="tvis">SD-20 MIDI File Converter</h3> -<p>This extremely intriguing piece of software is brought up by Kalas -during our communications. At the time of writing, this application can -be still found <a href="https://www.roland.com/jp/support/by_product/sd-20/">here</a>. The -installer can only proceed if an SD-20 is detected. This can be easily -circumvented by using a InstallSheld extractor. The converter does try -to access a registry key -<code>HKLM\Software\Wow6432Node\Edirol\SD-20 MIDI File Converter\BaseDataFile</code>, -which should be set to a string pointing to the url of its param.dat -file. However, even with this key set, the converter still refuse to do -anything, saying it failed to initialize. By the way even with an SD-20 -connected to the computer via USB, the converter still refuses to start -on Windows 10.</p> -<p>However, this kind of nonsense is not going to stop me. I quickly -found cracks floating around on the Internet. This converter is -extremely simplistic: you pick the midi file to convert, it spits the -wav file into the same folder. Here are some quick samples.</p> -<div> -<table style="position:relative;left:50%;transform:translate(-50%,0);text-align:center"> -<tbody><tr> -<td> -SD-80 -</td> -<td> -SD-20 Converter -</td> -</tr> -<tr> -<td> -<audio controls="" preload="none" src="//filestorage.chrisoft.org/blog/data/SD-80/AMEDLEY.SD80.N.ogg"> -</audio> -</td> -<td> -<audio controls="" preload="none" src="//filestorage.chrisoft.org/blog/data/SD-80/AMEDLEY.SD80.SD20C.N.ogg"> -</audio> -</td> -</tr> -<tr> -</tr><tr> -<td colspan="2"> -AMEDLEY.MID by Earl Gray Fowler from Voyetra Technologies, arranged for -SD-80 (Native Mode) -</td> -</tr> -</tbody></table> -</div> -<p>Used instruments: St.Strings, St.Timpani, St.Harp, St.Fr Horns, Flute -vib, St.Tubular, St.Harp, St.Xylophone, St.Music Box, St.Room, Bassoon -vib, SpaceVoice 3, Atmosphere 3, Ice Rain 3, PanFlute vib, Bird Tweet, -Seashore, Sweep Pad 3, Rockabilly, St.Kalimba, Piccolo vib, Steel Drums, -Tuba vib, Romantic Tp, St.Banjo, Trombone vib, JazzClarinet, Gunshot, -Clavi Bass 3, St.Brass, Dist.Gt 2, St.Orc Hit, Jazz Organ 2, -PhaseFrtless, Solo Vox 3, Reed Romance, Ice Rain 2, St.Power, Oct.JP -Saw, SH-2 Lead, Jazz Slap, OverdriveGt2, Applause.</p> -<p>Reed Romance and SH-2 Lead are from the special 2 set, therefore -cannot be used by the SD-20 MIDI File Converter. They are substituted by -Violin 2 vib and Warm SynHorn automatically. A single SD-80 system -exclusive DT1 message is used to change the patch volume of SH-2 -Lead.</p> -<div> -<table style="position:relative;left:50%;transform:translate(-50%,0);text-align:center"> -<tbody><tr> -<td> -SD-80 -</td> -<td> -SD-20 Converter -</td> -</tr> -<tr> -<td> -<audio controls="" preload="none" src="//filestorage.chrisoft.org/blog/data/SD-80/YOSEMITE.SD80.N.ogg"> -</audio> -</td> -<td> -<audio controls="" preload="none" src="//filestorage.chrisoft.org/blog/data/SD-80/YOSEMITE.SD80.SD20C.N.ogg"> -</audio> -</td> -</tr> -<tr> -</tr><tr> -<td colspan="2"> -YOSEMITE.MID by Passport Designs, arranged for SD-80 (Native Mode) -</td> -</tr> -</tbody></table> -</div> -<p>Used instruments: Enh.Nylon o, Ocarina vib, St.Slow Str2, -PhaseFrtless, Celtic Ens, St.Standard, Soft60’Organ, Pre Bass, -St.BritePno.</p> -<p>St.BritePno is a custom patch. It’s selected using system exclusive -messages generated by SD-80’s bulk dump feature. Enh.Nylon o, Celtic -Ens, Pre Bass are not available in the SD-20 Converter.</p> -<p>The output from the converter is significantly louder than SD-80’s -digital output. I normalized all recordings before uploading them. -Despite the lack of a lot of features and patches, the converter -actually sounded exceptionally good, and exceeded my expectation by -quite a large margin.</p> -<p>The converter is not a software implementation of SD-20’s internals. -There’s misinformation out there claiming so, but that’s simply not the -case. Roland explicitly disclosed this in the readme file of the -converter.</p> -<h4 id="tocanch12" class="tvis">FrankenTTS-1</h4> -<p>Something smells fishy instantly when I got this converter. That file -name “param.dat” looks really familiar. If you have used any of Roland’s -HQ software synthesizer products from the early 2000s -<a id="n10" href="#note10" class="note">[10]</a>, you might feel the same. They all use this file to -store their samples and patch data.</p> -<p>One natural thing to do is to replace the param.dat file of these -plugins with the one supplied with the converter. The result are as -follows:</p> -<ul> -<li>HQ-OR/HQ-QT refuses to load at all after the swap.</li> -<li>HQ-GM2 loads correctly. Instrument names changes to the names from -SD-20’s Classical set (for example, 1:0 changes from Piano 1 st. to -Piano 1w). Only instruments from the Classical set are available. No -NRPN messages can change the instrument set. The sound is pretty much -identical to that from the converter.</li> -<li>GrooveSynth (P5antom) also loads correctly. Besides all instruments -from the Classical set, a couple of instruments from the Contemporary -set and Solo set are also available, but there’s no obvious pattern -there. All rhythm sets are available in the Franken-GrooveSynth.</li> -</ul> -<p>This reveals that the synthesizer engine is identical to that used by -these HQ software synthesizers, proving the claim that this converter is -a software implementation of SD-20 wrong again.</p> -<p>There’s not much information about the structure of this “param.dat” -file online, nor could I figure it out myself (I’m not a huge fan of -doing such work). However this interchangeablility is somewhat -delighting.</p> -<h4 id="tocanch13" class="tvis">Other observations</h4> -<p>The executable of the converter is a mere ~500KiB and doesn’t seem to -use an executable packer. This suggests the “HQ” engine couldn’t be -super complex.</p> -<p>The executable contains references to “Automation”, “User Rhythm” and -such. Apparently they still left some code from the plugin version of -the HQ engine in this converter.</p> -<p>I think I found the entry to the function where param.dat is loaded -(0x004228e0). No idea where to go from there though.</p> -<h4 id="tocanch14" class="tvis">So… is this it?</h4> -<p>Nah, we should not depend on a piece of proprietary junk for the -preservation of anything.</p> -<p>Maybe some wizards could find a way to hack the plugins and make all -instruments available in TTS-1 or something. But that doesn’t really -work as a way to preserve the synth if the binary code it depends on -could stop working at an arbitrary point of time in the future, does -it?</p> -<h3 id="tocanch15" class="tvis">Roland Cloud</h3> -<p>Roland has been pushing their subscription service “Roland Cloud” -since 2018. When it first came out there was no plugin of my interest. -The deal breaker for me back then was there was no permanent licensing -option. If you know me, I’m strongly opposed to the subscription model -used for software products.</p> -<p>Starting from May 2020 though, Roland started offering “lifetime -keys”, which now puts this service within my radar. I took the ultimate -tier trial and installed every piece of plugin replicating SRX boards -and the XV-5080, as well as the then-new “Zenology” synth. I’ve got -mixed results.</p> -<p>The software aspect is okay. It’s much better than SoundCanvas VA -I’ve used years ago, which has glitchy TVA and TVF and was never fixed. -The user interface scales perfectly on high DPI screens. Editing -experience of the SRX/XV plugins is basically the same as the editors -for later Roland PCM synths (such as the SonicCell and the Integra-7) – -that is, much better than the original XV or SD-80 editor. These plugins -still have terrible performance as most previous Roland software synths -do (each instance needs plenty of processing power – if you use a -computer that predates the release of these plugins, the performance -will probably suffer).</p> -<p>The sound is … fine? Didn’t give me the same astonishment when I -heard a real XV-5080 on YouTube though (I thought “no way this thing -only has 32 MiB of sample content!”). For most patches, they sound -“close enough” to an actual XV-5080, despite a handful of caveats. The -synth engine do behave nearly identical to actual XV-based synths, at -least according to my tests. The XV-5080 plugin is especially -underwhelming, considering the original XV-5080 is expandable and can -also load external samples. If only the XV-5080 plugin could load -samples and patches from other SRX plugins installed, it would have been -a lot better (although this is solved by Zenology, it has its own -issues). The MFX uses a different set of effect types from the original -XV-5080 and SD-80: they are modeled after synths after the Fantom-S -era). However I’d say the effects bearing the same name as XV effects do -sound largely the same.</p> -<p>The executables contain a resource folder named “WROM”, and it -contains the wave ROMs used by the plugins. They are all exactly 32 MiB. -The wave ROM files contains a similar 32-byte header to dumps of actual -wave ROM of earlier Roland PCM synths (see the JD-800 wave ROM dump from -Edward of dtech.lv).</p> -<p>I do have some major complaints though. Each executable contains a -copy of the wave ROMs. If you choose to install all plugin formats, that -will install 4 copy of exactly the same wave ROM on your computer. Also -it’s impossible to combine the sounds of different SRX boards. Most -samples originated from Spectrasonics are missing from the SRX plugins -but are reincluded in the EXZ expansions which can be used in Zenology, -indicating a copyright dispute between the two companies that was -resolved later <a id="n11" href="#note11" class="note">[11]</a>. These problems -can be partially solved if you use the newer Zenology plugin instead. -But Zenology is riddled with its own issues. It uses a nearly entirely -new set of MFX (identical to the MFX from their 2019 Fantom-6/7/8 -workstations and other “ZEN-CORE” based products), and completely lacks -reverb effects. Effects that have the same name in Zenology and XV-based -synths doesn’t necessarily behave the same. And Zenology still can’t -load samples from different sample groups to left and right channels of -a single voice. I know it’s a thing in the original XV, but since it’s a -software reimplementation, they don’t have to stick to the same -restrictions do they? Also, why are all these plugins monotimbral? If -your answer is “just use multiple instances”, I would remind you that -these are Roland software synths, and they don’t perform well if you add -multiple to your virtual rack…</p> -<p>Recreating patches of the SD-80 using these plugins does seem to be -possible, and there are already plenty of people doing that. See the -section <a href="#tocanch32">“SD-80’s sound content”</a> for details. -However it does still rely on proprietary Roland software products -(which, if they want to, can cease the support at any time), requires -pricy licenses, and on top of all that, a crappy authenticating -system.</p> -<div> -<table style="position:relative;left:50%;transform:translate(-50%,0);text-align:center"> -<tbody><tr> -<td> -SD-80 -</td> -<td> -XV-5080 VST -</td> -</tr> -<tr> -<td> -<audio controls="" preload="none" src="//filestorage.chrisoft.org/blog/data/SD-80/passport_Driving.sd_pretending_to_be_xv.ogg"> -</audio> -</td> -<td> -<audio controls="" preload="none" src="//filestorage.chrisoft.org/blog/data/SD-80/passport_Driving.xvvst.ogg"> -</audio> -</td> -</tr> -<tr> -<td> -SD-80 using patch parameters pulled from XV-5080 -</td> -<td> - 5 instances of XV-5080 VST using factory patches -</td> -</tr> -<tr> -<td colspan="2"> -“Driving”, by Passport Designs -</td> -</tr> -</tbody></table> -</div> -<h2 id="tocanch16" class="tvis">A -History lesson from someone who barely knows anything about it</h2> -<p>AKA a short history of Roland’s sample-based synths from someone who -has used almost none of them.</p> -<p>Below is a comparison chart of selected sample-based synths from -Roland using information available from their manuals (mostly sysex -address mapping in the MIDI implementation) and service manuals. In a -few occasions sources from the Internet are used as well.</p> -<div class="collapse" data-caption="More detailed comparison of various Roland's PCM based sound modules"> -<p>Chip information on following modules are from actual units:</p> -<ul> -<li>SD-90</li> -<li>SD-80</li> -<li>SD-20</li> -<li>SC-8850</li> -<li>SC-D70 (courtesy of Palto)</li> -<li>SC-55 (courtesy of Palto)</li> -<li>SC-55mkII (courtesy of Palto)</li> -<li>Fantom-XR</li> -<li>XV-5080</li> -</ul> -<p>Others come from service notes.</p> -<table> -<tbody><tr> -<th> -Model -</th> -<th> -Synth Tone Generator -</th> -<th> -Effects Processor -</th> -<th> -Wave ROM -</th> -<th> -CPU -</th> -<th> -Multitimbral Parts -</th> -<th> -Polyphony (partials / voices) -</th> -<th> -Preset Patches -</th> -<th> -Synth Effects -</th> -</tr> -<tr> -<td> -MT-32 -</td> -<td> -MB87136A (LA32) -</td> -<td> -HG61H20R36F (Reverb), 4*64Kbit RAM -</td> -<td> -4 Mbit = 0.5 MiB -</td> -<td> -Intel 8098 -</td> -<td> -9 -</td> -<td> -32 -</td> -<td> -128i + 30r -</td> -<td> -Reverb -</td> -</tr> -<tr> -<td> -JD-990 -</td> -<td> -MB87731A (EP) + MB87424A (TVF) -</td> -<td> -2 * TC6088AF (CSP), 4 Mbit RAM -</td> -<td> -3 * 16 Mbit = 6 MiB, expandable w/ SL-JD80, SO-PCM1, PN-JV80 and SR-JV80 -boards -</td> -<td> -H8/570 -</td> -<td> -8 -</td> -<td> -24 -</td> -<td> -128i + 2r + 32p -</td> -<td> -JD Multi (EQ + Dist + Phaser + Spectrum + Enhancer + Chorus + Delay + -Reverb) -</td> -</tr> -<tr> -<td> -SC-55 -</td> -<td> -24201F002, TC24SC201AF-002 (GP) -</td> -<td> -Integrated, 256 Kbit RAM -</td> -<td> -3 * 8 Mbit = 3 MiB -</td> -<td> -H8/532 -</td> -<td> -16 -</td> -<td> -24 -</td> -<td> -317i + 10r -</td> -<td> -Reverb, Chorus -</td> -</tr> -<tr> -<td> -SC-55MkII -</td> -<td> -TC6116AF (GP4) -</td> -<td> -Integrated, 256 Kbit RAM -</td> -<td> -16 Mbit + 8 Mbit = 3 MiB -</td> -<td> -H8/532 -</td> -<td> -16 -</td> -<td> -28 -</td> -<td> -354i + 10r -</td> -<td> -Reverb, Chorus -</td> -</tr> -<tr> -<td> -JV-880 -</td> -<td> -TC6116AF (GP4) -</td> -<td> -Integrated, 256 Kbit RAM -</td> -<td> -2 * 16 Mbit = 4 MiB, expandable w/ SR-JV80 boards & PN-JV80 / SO-PCM -cards -</td> -<td> -H8/532 -</td> -<td> -8 -</td> -<td> -28 -</td> -<td> -192i + 3r + 48p -</td> -<td> -Reverb, Chorus -</td> -</tr> -<tr> -<td> -SC-88 -</td> -<td> -MBCS30109 (XP) -</td> -<td> -Integrated, 2 * 1 Mbit RAM -</td> -<td> -4 * 16 Mbit = 8 MiB -</td> -<td> -H8/510 -</td> -<td> -32 -</td> -<td> -64 -</td> -<td> -654i + 24r -</td> -<td> -Reverb, Chorus, Delay, EQ -</td> -</tr> -<tr> -<td> -JV-1080 -</td> -<td> -MBCS30109B (XP) -</td> -<td> -Integrated, 2 * 1 Mbit RAM -</td> -<td> -4 * 16 Mbit = 8 MiB, expandable w/ SR-JV80 boards & PN-JV80 / SO-PCM -cards -</td> -<td> -HD6477034, SH7034 (SH1) -</td> -<td> -16 -</td> -<td> -64 -</td> -<td> -512i + 8r + 64p -</td> -<td> -Reverb, Chorus, EFX (40 types) -</td> -</tr> -<tr> -<td> -SC-88VL -</td> -<td> -MB87B105PF-G RHR-2342 (XP2) <a id="n12" href="#note12" class="note">[12]</a> -</td> -<td> -Integrated, 2 * 1 MBit RAM -</td> -<td> -4 * 16 Mbit = 8 MiB -</td> -<td> -H8/510 -</td> -<td> -32 -</td> -<td> -64 -</td> -<td> -654i + 24r -</td> -<td> -Reverb, Chorus, Delay, EQ -</td> -</tr> -<tr> -<td> -SC-88Pro -</td> -<td> -TC170C200AF-005, RA01-005 (XP3), 2 * 1 MBit RAM -</td> -<td> -MB87837PF, 1 MBit RAM -</td> -<td> -5 * 32 Mbit = 20 MiB -</td> -<td> -H8/510 -</td> -<td> -32 -</td> -<td> -64 -</td> -<td> -1117i + 42r -</td> -<td> -Reverb, Chorus, Delay, EQ, EFX (64 types) -</td> -</tr> -<tr> -<td> -JV-2080 -</td> -<td> -TC170C200AF-005, RA01-005 (XP3), 4 MBit RAM -</td> -<td> -TC170C110AF-002, RA03-002, 4 MBit + 1 MBit RAM -</td> -<td> -2 * 32 Mbit = 8 MiB, expandable w/ SR-JV80 boards -</td> -<td> -HD6437034, SH7034 (SH1) -</td> -<td> -16 -</td> -<td> -64 -</td> -<td> -640i + 10r + 64p -</td> -<td> -Reverb, Chorus, EFX (3 slots, 40 types) -</td> -</tr> -<tr> -<td> -SC-8850 -</td> -<td> -2 * TC203C180AF-002, RA09-002 (XP6), 2 * 4 MBit RAM -</td> -<td> -MB87837PF, 4 MBit RAM -</td> -<td> -2 * 128 Mbit = 32 MiB -</td> -<td> -HD6437016E09F, SH7016 (SH2) <a id="n13" href="#note13" class="note">[13]</a> -</td> -<td> -64 -</td> -<td> -128 -</td> -<td> -1640i + 63r -</td> -<td> -Reverb, Chorus, Delay, EQ, EFX (64 types) -</td> -</tr> -<tr> -<td> -SC-8820 -</td> -<td> -TC203C180AF-002, RA09-002 (XP6), 4 MBit RAM -</td> -<td> -MB87837PF, 4 MBit RAM -</td> -<td> -128 Mbit + 64 Mbit = 24 MiB -</td> -<td> -HD64F7017F28, SH7017 (SH2) -</td> -<td> -32 -</td> -<td> -64 -</td> -<td> -1608i + 63r -</td> -<td> -Reverb, Chorus, Delay, EQ, EFX (64 types) -</td> -</tr> -<tr> -<td> -SC-D70 -</td> -<td> -TC203C180AF-002, RA09-002 (XP6), 4 MBit RAM -</td> -<td> -MB87837PF, 4 MBit RAM; TC223C080AF-101, RA0A-101 (ESP4), 4 Mbit RAM -</td> -<td> -128 Mbit + 64 Mbit = 24 MiB -</td> -<td> -HD6437016E19F, SH7016 (SH2) -</td> -<td> -32 -</td> -<td> -64 -</td> -<td> -1608i + 63r -</td> -<td> -Reverb, Chorus, Delay, EQ, EFX (64 types) -</td> -</tr> -<tr> -<td> -XV-3080 -</td> -<td> -2 * TC203C180AF-002, RA09-002 (XP6) -</td> -<td> -Integrated, 2 * 4 MBit RAM -</td> -<td> -2 * 128 Mbit = 32 MiB, expandable w/ SRX & SR-JV80 boards -</td> -<td> -HD6437042F33, SH7042 (SH2) -</td> -<td> -16 -</td> -<td> -128 -</td> -<td> -1024i + 16r + 64p -</td> -<td> -Reverb, Chorus, MFX (1 slot, 63 types) -</td> -</tr> -<tr> -<td> -JV-1010 -</td> -<td> -TC203C180AF-002, RA09-002 (XP6) -</td> -<td> -Integrated, 4 MBit RAM -</td> -<td> -2 * 64 Mbit = 16 MiB, expandable w/ SR-JV80 boards -</td> -<td> -HD6437016F28, SH7016 (SH2) -</td> -<td> -16 -</td> -<td> -64 -</td> -<td> -895i + 18r + 64p -</td> -<td> -Reverb, Chorus, EFX (40 types) -</td> -</tr> -<tr> -<td> -SD-80 -</td> -<td> -2 * TC223C660CF-503, RA08-503 (XV) -</td> -<td> -Integrated, 2 * 16 Mbit RAM -</td> -<td> -2 * 128 Mbit = 32 MiB -</td> -<td> -HD6417706, SH7706 (SH3) -</td> -<td> -32 -</td> -<td> -128 -</td> -<td> -1050i + 30r -</td> -<td> -Reverb, Chorus, EQ, MFX (3 slots, 90 types) -</td> -</tr> -<tr> -<td> -SD-90 -</td> -<td> -2 * TC223C660CF-503, RA08-503 (XV) -</td> -<td> -Integrated, 2 * 16 Mbit RAM; RA0B-B01 for AFX -</td> -<td> -2 * 128 Mbit = 32 MiB -</td> -<td> -HD6417709A, SH7709 (SH3) -</td> -<td> -32 -</td> -<td> -128 -</td> -<td> -1050i + 30r -</td> -<td> -Reverb, Chorus, EQ, MFX (3 slots, 90 types) -</td> -</tr> -<tr> -<td> -SD-20 -</td> -<td> -TC203C180AF-003, RA0C-003 (XP7) -</td> -<td> -Integrated, 4 Mbit RAM -</td> -<td> -2 * 128 Mbit = 32 MiB -</td> -<td> -HD6437016E29FV, SH7016 (SH2) -</td> -<td> -32 -</td> -<td> -64 -</td> -<td> -660i + 23r -</td> -<td> -Reverb, Chorus, EQ -</td> -</tr> -<tr> -<td> -XV-5080 -</td> -<td> -2 * TC223C660CF-503, RA08-503 (XV) -</td> -<td> -Integrated, 2 * 16 Mbit RAM -</td> -<td> -2 * 128 Mbit = 32 MiB (expandable w/ SRX & SR-JV80 boards and EDO -DRAM up to 128 MiB) -</td> -<td> -HD6437042A13F, SH7042 (SH2) -</td> -<td> -32 -</td> -<td> -128 -</td> -<td> -1152i + 23r + 64p -</td> -<td> -Reverb, Chorus, EQ, MFX (3 slots, 90 types) -</td> -</tr> -<tr> -<td> -XV-5050 -</td> -<td> -TC223C660CF-503, RA08-503 (XV) -</td> -<td> -Integrated, 16 Mbit RAM -</td> -<td> -2 * 128 Mbit = 32 MiB (expandable w/ SRX boards) -</td> -<td> -HD6437016E22, SH7016 (SH2) -</td> -<td> -16 -</td> -<td> -64 -</td> -<td> -1280i + 25r + 64p -</td> -<td> -Reverb, Chorus, EQ, MFX (3 slots with restrictions <a id="n14" href="#note14" class="note">[14]</a>, 90 types) -</td> -</tr> -<tr> -<td> -XV-2020 -</td> -<td> -TC203C180AF-003, RA0C-003 (XP7) -</td> -<td> -Integrated, 4 Mbit RAM -</td> -<td> -2 * 128 Mbit = 32 MiB (expandable w/ SRX boards) -</td> -<td> -HD6437016E, SH7016 (SH2) -</td> -<td> -16 -</td> -<td> -64 -</td> -<td> -768i + 17r + 64p -</td> -<td> -Reverb, Chorus, MFX (1 slot, 40 types) -</td> -</tr> -<tr> -<td> -Fantom S-88 -</td> -<td> -TC223C660CF-503, RA08-503 (XV), 4 Mbit RAM -</td> -<td> -TC223C080AF-101, RA0A-101 (ESP4), 16 Mbit RAM -</td> -<td> -2 * 128 Mbit = 32 MiB (w/ 2 * 128 Mbit = 32 MiB sampling RAM, expandable -up to 288 MiB, plus SRX boards) -</td> -<td> -HD6417706, SH7706 (SH3) -</td> -<td> -16 -</td> -<td> -64 -</td> -<td> -904i + 41r + 64p -</td> -<td> -Reverb, Chorus, MFX (3 slots, 78 types), Mastering & Input Effects -</td> -</tr> -<tr> -<td> -Fantom XR/X6/X7/X8 -</td> -<td> -T6TV2TBG-0002 (WX) -</td> -<td> -Integrated, 64 Mbit RAM -</td> -<td> -4 * 128 Mbit = 64 MiB (w/ 2 * 64 Mbit = 16 MiB sampling RAM, expandable -up to 528 MiB, plus SRX boards) -</td> -<td> -HD6417706, SH7706 (SH3) -</td> -<td> -16 -</td> -<td> -128 -</td> -<td> -1280i + 49r + 64p -</td> -<td> -Reverb, Chorus, MFX (3 slots, 78 types), Mastering & Input Effects -</td> -</tr> -<tr> -<td> -Fantom G6/G7/G8 -</td> -<td> -T6TV2TBG-0002 (WX) -</td> -<td> -2 * T6TZ3AFG-0001 (WSP) w/ 64 Mbit RAM each + WX Integrated, 64 Mbit RAM -</td> -<td> -2 * 512 Mbit = 128 MiB (w/ 2 * 128Mbit = 32MiB sampling RAM, expandable -upto 544 MiB, plus ARX boards (external SSC synthesis)) -</td> -<td> -SH7785 (SH4A) -</td> -<td> -16 -</td> -<td> -128 -</td> -<td> -1920i + 73r + 8p -</td> -<td> -Reverb, Chorus, PFX (16 slots, one per channel, 76 types), MFX (2 slots, -78 types), Mastering & Input Effects -</td> -</tr> -<tr> -<td> -INTEGRA-7 -</td> -<td> -R8A02021ABG (SSC7, CPU w/ integrated DSP?) + MB8AA4181 (ESC2) -</td> -<td> -ESC2 256Mbit Effect RAM + SSC7 64Mbit Effect RAM -</td> -<td> -3 * 1Gbit = 384MiB (w/ 4 * 256Mbit = 128MiB DRAM) -</td> -<td> -R8A02021ABG (SSC7), SH4? -</td> -<td> -16 -</td> -<td> -128 -</td> -<td> -6030i + 258r + 64p -<!--64 "Studio Sets" (performances), SuperNATURAL (256 Ac, 1109 Sy, 26 Dr) + XV-5080 PCM (896i, 14d) + GM2 (256i, 9d) + ExSN1-6 (17i, 17i, 50i, 12i, 12i, 7d) + SRX01-12 (41i + 79d, 50i, 128i + 12d, 128i, 312i + 34d, 449i + 5d, 475i + 11d, 448i + 21d, 414i + 12d, 100i, 42i, 50i) + HQGM2 (256i, 9d) + HQPCM (512i, 19d)--> -</td> -<td> -Reverb, Chorus, MFX (16 slots, 67 types), EQ, compressor (drum part), -Surround, Mastering (EQ) -</td> -</tr> -</tbody></table> -</div> -<p>The following section summarizes generation-over-generation -improvements of the synth engine noticed by me reading the manuals. -There is a little bit of technical assessment of the chips, however most -of it is <strong>not</strong> based on analysis of the actual chip, -instead it’s based on analysis of the most capable synth model using -that chip. Some of the features might be added with newer version of -system software (such as the multisampling feature on XV-based synths -mentioned below) rather than improvements on the actual synth chip. It’s -in no way, shape or form complete. A lot of synthesizer keyboard models -are not listed. It could be way too technical for some readers. If -that’s the case, feel free to skip this section.</p> -<h3 id="tocanch17" class="tvis">LA</h3> -<p>Not strictly a PCM synth. Only uses PCM for the attack phase of the -sound. Already showing Roland’s base designs for later PCM synths: 4 -“partials” (this term is from 80s Roland samplers, and was referred to -as either voices or tones in later products) for each patch. Each -partial has its “timbre”, which consists of a WG (“wave generator”), -5-stage envelope generators for filters and amplifiers (which in later -PCM synths were reduced to 4-stage), and a single LFO for mod wheel. -Filters are always low-pass. Poor panning resolution (15 steps instead -of GM’s 128). Rhythm patches reference to individual “timbres” on each -key. Usually paired with external reverb and chorus processing chips. Up -to 32 polyphony.</p> -<p>Used in MT-32, CM-64, CM-32L, D-110 (as MB87136A “LA32”, QFP), and -D-50 (as MB87136, PGA).</p> -<p>Due to the popularity of MT-32, which is supported by a whole bunch -of DOS games, emulation of this engine is pretty well-developed already -(see the aforementioned Munt project).</p> -<h3 id="tocanch18" class="tvis">(Unnamed synth engine in -U-110)</h3> -<p>An early (late-1980s) incarnation of Roland’s PCM only synth. No -filters at all. Amp env reduced to 3 stages (?). The synth structure -looks more closely related to that of LA rather than later Roland PCM -synths. 31 polyphony. The synth consists of two chips: MB87419 and -MB87420. The former seems to act as a controller, while the latter does -the actual sound generation. There’s an additional chip to handle output -selection. Also relies on external chips for effects.</p> -<p>Interestingly, MAME has a partial implementation of this synth engine -(src/devices/sound/rolandpcm.cpp).</p> -<p>Found in U-110, U-220, CM-32P and various R-8 variants.</p> -<h3 id="tocanch19" class="tvis">EP</h3> -<p>Early-1990s PCM synth. Has filters but requires an external TVF -chip.</p> -<p>The models using this engine seems to have roughly the same feature -set as GP-based models. However they lack a lot of controls for rhythm -patches. Some models come with a much more powerful effects engine -(which is external to the EP chip).</p> -<p>Used in HP-3700/2700 (as MB87731), and JD-800/990 (as MB87731A).</p> -<h3 id="tocanch20" class="tvis">GP</h3> -<p>Uses 4-stage envelope generators for filter and amplitude. Has two -filter modes (LPF and HPF). Individual tones can be delayed after the -note is triggered. Each tone has 2 independent LFOs. Has a rudimentary -modulation matrix (with fixed modulation sources). Reverb and chorus -effects are integrated in the chip. Most parameters now accepts values -from 0 to 127 (rather than 0 to 100 in LA-based units). Has FxM -(frequency modulation) capability. More parameters can be modulated by -key follow or velocity, which now also supports velocity curves and -sensitivity offsets. Up to 28 polyphony on GP4 (24 on the original -GP).</p> -<p>The original GP (TC24SC201AF-002) is used in JV-80 and SC-55.</p> -<p>A later variant “GP4” (TC6116AF) is used in JV-880, SC-55mkII and -MC-303. It contains an additional gate array as LCD controller and -handles extra IO.</p> -<h3 id="tocanch21" class="tvis">XP</h3> -<p>This iteration has a lot of variants.</p> -<h4 id="tocanch22" class="tvis">Original XP</h4> -<p>Two additional filter modes (BPF and PKG). Modulation matrix has -partially configurable modulation sources. Introduced random panning and -alternate panning. Key ranges of tones can be limited. Voice priority -(which note to steal when a new note is played if polyphony is maxed) -can be adjusted. Has integrated effects processor with 40 available -effect types. Up to 64 polyphony. This chip seems to have the facilities -for pairing two of them together, but none of the production rack units -make use of this feature as far as I know. 24-bit wave address bus for a -maximum of 16777216 words (=32 MiB) addressable wave ROM per chip.</p> -<p>Used in JV-1080 (as MBCS30109B), and SC-88 (as MBCS30109).</p> -<h4 id="tocanch23" class="tvis">XP2</h4> -<p>Seems to be a drop-in replacement of the original XP.</p> -<p>Used in production units of XP-80 (designed with the original XP) and -SC-88VL (both as MB87B105PF-G or RHR-2342).</p> -<h4 id="tocanch24" class="tvis">XP3</h4> -<p>Seems pin-compatible with the original XP.</p> -<p>Used in JV-2080, SC-88Pro, and JX-305 (as TC170C200AF-005 or -RA01-005).</p> -<h4 id="tocanch25" class="tvis">XP6</h4> -<p>Tones can have different samples on each stereo channel. Two extra -filter modes (LPF2 and LPF3). Fully configurable modulation matrix. 63 -internal effect types. Up to 64 polyphony. Actual models with two of -these chips exist (XV-3080 and SC-8850).</p> -<p>Used in XV-3080, JV-1010, XV-88, SC-8850, SC-8820 and SC-D70 (as -TC203C180AF-002 or RA09-002). XV-88, XV-3080 and SC-8850 use a pair of -XP6.</p> -<h4 id="tocanch26" class="tvis">XP7</h4> -<p>Cut-down variant used in low cost models. Only the 40 “classical” -JV/XP effect types are present. All XP chips <em>before</em> XP7 work at -a 32 kHz output sampling rate (24.576 MHz clock input, 768 clock cycles -per output sample, or 12 clock cycles per voice). XP7 is also capable of -operating at 44.1 kHz with a 33.868 MHz clock input (found in the SD-20 -and DR-880).</p> -<p>Used in XV-2020, SD-20, DR-880, and E-09 (as TC203C180AF-003 or -RA0C-003).</p> -<h3 id="tocanch27" class="tvis">XV</h3> -<p>Mostly the same as XP6, but with COSM effects (guitar/bass -amplifiers, speaker & microphone emulation) and two additional -effect slots. 90 internal effect types. 3 insertion effect slots (40 of -the 90 effect types takes all 3 slots if only one chip is used). Up to -64 polyphony. Has an additional memory controller for sample RAM, -enabling dynamic sampling. Can be paired to double the maximum polyphony -and improve effects DSP power. 25-bit wave address bus for a maximum of -33554432 words (=64 MiB) addressable wave ROM per chip (all XPs have a -24-bit wave address bus).</p> -<p>Used in XV-5080, XV-5050, SD-90, SD-80, Fantom, Fantom S/S88, -MV-8800, and MC-909 (as TC223C660CF-503 or RA08-503). XV-5080, SD-90 and -SD-80 use a pair of XV.</p> -<p>XV-5080 seems unique among these models as it has a (software) switch -between two master clocks for the XV chip that allows for switching -between 44.1 kHz and 48 kHz output. The XV engine in all other models -listed above outputs at 44.1 kHz. Twice efficient compared to the XP -series, the XV chip needs 6 clock cycles to process each voice, which -translate to a input clock of 16.9344 MHz (44.1 kHz output) or 18.432 -MHz (48 kHz output).</p> -<p>Earlier models with sampling capability using this chip doesn’t have -proper external multisample support until Fantom S/S88, suggesting the -multisample support is added with system firmware rather modifications -to the synth engine.</p> -<h3 id="tocanch28" class="tvis">WX</h3> -<p>Capability wise, WX seems to be the equivalent of dual XV with the -external effects chip used in Fantom S/S88 (TC223C080AF-101, RA0A-101) -integrated. 78 internal effect types plus mastering + input effects. -Also added proper multisample support for external samples, which the -XV-5080 lacks. <a id="n15" href="#note15" class="note">[15]</a> Up to 128 polyphony. 25-bit -wave address bus for a maximum of 33554432 words (=64 MiB) addressable -wave ROM per chip. Wave RAM on general data bus instead of wave bus. WX -chip is only seen operating at a 44.1 kHz output, and uses a input clock -of 16.9344 MHz (3 clock cycles per voice).</p> -<p>Found in the Fantom-X series and Fantom-G series, as well as MC-808. -(SonicCell and SD-50 are also likely equipped with this chip, but I’m -not 100% sure.)</p> -<h3 id="tocanch29" class="tvis">Beyond WX</h3> -<p>From this point on the service manuals from Roland have become less -useful. They stopped listing the ICs in their parts list. However the -block diagram and schematics remain.</p> -<p>Roland introduced the so-called “SuperNATURAL” sounds with their -Fantom-G series, together with its new expansion board format (ARX). -These boards has a CPU built on it (the same SSC7 CPU used in -Integra-7). The CPU is connected to a set of RAM named “Effects RAM” in -Roland service manuals. Fantom-G by itself doesn’t appear to have any -“SuperNATURAL” sounds preloaded, and these new sounds clearly breaks -some of the limitations of the old synth engines. This leads to my -suspicion that the ARX boards have self-contained synth engines on -board, and the new “SuperNATURAL” engine is either software based, or -the SSC7 chip has some sort of extra bits that doesn’t belong to the CPU -(that is, an integrated ASIC DSP block). The SSC/SSC7 chip is seen on -all ARX boards, as well as the Integra-7.</p> -<p>Along with this new CPU thing, there are new effect processors/DSPs: -WSP and ESC2. WSP is found in a few relatively earlier (2009-ish) -models, while ESC2 is appears in almost all post 2010 Roland synths -(Integra-7, probably all Boutique models, and the latest Fantom-6/7/8 -series). A single ESC2 chip is able to provide 16 individual effect -slots in the Integra-7. However sometimes two of these chips can be seen -in some of the Boutique units. It also has a JTAG interface, and handles -USB connectivity in the Integra-7, leading to the suspicion that it also -has a microcontroller built-in.</p> -<h2 id="tocanch30" class="tvis">Role played by the -CPU in sound generation</h2> -<p>When I started writing this post, my thoughts were the vast majority -of the synth functionality is contained in the synth chip. In other -words, the synth chip provides a very high level of abstraction, and the -CPU only needs to pass processed voice events to the synth chip. In -retrospect this is not plausible, due to the following facts:</p> -<ul> -<li>Models with the same chips sometimes have significant feature -disparity (Fantom-S with external multisamples which is not found on any -other XV-based models).</li> -<li>Only the CPU has direct access to the memory that stores patch -parameters.</li> -<li>There’s no reason for such a powererful CPU in some low-end -models.</li> -</ul> -<p>My current hypothesis is the CPU handles:</p> -<ul> -<li>control matrix mapping, preprocessing of some parameters (velocity -curves, for example)</li> -<li>voice (individual tone) allocation and parameter specification</li> -<li>effect and output routing configuration (actual routing happens in -the synth chip/DSP obviously)</li> -<li>certain LFOs (maybe? <a id="n16" href="#note16" class="note">[16]</a>). Envelopes (even less likely).</li> -</ul> -<p>This means the synth chip could contain basic blocks for various -subsystems (sample playback, modulation, effect processing, etc). -Routing among these blocks is controlled by the CPU. If you are somewhat -familiar with hardware accelerated rasterization in computer graphics, -you may find this architecture has resemblance to the old fixed function -graphics pipeline.</p> -<h2 id="tocanch31" class="tvis">Other Curious Stuff</h2> -<h3 id="tocanch32" class="tvis">SD-80 is an XV-5080 …</h3> -<p>… locked into performance mode and with samples cherry-picked by -Roland?</p> -<p>Indeed, the address mapping <a id="n17" href="#note17" class="note">[17]</a> for the SD-80 is almost -fully compatible with that of XV-5080. Even a lot of parameters that -make no sense for the SD-80 are preserved: SD-80 has a parameter to -select which wave expansion board to use, wave groups (which the SD-80 -only has one), as well as parameters for “multi-partial” patches, which -on the XV-5080 is a way to put together patches that use samples loaded -into the RAM. Only the first one has its description changed to -“reserved” in the documentation. The SD-80 doesn’t have any wave -expansion board slots hidden inside, nor does it have support for -external sample loading.</p> -<p>Of course from the form factor side of things, the SD-80 looks more -like a cut-down version of XV-5050 which is a full 1U rack unit while -the SD-80 has a 3/4 rack design. However the SD-80 does retain XV-5080’s -128 polyphony and dual XV guts.</p> -<p>What is called “Performance” in XV-5080’s address map is called -“Multitimbre” in SD-80’s address map. They have the exact same content -inside (well, not really exact – SD-80 has quite a few extra parameters -in the “Multitimbre Common” section, mainly to expose some GM2 -parameters and parameters that earlier SoundCanvases had in their -address maps). On the XV-5080, you can save the performance to one of -its 64 performance memory slots. Configuration of all 32 parts of the -synthesizer is restored from the save slot when a performance is loaded. -Just like the XV-5080, the SD-80 has a name assigned to its -“Multitimbre”, which is set to “Native Mode” upon entering its native -mode. But there are no memory slots for “multitimbres” in the SD-80, nor -is the name of multitimbre shown anywhere (either on the LCD screen, or -in the SD-80 Editor), rendering this name useless. This name is not -read-only. You can change it as you wish using system exclusive -messages, and is preserved until the next native mode reset message is -received.</p> -<p>Since the SD-80 is straight up the same when compared to the XV-5080 -in terms of synthesizer engine, and also has extremely similar MIDI -implementation <a id="n18" href="#note18" class="note">[18]</a>, the SD-80 can be seen as a -XV-5080 with locked-down samples. What the StudioCanvas series does -improve over its SoundCanvas predecessors, is its editability in native -mode, which is brought on par with its professional counterparts and -allow the user take full control of the sound for the first time -<a id="n19" href="#note19" class="note">[19]</a>. This is a huge step forward from the -lame set of a few parameters offered by earlier GS models. However there -is also stuff found in earlier models that’s no longer available in the -StudioCanvas, which we are going to touch on in a moment.</p> -<h4 id="tocanch33" class="tvis">SD-80’s sound content</h4> -<p>Only a small chunk of SD-80’s content is brand new (at least to me) – -for example, the harpsichord <a id="n20" href="#note20" class="note">[20]</a>, the clarinet, a few saxes and stereo crash cymbals. -The rest are either from other Roland products, or modified from their -existing content.</p> -<ul> -<li>The sample “Trumpet Vib” used by the now infamous Romantic Tp -(thanks to ZUN) is from SR-JV80-18 Latin expansion board. The original -sample name is “Tp Vib MariA” (or B, or less likely C) <a id="n21" href="#note21" class="note">[21]</a> There are a lot more samples for various trumpet -techniques in SR-JV80-18, particularly designed for Mexican mariachi -music. These samples are also found in SRX-09 World Collection, which -contains all samples from SR-JV80-18.</li> -<li>Acoustic drum set from the solo set is a cut down version of the -studio kit from SRX-03 Studio, which is also the source of Super -Quartet’s drums.</li> -<li>Piano patches are pulled straight from SR-JV80-09, which is also -included in SRX-07. <del>SC-8850 has the same Piano sound.</del> No it -doesn’t. It uses the stereo piano samples from XV. Thanks for Arie on -Discord to point this out.</li> -<li>Clavi is almost identical to one of the many clavi patches from -SC-8820/8850, and is likely ultimately from the JVs and SR-JV80 -boards.</li> -<li>Samples of Flute vib sound identical to those with the same name -(“Flute Vib3 A/B/C”) in SRX-03.</li> -<li>Samples of St.Brass and St.Sm Choir also come straight from -SRX-03.</li> -<li>Multiple sound effects are from earlier SC models. Some are also -used by XV-5080’s GM2 mode.</li> -<li>A lot of patches in the special sets are pulled from the XV-5080. -They use the exact same parameters, except the waveforms. If you can -find a preset with the same name as an instrument from SD-80’s special -set in the XV-5080, chances are they sound almost identical, especially -since a lot of them are analog/digital synth patches, and waveforms -don’t matter as much. There are a few exceptions – a preset with the -name “Cascade” is found in both instruments, but they have nothing in -common except the name. There are also a lot of XV-5080 “inspired” -patches: they have different names from the original XV-5080 patch, but -very similar sound design. In fact, the “Cascade” patch mentioned above -is one of these XV-5080 “inspired” patch, but you have to figure out the -original yourself as I forgot which one it is.</li> -<li>Rave Set, Rust Set and Bully Set are adapted versions of XV’s -RaveDrumSet, XV Rust Kit and XV Bully Kit respectively. The original XV -kits are not GM-compatible.</li> -<li>Multiple orchestral instruments from the contemporary set and solo -set use samples from SRX-06 (SR-JV80-02/16).</li> -<li>Bass and guitar are a mishmash from SR-JV80-09, SRX-03, SRX-07, -SRX-09 and XV-5080. Some of them are used in other Roland products. -(Fingered Bs2 vs SC-8850 Heart Bass, which is also almost identical to -Rock Bass in Super Quartet, and the sample is from SR-JV80-09).</li> -</ul> -<p>This list is far from complete. There has been extensive efforts to -map the multisamples in the SD-80 to XV-5080 and SRX multisamples. <a href="//filestorage.chrisoft.org/blog/data/SD-80/SD-80_Waveform_Comparison.pdf">Here</a> -is one made by Palto. These mappings are extremely useful if you wish to -recreate SD-80 patches with Roland’s VSTi plugins.</p> -<p>So the content of the SD-80 is actually a mixture of XV-5080, SRX -wave expansion boards, SR-JV80 boards, earlier SoundCanvas patches and -maybe a few new sounds. Reusing stuff isn’t surprising for Roland, nor -should it be considered “bad”. They’ve been known to do this <a href="https://www.soundonsound.com/reviews/roland-sc88">since the early -SC days</a>, where they used JV- and SR-JV80 expansion board sounds in -the old SC series. Evidently, the waveforms come with XV-5080 itself -include everything from the JV-2080/1080, which are in turn partially -from the JV-880, and eventually from the JD-800… I’ve also noted that -SuperQuartet has a substantial overlapping set of instruments with -SRX-03. All I want to say in this section is that if you want to get -some particular sounds from the Studio Canvas, instead of waiting for a -second-hand offering, maybe look somewhere else.</p> -<p>Since the content of SD-80 is mostly just cherrypicked XV/SRX -content, it really doesn’t need any additional praise from me. However I -think it’s worth pointing out that Roland’s samples of that era, just -like sounds from most other vendors, are heavily looped. They have loop -periods that are quite short (usually less than a second). They are also -usually heavily preprocessed. As the amount of memory used for -reproducing the instruments saw a huge boom in the 2000s, they no longer -sound downright “fake” or “plasticky” compared to romplers from a decade -ago. However when compared against huge modern sample libraries, most -instruments from these 2000s Roland romplers sound more “idealistic” -rather than “realistic”, just like your average Japanese anime girls -with unrealistically huge eyes. Not saying that such sound is bad, -though.</p> -<p>The GS sounds and XGLite sounds of the SD-80 are completely trash. -The GS sound set is pretty much just the SC-55 map in later SoundCanvas -models using SD-80 samples. The XGLite sound set however, is notably -larger than the average bottom-of-the-line Yamaha Portatones from the -early 2000s (the XGLite instrument listing in SD-80/90’s manual is -incomplete. Check my first SD-80 post for a complete list). There are -probably only 5 or so usable sounds offered in these modes in total -(most of which are in the XGLite sound set, which is kind of ironic for -a Roland sound module). It’s not worth it to switch modes just for those -sounds, especially since these modes don’t support low-level editing -like the native mode.</p> -<p>The SD-80 features 1050 instruments and 30 drum sets, which is a -significant decrease from the last generation SC-8850 (1640 instruments -and 63 drum sets). The loss of SC-8850’s ethnic and analog instruments -is a shame. But the quality of instruments does receive a general -uplift.</p> -<h3 id="tocanch34" class="tvis">More on SD-80 vs SD-90 vs -SD-20</h3> -<h4 id="tocanch35" class="tvis">What does a SD-90 have -that SD-80 doesn’t?</h4> -<p>Easy. The audio interface (together with post-processing effects) and -the large screen.</p> -<p>It is a shame that Roland didn’t implement full XV-level editability -of patches on such a large screen though.</p> -<p>SD-80 is also not capable of switching the output sample rate on its -digital audio outputs.</p> -<h4 id="tocanch36" class="tvis">What does a SD-80 have -that SD-90 doesn’t?</h4> -<p>This may come as a shocker, because the list is surprisingly -long.</p> -<ul> -<li>User instruments and user rhythm sets. <a id="n22" href="#note22" class="note">[22]</a></li> -<li>A few weird switches controlling its global state (MFX on/off, -reverb/chorus switch). They are weird because they are not affected by -the native mode reset message. These switches are also featured in the -SD-80 editor, which Roland says don’t do anything if used with an SD-90. -They are also present in the professional XV line-up.</li> -<li>Multiple outputs from the synthesizer. The SD-90 does have a -secondary output, but the internal synthesizer can only use one of them. -The SD-80 has two stereo outputs, which can also be used as four mono -outputs. This also allows the SD-80 to have…</li> -<li>Ability to output synthesizer effects to a separate bus. You can -specify the output for the internal reverb, chorus and multi-effects as -well.</li> -</ul> -<h4 id="tocanch37" class="tvis">What’s the SD-20 anyway?</h4> -<p>Turns out it’s not much.</p> -<p><a href="https://chrisoft.org/blog/post/2021-10-10.html">There’s -going to be a separate article on this.</a></p> -<h4 id="tocanch38" class="tvis">What role does MFX play?</h4> -<p>It depends. If the MFX is just some reverb, EQ, or chorus, it really -doesn’t make a whole world of difference and can be easily replaced with -basic external effects. If its an amplifier simulator, a pitch shifter, -or an auto filter, disabling MFX will result in a drastic sound change. -Plugins simulating these effects are also usually harder to come by / -more expensive. A few demonstrations of patches with and without MFX are -in the table below.</p> -<div> -<table style="position:relative;left:50%;transform:translate(-50%,0);text-align:center"> -<tbody><tr> -<th> -Patch -</th> -<th> -MFX Type -</th> -<th> -Audio demo (with MFX, then without MFX) -</th> -</tr> -<tr> -<td> -3D Crystal -</td> -<td> -Modulation Delay -</td> -<td> -<audio controls="" preload="none" src="//filestorage.chrisoft.org/blog/data/SD-80/3D_Crystal.ogg"> -</audio> -</td> -</tr> -<tr> -<td> -96 Year -</td> -<td> -Rotary -</td> -<td> -<audio controls="" preload="none" src="//filestorage.chrisoft.org/blog/data/SD-80/96_Year.ogg"> -</audio> -</td> -</tr> -<tr> -<td> -Celtic Ens -</td> -<td> -Reverb -</td> -<td> -<audio controls="" preload="none" src="//filestorage.chrisoft.org/blog/data/SD-80/Celtic_Ens.ogg"> -</audio> -</td> -</tr> -<tr> -<td> -MonoDLY Dist -</td> -<td> -Guitar Multi A -</td> -<td> -<audio controls="" preload="none" src="//filestorage.chrisoft.org/blog/data/SD-80/MonoDLY_Dist.ogg"> -</audio> -</td> -</tr> -<tr> -<td> -Oxigenizer -</td> -<td> -Keysync Flanger -</td> -<td> -<audio controls="" preload="none" src="//filestorage.chrisoft.org/blog/data/SD-80/Oxigenizer.ogg"> -</audio> -</td> -</tr> -<tr> -<td> -Quasar -</td> -<td> -Ring Modulator -</td> -<td> -<audio controls="" preload="none" src="//filestorage.chrisoft.org/blog/data/SD-80/Quasar.ogg"> -</audio> -</td> -</tr> -<tr> -<td> -Reed Romance -</td> -<td> -Enhancer -</td> -<td> -<audio controls="" preload="none" src="//filestorage.chrisoft.org/blog/data/SD-80/Reed_Romance.ogg"> -</audio> -</td> -</tr> -<tr> -<td> -Wah Ana.Clav -</td> -<td> -Stereo Auto Wah -</td> -<td> -<audio controls="" preload="none" src="//filestorage.chrisoft.org/blog/data/SD-80/Wah_Ana.Clav.ogg"> -</audio> -</td> -</tr> -</tbody></table> -</div> -<h3 id="tocanch39" class="tvis"><code>Light Load</code> vs -<code>High Load</code></h3> -<p>There is a toggle for “Light Load” mode in the driver for SD-80 on -all platforms, including Linux. What this option actually does is not -documented. The only thing I know is that in the Linux driver this is -implemented with a single <code>usb_set_interface</code> call.</p> -<p>This setting doesn’t seem to affect the synth engine, only the way -how midi data is transmitted / processed (because the drivers for UA-25 -has this option as well). Weirdly, Roland’s contemporary software -synthesizers (HyperCanvas/TTS-1, SuperQuartet, Orchestral) also have -this option.</p> -<h3 id="tocanch40" class="tvis">Block Diagram</h3> -<p>I made <a href="//filestorage.chrisoft.org/blog/data/SD-80/sd80blk_notext_o.svg">this -vectorized version</a> of SD-80’s block diagram printed on its chassis -when I was bored. You can also get a <a href="//filestorage.chrisoft.org/blog/data/SD-80/sd80blk_notext_o_nt.png">rasterized -version</a>.</p> -<h3 id="tocanch41" class="tvis">Other weird and interesting -stuff</h3> -<ul> -<li>Very few (if any) preset patches uses the modulation matrix of the -XV engine correctly. All of them has the modulation source set to -‘OFF’.</li> -<li>Only 5 of all preset patches used non-default tone structures: -“Runaway Rez”, “Purple Spin”, “FM layer”, “FM Delight”, and “Xmod EP”. -All of them are in the special sets. 3 of them are unmodified XV-5080 -patches.</li> -<li>There doesn’t seem to be a way to set the system tempo of the -SD-80/90 with MIDI messages, nor can the SD-80/90 sync its MIDI clock -with a host, rendering the system clock mostly useless. Neither of these -two is true for the XV-5080.</li> -<li>Ever wondered why some patches have seemingly nonsensical waveforms -selected in disabled tones <a id="n23" href="#note23" class="note">[23]</a>? Just look up those wave -numbers in the waveform list of XV-5080 or the corresponding SRX board! -<a id="n24" href="#note24" class="note">[24]</a> This, once again, suggests -Roland used the XV-5080 as the development platform for the -StudioCanvas.</li> -<li>From Sound On Sound’s review of the SD-90: “To me, however, USB -audio and the Sound Canvas sound set don’t add up to £799, and although -I grew to like the SD90, I’m not sure how many people will find it -attractive at this price point.” – ZUN, apparently.</li> -</ul> -<h2 id="tocanch42" class="tvis">Errata of the original post</h2> -<ul> -<li>The non-zero “modulation level” (which is actually “modulation -depth”) on the SD-80 isn’t the value of the modulation wheel itself, but -rather how deep a modulation wheel pushed all the way to the top will -modulate the sound. SD-90 also has a default value of 10 for it (“Mod -LFO Pitch Depth” in the address mapping). There’s no GM incompatibility -here.</li> -<li>Instruments sampled with vibrato are not from the XV-5080, they are -from the SRX / SR-JV80 boards. Duh.</li> -<li>XP6 <em>was</em> used in professional products. In fact, a handful -of them (XV-3080, XV-88, JV-1010 and possibly more).</li> -<li>Roland still makes romplers today. It’s a model from a decade ago. -You’ll have to guess which model it is.</li> -</ul> -<h2 id="tocanch43" class="tvis">References</h2> -<ul> -<li><a href="https://www.dtech.lv/techarticles_roland_exp.html">Roland -Wave Expansion Cards by Edward D-tech</a></li> -<li><a href="http://www.donsolaris.com/?p=404">Don Solaris’ ultimate -Roland JV/JD/XV FAQ</a></li> -<li><a href="https://www.sweetwater.com/insync/cosm/">What is -COSM?</a></li> -<li><a href="https://www.soundonsound.com/reviews/roland-xv5080">SOS -Review of XV-5080</a></li> -<li><a href="https://www.soundonsound.com/reviews/edirol-sd90">SOS -Review of SD-90</a></li> -<li><a href="https://www.soundonsound.com/reviews/edirol-sd80">SOS -Review of SD-80</a></li> -<li><a href="https://www.soundonsound.com/reviews/roland-sc88">SOS -Review of SC-88</a></li> -</ul> -</article> -</div><br><hr> - <div class="TText" id="notediv" style="font-size:80%;"><span class="TText"><a id="note1" href="#n1">[1]</a>: Judging by the way Roland -utilized the SH-3 CPU in MC-909, which has a 16MHz external clock input -and a 8x multiplier (128MHz internal clock), I would guess the CPU in -SD-80 also works at 8x multiplier and therefore 96MHz -internally.<br></span><span class="TText"><a id="note2" href="#n2">[2]</a>: Later the source of this DC bias is determined to -be SD-80 itself, not the recording device. See the next -section.<br></span><span class="TText"><a id="note3" href="#n3">[3]</a>: オールインワン・モデルSD-90でご好評いただいた、新開発MIDI音源部を搭載したマルチティンバー音源が登場。 -As seen <a href="https://web.archive.org/web/20020604015208/http://www.roland.co.jp/products/dtm/SD-80.html">here</a>. -I don’t actually know any Japanese and just pieced stuff together -randomly. Sorry if I butchered your language.<br></span><span class="TText"><a id="note4" href="#n4">[4]</a>: Munt isn’t strictly an emulation. It doesn’t emulate the CPU -or actual circuitry of the MT-32. See below.<br></span><span class="TText"><a id="note5" href="#n5">[5]</a>: without Roland losing their mind and releasing all -internal documentation on the XV engine, or some absolute madlad -spending 15 hours everyday on reverse engineering the thing for half a -year, that is.<br></span><span class="TText"><a id="note6" href="#n6">[6]</a>: SD-80 has 32MiB of compressed wave ROM, see the “list of -integrated circuit chips on SD-80 main board” in the first section. -Roland’s waveform compression scheme usually results in a ~50% -compression ratio. Therefore the content is roughly equal to 64 MiB of -uncompressed 16-bit PCM wave.<br></span><span class="TText"><a id="note7" href="#n7">[7]</a>: The “23C128” kind of gave it away – -they are the <code>μPD23C128040ALGY</code> mask ROM chips from NEC, -which is the exact same type of ROM used in XV-5080. Unlike the XV-5080 -though, the SD-80 makes use of both its J variant and K variant, while -the XV-5080 only uses the J variant (these variants have symmetric pin -configuration). <br></span><span class="TText"><a id="note8" href="#n8">[8]</a>: Well, the -Raspberry Pi isn’t really suitable for this task because it doesn’t have -enough GPIO pins. But there’s an easy workaround for that.<br></span><span class="TText"><a id="note9" href="#n9">[9]</a>: For readers who wonders what “mask” means in -this context: you can treat a mask ROM as a huge array of tiny switches -that can’t be turned on or off once manufactured. You can access the -state of a group of switches by giving an address to its input pins. The -mask is used as a template of the states of these switches during the -manufacture process. This is electrical engineering amateur Chris trying -to explain mask ROM in layman’s terms.<br></span><span class="TText"><a id="note10" href="#n10">[10]</a>: HyperCanvas (HQ-GM2) or Cakewalk TTS-1, which is a rebranding -of the former; SuperQuartet (HQ-QT) and Orchestral (HQ-OR). A plugin -called GrooveSynth (P5antom) bundled with several earlier Cakewalk -products providing patches from the MC-303 Groovebox also uses this -engine.<br></span><span class="TText"><a id="note11" href="#n11">[11]</a>: which is kind of weird considering -Spectrasonics basically spun off from Roland<br></span><span class="TText"><a id="note12" href="#n12">[12]</a>: Also used in XP-80, see the errata -section of its service manual.<br></span><span class="TText"><a id="note13" href="#n13">[13]</a>: HD64F7017F28, SH7017 in parts -list<br></span><span class="TText"><a id="note14" href="#n14">[14]</a>: 40 of the -90 types will take up all three slots, most likely due to the reduced -DSP power.<br></span><span class="TText"><a id="note15" href="#n15">[15]</a>: Support for multisamples also exist in Fantom -S/S88, so this is more likely due to an updated system software rather -than changes of the synth engine.<br></span><span class="TText"><a id="note16" href="#n16">[16]</a>: There is evidence that some of them -are handled by software (SD-80 having one more LFO per part than the -XV-5080). However it can also be using LFO blocks in the XV chip that is -unused in the XV-5080.<br></span><span class="TText"><a id="note17" href="#n17">[17]</a>: This mapping is used for -DT1/RQ1 system exclusive messages.<br></span><span class="TText"><a id="note18" href="#n18">[18]</a>: The first half is also true for earlier SC -models (SC-55 <-> JV-880, SC-88 <-> JV-1080, SC-88Pro -<-> JV-2080, SC-8850 <-> XV-3080). However the second half -isn’t. Earlier SC models employs a GS-specific address map which looks -nothing like their counterparts.<br></span><span class="TText"><a id="note19" href="#n19">[19]</a>: And also the last time, since neither the SD-20 nor the SD-50 -has such editability.<br></span><span class="TText"><a id="note20" href="#n20">[20]</a>: Apparently it’s from the -SC-8850.<br></span><span class="TText"><a id="note21" href="#n21">[21]</a>: The -multisample from Roland Cloud seem to have an extra sample in the -highest register, which sounds like it’s processed with a low-pass -filter with very low cut off frequency and makes it sound like garbage. -This is also the case for the version included in the original SRX-09 -boards.<br></span><span class="TText"><a id="note22" href="#n22">[22]</a>: The owner’s manual -of the SD-80 contains blatant lies. It says “It is not possible for the -edited sounds to be saved in the internal memory of the SD-80” (which is -directly copied from SD-90’s manual), and goes on to teach you how to -save a user patch.<br></span><span class="TText"><a id="note23" href="#n23">[23]</a>: For example, nearly all acoustic -bass patches have a disabled tone with wave number 249 “TenBlwSaxVib” -selected, and the Fiddle 2 vib patch have a disabled tone with wave -number 276 “Blow Pipe” selected.<br></span><span class="TText"><a id="note24" href="#n24">[24]</a>: Wave #249 in XV-5080 is UprightBs 2A, and Wave #276 in SRX-09 -is Fdl Pizz 1C (Fiddle Pizzicato).<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 |