{"id":4003,"date":"2023-10-09T14:58:02","date_gmt":"2023-10-09T14:58:02","guid":{"rendered":"https:\/\/maffez.com\/?page_id=4003"},"modified":"2024-11-28T19:34:09","modified_gmt":"2024-11-28T19:34:09","slug":"waldorf-m-qcomp-tweak","status":"publish","type":"page","link":"https:\/\/maffez.com\/?page_id=4003","title":{"rendered":"Waldorf M &#8211; INSIDE BITS AND QCOMP TWEAK"},"content":{"rendered":"\n<p>Since Till Kopper has such a <a href=\"https:\/\/till-kopper.de\/waldorf-m.html\" target=\"_blank\" rel=\"noreferrer noopener\">great website<\/a> on the Waldorf M, I keep this one brief. In the first half I give a technical analysis of the M voice structure, and in the second half you  find a hardware modification for passband level loss compensation for the analogue filter. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"461\" src=\"https:\/\/maffez.com\/wp-content\/uploads\/2024\/05\/IMG_1942-1024x461.jpeg\" alt=\"\" class=\"wp-image-4653\" style=\"width:575px;height:auto\" srcset=\"https:\/\/maffez.com\/wp-content\/uploads\/2024\/05\/IMG_1942-1024x461.jpeg 1024w, https:\/\/maffez.com\/wp-content\/uploads\/2024\/05\/IMG_1942-300x135.jpeg 300w, https:\/\/maffez.com\/wp-content\/uploads\/2024\/05\/IMG_1942-768x346.jpeg 768w, https:\/\/maffez.com\/wp-content\/uploads\/2024\/05\/IMG_1942-1536x691.jpeg 1536w, https:\/\/maffez.com\/wp-content\/uploads\/2024\/05\/IMG_1942.jpeg 1620w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\"><strong>SOME BITS AND BOBS INSIDE THE M<\/strong><\/h2>\n\n\n\n<p>The Waldorf M is a wavetable plus analogue backend synthesiser, and this is clearly reflected int the circuit board layout. There\u2019s a Cirrus Logic CS42888 for converting the digital oscillator outputs to the analogue filter and VCAs, and four DAC8586 eight-channel DACs for controlling sound parameters (filter cutoff, filter Q, and VCA L\/R).<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"580\" height=\"725\" src=\"https:\/\/maffez.com\/wp-content\/uploads\/2023\/10\/IMG_1163.jpeg\" alt=\"\" class=\"wp-image-4005\" style=\"width:301px;height:377px\" srcset=\"https:\/\/maffez.com\/wp-content\/uploads\/2023\/10\/IMG_1163.jpeg 580w, https:\/\/maffez.com\/wp-content\/uploads\/2023\/10\/IMG_1163-240x300.jpeg 240w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/><figcaption class=\"wp-element-caption\">shoddy pic, sorry<\/figcaption><\/figure>\n<\/div>\n\n\n<p>Of course, the VCF-VCA interests me most as its here where a lot of the sound character happens. Apparently, Vladimir, the brains behind this machine, had proposed different kinds of VCF-VCA backends at a prototype stage, and eventually Walldorf opted for the SSI 2144 ladder filter, a remake of the SMM2044 as used in the PPG Wave 2.3, amongst other synths. For VCAs, SSI2164 are used (one for left and one for right, so you get panning for individual voices).<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"465\" src=\"https:\/\/maffez.com\/wp-content\/uploads\/2023\/10\/1694792422840-1024x465.jpg\" alt=\"\" class=\"wp-image-4006\" srcset=\"https:\/\/maffez.com\/wp-content\/uploads\/2023\/10\/1694792422840-1024x465.jpg 1024w, https:\/\/maffez.com\/wp-content\/uploads\/2023\/10\/1694792422840-300x136.jpg 300w, https:\/\/maffez.com\/wp-content\/uploads\/2023\/10\/1694792422840-768x348.jpg 768w, https:\/\/maffez.com\/wp-content\/uploads\/2023\/10\/1694792422840-1536x697.jpg 1536w, https:\/\/maffez.com\/wp-content\/uploads\/2023\/10\/1694792422840.jpg 1931w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n<\/div>\n\n\n<p>The SSI2164 makes a good clean VCA (I like them in my Prophet 5 Rev4 module too), and is used here in a linearised fashion (see Mick Irvin\u2019s ideas <a rel=\"noreferrer noopener\" href=\"http:\/\/www.sdiy.org\/philgallo\/mgbvca.html\" target=\"_blank\">described in detail by Phil Gallo<\/a>).&nbsp;<\/p>\n\n\n\n<p>Yet while the SSI2144 is a quite popular a filter, I personally would have preferred a 2140 or at least an option for level loss compensation, so that all sonic beef is retained when resonance goes up. There are well documented ways to achieve the latter (see  <a href=\"https:\/\/www.soundsemiconductor.com\/downloads\/ssi2144datasheet.pdf\" data-type=\"link\" data-id=\"https:\/\/www.soundsemiconductor.com\/downloads\/ssi2144datasheet.pdf\">SSI datasheet<\/a>, but also Sequential\u2018s Rev4), but Waldorf went nope (for reasons of space). First I assumed that this could even be delivered by a firmware update, yet someone with all the inside knowledge soon got in touch and explained to me how this would create unwanted artefacts in the sound. So\u2026 <\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>TINKERING WITH ANALOGUE QCOMP<\/strong><\/h2>\n\n\n\n<p>A couple of different sounds with QCOMP in place:<\/p>\n\n\n\n<figure class=\"wp-block-audio\"><audio controls src=\"https:\/\/maffez.com\/wp-content\/uploads\/2023\/10\/qcomp_M_diverse.mp3\"><\/audio><\/figure>\n\n\n\n<p>Impatient and curious (or crazy), I wanted to see what\u2019s what here in terms of passband level loss compensation. The <a href=\"https:\/\/www.google.com\/url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=&amp;cad=rja&amp;uact=8&amp;ved=2ahUKEwjp1qG0mumBAxVHhP0HHYVjAFkQFnoECA8QAQ&amp;url=https%3A%2F%2Fwww.soundsemiconductor.com%2Fdownloads%2Fssi2144datasheet.pdf&amp;usg=AOvVaw0-kenEVvZDJK2ItRvAgPiS&amp;opi=89978449\">SSI <\/a><a rel=\"noreferrer noopener\" href=\"https:\/\/www.soundsemiconductor.com\/downloads\/ssi2144datasheet.pdf\" target=\"_blank\">datasheet<\/a> describes an elegant (actually two) method for an output compensation scheme. By increasing resonance you increase the filter output level. Curious how an input compensation scheme would work, i.e. increasing resonance also increases filter input level, I somehow ended up with a quick and dirty trick used in old Wah-Wah pedals and the Roland TR909. At first I though this would result in nonsense but was then surprised how well this works here\u2026<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"844\" src=\"https:\/\/maffez.com\/wp-content\/uploads\/2023\/10\/Screenshot-2023-10-09-at-16.25.22-1024x844.png\" alt=\"\" class=\"wp-image-4007\" srcset=\"https:\/\/maffez.com\/wp-content\/uploads\/2023\/10\/Screenshot-2023-10-09-at-16.25.22-1024x844.png 1024w, https:\/\/maffez.com\/wp-content\/uploads\/2023\/10\/Screenshot-2023-10-09-at-16.25.22-300x247.png 300w, https:\/\/maffez.com\/wp-content\/uploads\/2023\/10\/Screenshot-2023-10-09-at-16.25.22-768x633.png 768w, https:\/\/maffez.com\/wp-content\/uploads\/2023\/10\/Screenshot-2023-10-09-at-16.25.22.png 1051w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n<\/div>\n\n\n<p>What happens: you use a NPN transistor across the resistor attenuating the incoming audio to the filter. The control voltage for opening this transistor is the same that controls the resonance level circuit inside the SSI2144. The effect, then, is that overall resistance\/attenuation into the filter is decreased when resonance is increased. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"575\" height=\"309\" src=\"https:\/\/maffez.com\/wp-content\/uploads\/2023\/10\/Screenshot-2023-10-09-at-16.25.49.png\" alt=\"\" class=\"wp-image-4008\" style=\"width:389px;height:209px\" srcset=\"https:\/\/maffez.com\/wp-content\/uploads\/2023\/10\/Screenshot-2023-10-09-at-16.25.49.png 575w, https:\/\/maffez.com\/wp-content\/uploads\/2023\/10\/Screenshot-2023-10-09-at-16.25.49-300x161.png 300w\" sizes=\"auto, (max-width: 575px) 100vw, 575px\" \/><\/figure>\n<\/div>\n\n\n<p><strong>WORDS OF CAUTION<\/strong>: transistors do not really work in a linear fashion and that a sweeter way of doing this would be to use OTA cells, but as stated, oddly, this minimum setup here has been working quite well. The DAC outputs are protected and the control voltage at the q-vca resistor of the 2144 ranges between zero and some +2volts, so no excess\/overshoot is to be expected. Note that collector and emitter in the additional NPN transistor are connected in opposite fashion, as this stabilises the circuit (see also comment #1 <a href=\"https:\/\/www.diystompboxes.com\/smfforum\/index.php?topic=122330.0\" target=\"_blank\" rel=\"noreferrer noopener\">here<\/a>). This kind of trick is used in quiet a couple of old circuits, and to be honest, Waldorf\u2019s bare minimum approach kinda tickled me to go minimal style in response. <\/p>\n\n\n\n<p><strong>AUDIO RECORDINGS OF RESULTS<\/strong><\/p>\n\n\n\n<p>The following clips demonstrate before\/after QCOMP modification. The basic sound and chord\/line is always the same.<\/p>\n\n\n\n<p>Clip one is just a single note with square wave on one oscillator. The note is held and then resonance puled up and down again. The second pass shows QCOMP.<\/p>\n\n\n\n<figure class=\"wp-block-audio\"><audio controls src=\"https:\/\/maffez.com\/wp-content\/uploads\/2023\/10\/RMODFIN_SWEEP_NO_YES.mp3\"><\/audio><\/figure>\n\n\n\n<p>In the second clip I repeat a three note chord w the same basic sound. Between chords I pull up resonance by a value of 10 (in the end I jump from 110 to 128, *YOLO!*). Then I start again at zero with a second pass that does the same thing, except with QCOMP engaged.<\/p>\n\n\n\n<figure class=\"wp-block-audio\"><audio controls src=\"https:\/\/maffez.com\/wp-content\/uploads\/2023\/10\/RMODFIN_NO_YES_1.mp3\"><\/audio><\/figure>\n\n\n\n<p>This this clip again does three note chord with resonance being pulled up by a value of 10 &#8211; this time, however, you hear <strong>before<\/strong> and <strong>after<\/strong> side by side, i.e. unmodded and modded audio alternates so that first chord is unmodded, second modded, third unmodded etc. <\/p>\n\n\n\n<figure class=\"wp-block-audio\"><audio controls src=\"https:\/\/maffez.com\/wp-content\/uploads\/2023\/10\/RMODFIN_ALTERNATE_NO_YES.mp3\"><\/audio><\/figure>\n\n\n\n<p>Visualised this looks like this in terms of levels. Notes marked azure are with QCOMP (and notes marked black are without QCOMP. (Lesser QCOMP value was used here than in the recorded clips above, so the initial level drop on azure notes is less pronounced in the final version).&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"451\" src=\"https:\/\/maffez.com\/wp-content\/uploads\/2023\/10\/Waldorf_M_QCOMP_4-1024x451.jpg\" alt=\"\" class=\"wp-image-4012\" srcset=\"https:\/\/maffez.com\/wp-content\/uploads\/2023\/10\/Waldorf_M_QCOMP_4-1024x451.jpg 1024w, https:\/\/maffez.com\/wp-content\/uploads\/2023\/10\/Waldorf_M_QCOMP_4-300x132.jpg 300w, https:\/\/maffez.com\/wp-content\/uploads\/2023\/10\/Waldorf_M_QCOMP_4-768x338.jpg 768w, https:\/\/maffez.com\/wp-content\/uploads\/2023\/10\/Waldorf_M_QCOMP_4-1536x677.jpg 1536w, https:\/\/maffez.com\/wp-content\/uploads\/2023\/10\/Waldorf_M_QCOMP_4.jpg 1636w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n<\/div>\n\n\n<p>Right, that much so far. NB this modification is for private use (and experimental in nature &#8211; I hope SSI don&#8217;t scold me for this!). In creative commons lingo: the above QCOMP modification is published as CC-BY-SA-NC (maffez, 9 October 2023).<\/p>\n\n\n\n<p>Here are some more musical demos with QCOMP active on each voice:<\/p>\n\n\n\n<figure class=\"wp-block-audio\"><audio controls src=\"https:\/\/maffez.com\/wp-content\/uploads\/2024\/05\/QCOMP_Diverse.mp3\"><\/audio><\/figure>\n\n\n\n<figure class=\"wp-block-audio\"><audio controls src=\"https:\/\/maffez.com\/wp-content\/uploads\/2024\/05\/qcomp_MW1.mp3\"><\/audio><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">QCOMP ADDON BOARD<\/h2>\n\n\n\n<p>At the start of 2024, a couple more people expressed interest in this, so I started toying around with a concept for a fixed QCOMP mod board. Fixed as in QCOMP is and remains active. (I see more disadvantages in having this as an on\/off thing, plus I personally like the QCOMP character).<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Waldorf M - QCOMP Board Demo\" width=\"525\" height=\"295\" src=\"https:\/\/www.youtube.com\/embed\/aP7geKJzFds?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>I made a simple PCB that can serve a 8 voice or a 16 voice M &#8211; unused parts are simply not connected. The little extension board is placed near the SD card reader, and connections are made by p2p wiring. The latter has the advantage that you can undo this mod 100&amp; if you ever want to, and it also leaves the main voice circuits fully intact, so no need for complicated surgery.<\/p>\n\n\n\n<p>As for installing one of these, LED man (well known in the DIY community) ofdered to be of service: <a href=\"https:\/\/www.diysynth.de\/shop_content.php?coID=7\">https:\/\/www.diysynth.de\/shop_content.php?coID=7<\/a> (though they don&#8217;t seem to be very responsive&#8230;) Alternatively, here are the GERBER files:<\/p>\n\n\n\n<div class=\"wp-block-file\"><a id=\"wp-block-file--media-7cc3fad2-1a10-4c8f-9c83-44ae63a9acdc\" href=\"https:\/\/maffez.com\/wp-content\/uploads\/2024\/11\/M_QCMP_PRODFILES.zip\">M_QCMP_PRODFILES<\/a><a href=\"https:\/\/maffez.com\/wp-content\/uploads\/2024\/11\/M_QCMP_PRODFILES.zip\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-7cc3fad2-1a10-4c8f-9c83-44ae63a9acdc\">Download<\/a><\/div>\n\n\n\n<p>NB I do not earn any money by this but expect folks to donate a bit either to Saffron Musik (UK) or the Women\u2018s Audio Mission. Also, you install this mod at your own risk.<\/p>\n\n\n\n<div data-wp-interactive=\"core\/file\" class=\"wp-block-file aligncenter\"><object data-wp-bind--hidden=\"!state.hasPdfPreview\" hidden class=\"wp-block-file__embed\" data=\"https:\/\/maffez.com\/wp-content\/uploads\/2024\/05\/M_QCOMP_INSTALLATION.pdf\" type=\"application\/pdf\" style=\"width:100%;height:600px\" aria-label=\"Embed of M_QCOMP_INSTALLATION.\"><\/object><a id=\"wp-block-file--media-924c912e-a52e-4d3b-8c3b-ae478e38780e\" href=\"https:\/\/maffez.com\/wp-content\/uploads\/2024\/05\/M_QCOMP_INSTALLATION.pdf\">M_QCOMP_INSTALLATION<\/a><a href=\"https:\/\/maffez.com\/wp-content\/uploads\/2024\/05\/M_QCOMP_INSTALLATION.pdf\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-924c912e-a52e-4d3b-8c3b-ae478e38780e\">Download<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Since Till Kopper has such a great website on the Waldorf M, I keep this one brief. In the first half I give a technical analysis of the M voice structure, and in the second half you find a hardware modification for passband level loss compensation for the analogue filter. SOME BITS AND BOBS INSIDE &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/maffez.com\/?page_id=4003\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Waldorf M &#8211; INSIDE BITS AND QCOMP TWEAK&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-4003","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/maffez.com\/index.php?rest_route=\/wp\/v2\/pages\/4003","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/maffez.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/maffez.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/maffez.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/maffez.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4003"}],"version-history":[{"count":1,"href":"https:\/\/maffez.com\/index.php?rest_route=\/wp\/v2\/pages\/4003\/revisions"}],"predecessor-version":[{"id":4920,"href":"https:\/\/maffez.com\/index.php?rest_route=\/wp\/v2\/pages\/4003\/revisions\/4920"}],"wp:attachment":[{"href":"https:\/\/maffez.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4003"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}