{"id":3613,"date":"2026-03-04T11:50:27","date_gmt":"2026-03-04T10:50:27","guid":{"rendered":"https:\/\/vizZzion.org\/blog\/?p=3613"},"modified":"2026-03-04T13:24:41","modified_gmt":"2026-03-04T12:24:41","slug":"sound-reactive-sideboard","status":"publish","type":"post","link":"https:\/\/vizZzion.org\/blog\/2026\/03\/sound-reactive-sideboard\/","title":{"rendered":"Sound-reactive Sideboard"},"content":{"rendered":"<div class=\"wp-block-image\">\n<figure class=\"alignright size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"400\" height=\"300\" src=\"https:\/\/vizZzion.org\/blog\/wp-content\/uploads\/2026\/03\/preview-vibe-1.jpg\" alt=\"Sound-reactive sideboard\" class=\"wp-image-3616\" srcset=\"https:\/\/vizZzion.org\/blog\/wp-content\/uploads\/2026\/03\/preview-vibe-1.jpg 400w, https:\/\/vizZzion.org\/blog\/wp-content\/uploads\/2026\/03\/preview-vibe-1-300x225.jpg 300w\" sizes=\"auto, (max-width: 400px) 100vw, 400px\" \/><figcaption class=\"wp-element-caption\">Sound-reactive sideboard<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">A project that I had planned for quite some time came to fruition last year, now I finally found time to document the result. My livingroom sideboard looked messy and kind of boring while not blending in anymore with the updated style of my living room. I wanted to turn it into a striking centerpiece of the room.<br>The plan was to install a sound-reactive lighting system. I wanted the light effects to be detailed and not disturbed by ambient sound in the living room, i.e. it sound not react to people&#8217;s voices, just the music playing.<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video controls src=\"https:\/\/vizzzion.org\/stuff\/video\/vibekast-needtofeelloved.mp4\" playsinline><\/video><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">My living room sideboard is an off-the-shelf product from IKEA that I bought many years ago. It didn&#8217;t have doors installed, but I was delighted that I could still buy matching doors with windows in them.<br>To realize the light effects, I&#8217;ve installed frosted plexi glass inside the windows.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Getting technical&#8230;<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">To control the LEDs, I&#8217;m using an ESP32-based <strong>LED controller<\/strong> with a line-in module and an ADC (analog-digital converter). After some experimenting, I&#8217;ve found <a href=\"https:\/\/www.tinytronics.nl\/nl\/development-boards\/microcontroller-boards\/met-wi-fi\/ai-thinker-esp32-audio-kit-met-wi-fi-en-bluetooth\" target=\"_blank\" rel=\"noreferrer noopener\">this board<\/a> to work well. I&#8217;ve connected 6 WS2812B LED strips to 3 pins and installed them with an aluminium profile into the doors. The frosted windows and profiles diffuse the light nicely so you can&#8217;t make out individual LEDs really.<br>On the software side, I&#8217;m using a <a href=\"https:\/\/mm.kno.wled.ge\/\" target=\"_blank\" rel=\"noreferrer noopener\">sound-reactive port of the WLED<\/a> project. WLED is Free and Open Source software,  of course. Though its user interface can be a little unwieldy, it&#8217;s also very powerful and integrates nicely with homeassistant, so it can be controlled automatically.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/vizZzion.org\/blog\/wp-content\/uploads\/2026\/03\/IMG20251030201148-1024x768.jpg\" alt=\"Inside view\" class=\"wp-image-3611\" srcset=\"https:\/\/vizZzion.org\/blog\/wp-content\/uploads\/2026\/03\/IMG20251030201148-1024x768.jpg 1024w, https:\/\/vizZzion.org\/blog\/wp-content\/uploads\/2026\/03\/IMG20251030201148-400x300.jpg 400w, https:\/\/vizZzion.org\/blog\/wp-content\/uploads\/2026\/03\/IMG20251030201148-768x576.jpg 768w, https:\/\/vizZzion.org\/blog\/wp-content\/uploads\/2026\/03\/IMG20251030201148-1536x1152.jpg 1536w, https:\/\/vizZzion.org\/blog\/wp-content\/uploads\/2026\/03\/IMG20251030201148-300x225.jpg 300w, https:\/\/vizZzion.org\/blog\/wp-content\/uploads\/2026\/03\/IMG20251030201148.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Inside view<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The ESP32, being a rather powerful dual-core microcontroller, can process the incoming audio signal on one core (using fast-fourier transformation) and compute complex LED effects on the other core. Rendering up to 200 frames per second to 2 times 210 LEDs is no problem while power consumption of just the controller stays well under 1W. Pretty impressive! Depending on the LED effects (number of LEDs lit up at a given time and their colors), the whole thing hardly ever reaches 10W of power consumption.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/vizZzion.org\/blog\/wp-content\/uploads\/2026\/03\/controller-1024x576.jpg\" alt=\"ESP32-based LED controller\" class=\"wp-image-3607\" srcset=\"https:\/\/vizZzion.org\/blog\/wp-content\/uploads\/2026\/03\/controller-1024x576.jpg 1024w, https:\/\/vizZzion.org\/blog\/wp-content\/uploads\/2026\/03\/controller-400x225.jpg 400w, https:\/\/vizZzion.org\/blog\/wp-content\/uploads\/2026\/03\/controller-768x432.jpg 768w, https:\/\/vizZzion.org\/blog\/wp-content\/uploads\/2026\/03\/controller-1536x864.jpg 1536w, https:\/\/vizZzion.org\/blog\/wp-content\/uploads\/2026\/03\/controller-300x169.jpg 300w, https:\/\/vizZzion.org\/blog\/wp-content\/uploads\/2026\/03\/controller.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">ESP32-based LED controller<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Another functional goal of this project was to solve <strong>cooling<\/strong> issues of <a href=\"https:\/\/www.hifiengine.com\/manual_library\/arcam\/diva-a90.shtml\" data-type=\"link\" data-id=\"https:\/\/www.hifiengine.com\/manual_library\/arcam\/diva-a90.shtml\" target=\"_blank\" rel=\"noreferrer noopener\">my amplifier<\/a> once and for all. The amp would run really hot and shut off after playing at higher volume for some time. I installed a bunch of 12cm fans which suck air through the amplifier and blow it out on the backside. Both amp and and fans are connected to smartplugs. I turned to my <a href=\"https:\/\/www.home-assistant.io\/\" target=\"_blank\" rel=\"noreferrer noopener\">homeassistant<\/a> and set up an automation which turns the fans on whenever the amp&#8217;s power consumption reaches a certain level. This works really nicely, since the fans never spin at lower volumes (when you could hear them through the music) and keep everything cool and running stable at higher volume when it&#8217;s necessary &#8212; without human interaction.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/vizZzion.org\/blog\/wp-content\/uploads\/2026\/03\/IMG20251028175841-1024x768.jpg\" alt=\"Cooling system\" class=\"wp-image-3608\" srcset=\"https:\/\/vizZzion.org\/blog\/wp-content\/uploads\/2026\/03\/IMG20251028175841-1024x768.jpg 1024w, https:\/\/vizZzion.org\/blog\/wp-content\/uploads\/2026\/03\/IMG20251028175841-400x300.jpg 400w, https:\/\/vizZzion.org\/blog\/wp-content\/uploads\/2026\/03\/IMG20251028175841-768x576.jpg 768w, https:\/\/vizZzion.org\/blog\/wp-content\/uploads\/2026\/03\/IMG20251028175841-1536x1152.jpg 1536w, https:\/\/vizZzion.org\/blog\/wp-content\/uploads\/2026\/03\/IMG20251028175841-300x225.jpg 300w, https:\/\/vizZzion.org\/blog\/wp-content\/uploads\/2026\/03\/IMG20251028175841.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Cooling system<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Walnut finish<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The outer shell of the sideboard is made of walnut wooden panels with an oil and varnish finish, thanks to my friend Joris. The oil gives it a darker look and accentuates the grain, matching the speaker system. The matte varnish finish (<a href=\"https:\/\/skylt.nl\/\" data-type=\"link\" data-id=\"https:\/\/skylt.nl\/\" target=\"_blank\" rel=\"noreferrer noopener\">Skylt<\/a>, highly recommended for its durability and natural look)  allows me to sleep well even if people put their drinks on it.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/vizZzion.org\/blog\/wp-content\/uploads\/2026\/03\/IMG20251030201057-1024x768.jpg\" alt=\"Done and dusted\" class=\"wp-image-3610\" srcset=\"https:\/\/vizZzion.org\/blog\/wp-content\/uploads\/2026\/03\/IMG20251030201057-1024x768.jpg 1024w, https:\/\/vizZzion.org\/blog\/wp-content\/uploads\/2026\/03\/IMG20251030201057-400x300.jpg 400w, https:\/\/vizZzion.org\/blog\/wp-content\/uploads\/2026\/03\/IMG20251030201057-768x576.jpg 768w, https:\/\/vizZzion.org\/blog\/wp-content\/uploads\/2026\/03\/IMG20251030201057-1536x1152.jpg 1536w, https:\/\/vizZzion.org\/blog\/wp-content\/uploads\/2026\/03\/IMG20251030201057-300x225.jpg 300w, https:\/\/vizZzion.org\/blog\/wp-content\/uploads\/2026\/03\/IMG20251030201057.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Done and dusted<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">I love it when a plan comes together!<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">I&#8217;m really happy with the result. While I had thought it out for a long time already, it&#8217;s always a lot more impressive when you see the final result in action.<br>The WLED firmware allows me to create interesting light effects. I can run the 3 doors as one, but also easily split them up into segments so each door panel renders its own effect. WLED has ca. 200 different LED effects, many of them react to sound. Each effect can be combined with one of 50 color palettes, some of the palettes are sound-reactive in their own right leading to a very dynamic display.<br>One cool feature is that the processed sound data can be broadcast across the network (over UDP) and received by other WLED controllers, so I can have multiple LED displays in the house, each rendering their own effect to the music, creating a more immersive experience.<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video controls src=\"https:\/\/vizzzion.org\/stuff\/video\/vibe-demo.mp4\" playsinline><\/video><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><br><br><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A project that I had planned for quite some time came to fruition last year, now I finally found time to document the result. My livingroom sideboard looked messy and kind of boring while not blending in anymore with the updated style of my living room. I wanted to turn it into a striking centerpiece&hellip; <a class=\"more-link\" href=\"https:\/\/vizZzion.org\/blog\/2026\/03\/sound-reactive-sideboard\/\">Continue reading <span class=\"screen-reader-text\">Sound-reactive Sideboard<\/span> <span class=\"meta-nav\" aria-hidden=\"true\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[26,22,41,29,44,10,42],"tags":[6],"class_list":["post-3613","post","type-post","status-publish","format-standard","hentry","category-design","category-english","category-home-automation","category-kde","category-lighting","category-music","category-smartlights","tag-personal"],"_links":{"self":[{"href":"https:\/\/vizZzion.org\/blog\/wp-json\/wp\/v2\/posts\/3613","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vizZzion.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vizZzion.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vizZzion.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vizZzion.org\/blog\/wp-json\/wp\/v2\/comments?post=3613"}],"version-history":[{"count":5,"href":"https:\/\/vizZzion.org\/blog\/wp-json\/wp\/v2\/posts\/3613\/revisions"}],"predecessor-version":[{"id":3620,"href":"https:\/\/vizZzion.org\/blog\/wp-json\/wp\/v2\/posts\/3613\/revisions\/3620"}],"wp:attachment":[{"href":"https:\/\/vizZzion.org\/blog\/wp-json\/wp\/v2\/media?parent=3613"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vizZzion.org\/blog\/wp-json\/wp\/v2\/categories?post=3613"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vizZzion.org\/blog\/wp-json\/wp\/v2\/tags?post=3613"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}