{"id":1485,"date":"2024-12-02T15:34:50","date_gmt":"2024-12-02T15:34:50","guid":{"rendered":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/2024\/12\/02\/a-beginners-guide-to-building-outdoor-light-shows-synchronized-to-music-with-open-source-tools\/"},"modified":"2024-12-02T15:34:50","modified_gmt":"2024-12-02T15:34:50","slug":"a-beginners-guide-to-building-outdoor-light-shows-synchronized-to-music-with-open-source-tools","status":"publish","type":"post","link":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/2024\/12\/02\/a-beginners-guide-to-building-outdoor-light-shows-synchronized-to-music-with-open-source-tools\/","title":{"rendered":"A Beginner\u2019s Guide to Building Outdoor Light Shows Synchronized to Music with Open Source Tools"},"content":{"rendered":"<p>Outdoor light displays are a fun holiday tradition \u2014 from simple light strings hung from the eaves to elaborate scenes that <a href=\"https:\/\/en.wikipedia.org\/wiki\/The_Great_Christmas_Light_Fight\" target=\"_blank\" rel=\"noopener\">bring out your competitive spirit<\/a>. If using open source tools, thousands of feet of electrical cables, custom controllers, and your favorite music to build complex projects appeals to you, then the holiday season offers the perfect opportunity to indulge your creative passion.\u00a0<\/p>\n<p>I personally run home <a href=\"https:\/\/instagram.com\/walnutlanelights\" target=\"_blank\" rel=\"noopener\">light shows<\/a> at Halloween and Christmas that feature up to 30,000 individually addressable LED lights synchronized with dozens of different songs. It\u2019s been an interesting learning journey over the past five years, but it is also one that almost anyone can pursue, regardless of technical ability. Read on for tips on how to make a display that\u2019s the highlight of your neighborhood.\u00a0<\/p>\n<h2 class=\"wp-block-heading\">Getting started with outdoor light shows<\/h2>\n<p>As you might expect, light shows are built using a combination of hardware and software. The hardware includes the lights, props, controllers, and cabling. On the software side, there are different tools for the programming, also called sequencing, of the lights as well as the playback of the show.\u00a0<\/p>\n<p><a href=\"https:\/\/www.docker.com\/wp-content\/uploads\/2024\/11\/coleman_holiday-lights_f1-scaled.jpg\"><\/a>Figure 1: Light show hardware includes the lights, props, controllers, and cabling. <\/p>\n<h2 class=\"wp-block-heading\">Hardware requirements<\/h2>\n<h3 class=\"wp-block-heading\">Lights<\/h3>\n<p>Let\u2019s look more closely at the hardware behind the scenes starting with the lights. Multiple types of lights can be used in displays, but I\u2019ll keep it simple and focus on the most popular choice. Most shows are built around 12mm RGB LED lights that support the WS2811 protocol, often referred to as pixels or nodes. Generally, these are not available at retail stores. That means you\u2019ll need to order them online, and I recommend choosing a vendor that specializes in light displays. I have purchased lights from a few different vendors, but recently I\u2019ve been using <a href=\"https:\/\/wallyslights.com\/\" target=\"_blank\" rel=\"noopener\">Wally\u2019s Lights<\/a>, <a href=\"https:\/\/visionarylightshows.com\/\" target=\"_blank\" rel=\"noopener\">Visionary Light Shows<\/a>, and <a href=\"https:\/\/yourpixelstore.com\/\" target=\"_blank\" rel=\"noopener\">Your Pixel Store<\/a>.\u00a0\u00a0<\/p>\n<h3 class=\"wp-block-heading\">Props<\/h3>\n<p>The lights are mounted into different props \u2014 such as a spider for Halloween or a snowflake for the winter holidays. You can either purchase these props, which are usually made out of the same plastic cardboard material used in yard signs, or you can make them yourself. Very few vendors sell pre-built props, so be ready to push the pixels by hand \u2014 yes, in my display either I or someone in my family pushed each of the 30,000 lights into place when we initially built the props. I get most of my props from<a href=\"https:\/\/efl-designs.com\/\" target=\"_blank\" rel=\"noopener\"> EFL Designs<\/a>, <a href=\"https:\/\/gilbertengineeringusa.com\/\" target=\"_blank\" rel=\"noopener\">Gilbert Engineering<\/a>, or <a href=\"https:\/\/boscoyostudio.com\/\" target=\"_blank\" rel=\"noopener\">Boscoyo Studio<\/a>.\u00a0<\/p>\n<p><a href=\"https:\/\/www.docker.com\/wp-content\/uploads\/2022\/08\/coleman_holiday-lights_f2-scaled.jpg\"><\/a>Figure 2: The lights are mounted into different props, which you can purchase or make yourself.<\/p>\n<h3 class=\"wp-block-heading\">Controllers<\/h3>\n<p>Once your props are ready to go, you\u2019ll need something to drive them. This is where controllers come in (Figure 3). Like the props and lights, you can get your controllers from various specialized vendors and, to a large extent, you can mix and match different brands in the same show because they all speak the same protocols to control the pixels (usually E1.31 or DDP).\u00a0<\/p>\n<p>You can purchase controllers that are ready to run, or you can buy the individual components and build your own boxes \u2014 I grew up building PCs, so I love this degree of flexibility. However, I do tend to buy pre-configured controllers, because I like having a warranty from the manufacturer. My controllers all come from <a href=\"https:\/\/www.holidaycoro.com\/\" target=\"_blank\" rel=\"noopener\">HolidayCoro<\/a>, but<a href=\"https:\/\/pixelcontroller.com\/store\/\" target=\"_blank\" rel=\"noopener\"> Falcon controllers<\/a> are also popular.<\/p>\n<p>Figure 3: Once your props are ready to go, you\u2019ll need a controller. <\/p>\n<p>The number of controllers you need depends on the number of lights in your show. Most controllers have multiple outputs, and each output can drive a certain number of lights. I typically plan for about 400 lights per output. Plus, I use about three main controllers and four receiver boxes. Note that long-range receivers are a way of extending the distance you can place lights from the main controller, but this is more of an advanced topic and not one I\u2019ll cover in this introductory article.<\/p>\n<h3 class=\"wp-block-heading\">Cables<\/h3>\n<p>Although controllers are powered by standard household outlets, the connection from the controllers to the lights happens over specialized cabling. These extension cables contain three wires. Two are used to send power to the lights (either 5v or 12v), and a third is used to send data. Basically, this third wire sends instructions like \u201clight 1,232 turn green for .5 seconds then fade to off over .25 seconds.\u201d You can get these extension cables from any vendor that sells pixels.\u00a0<\/p>\n<p>Additionally, all of the controllers need to be on the same Ethernet network. Many folks run their shows on wireless networks, but I prefer a wired setup for increased performance and reliability.\u00a0<\/p>\n<h2 class=\"wp-block-heading\">Software and music<\/h2>\n<p>At this point, you have a bunch of props with lights connected to networked controllers via specialized cabling. But, how do you make them dance? That\u2019s where the software comes in.<\/p>\n<h3 class=\"wp-block-heading\">xLights<\/h3>\n<p>Many hobbyists use <a href=\"http:\/\/xlights.org\/\" target=\"_blank\" rel=\"noopener\">xLights<\/a> to program their lights. This software is open source and available for Mac, Windows, and Linux, and it works with three basic primitives: props, effects, and time. You can choose what effect you want to apply to a given prop at a given time (Figure 4). The timing of the effect is almost always aligned with the song you\u2019ve chosen. For example, you might flash snowflakes off and on in synchronization with the drum beat of a song.\u00a0<\/p>\n<p><a href=\"https:\/\/www.docker.com\/wp-content\/uploads\/2024\/11\/F1-Programming-lights.png\" target=\"_blank\" rel=\"noopener\"><\/a>Figure 4: Programming lights.<\/p>\n<h3 class=\"wp-block-heading\">Music<\/h3>\n<p>If this step sounds overwhelming to you, you\u2019re not alone. In fact, I don\u2019t sequence my own songs. I purchase them from different vendors, who create sequences for generic setups with a wide variety of props. I then import them and map them to the different elements that I actually use in my show. In terms of time, professionals can spend many hours to animate one minute of a song. I generally spend about two hours mapping an existing sequence to my show\u2019s layout. My favorite sequence vendors include<a href=\"https:\/\/bflightshows.com\/\" target=\"_blank\" rel=\"noopener\"> BF Light Shows<\/a>,<a href=\"https:\/\/www.xtremesequences.com\/\" target=\"_blank\" rel=\"noopener\"> xTreme Sequences<\/a>, and <a href=\"https:\/\/magicallightshows.com\/\" target=\"_blank\" rel=\"noopener\">Magical Light Shows<\/a>.\u00a0<\/p>\n<h3 class=\"wp-block-heading\">Falcon Player<\/h3>\n<p>Once you have a sequence built, you use another piece of software to send that sequence to your show controllers. Some controllers have this software built in, but most people I know use another open source application, <a href=\"https:\/\/github.com\/FalconChristmas\/fpp\" target=\"_blank\" rel=\"noopener\">Falcon Player<\/a> (FPP), to perform this task. Not only can FPP be run on a Raspberry Pi, but it also is shipped as a <a href=\"https:\/\/hub.docker.com\/r\/falconchristmas\/fpp\/tags\" target=\"_blank\" rel=\"noopener\">Docker image<\/a>! FPP includes the ability to play back your sequence as well as to build playlists and set up a show schedule for automated playback.\u00a0<\/p>\n<h2 class=\"wp-block-heading\">Put it all together and flip the switch<\/h2>\n<p>When everything is put together, you should have a system similar to Figure 5:<\/p>\n<p><a href=\"https:\/\/www.docker.com\/wp-content\/uploads\/2024\/11\/F2-Light-setup.png\" target=\"_blank\" rel=\"noopener\"><\/a>Figure 5: System overview.<\/p>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=6tK10WH8lGI\" target=\"_blank\" rel=\"noopener\">This example <\/a>shows a light display in action.\u00a0<\/p>\n<div class=\"wp-block-embed__wrapper\">\n<\/div>\n<h3 class=\"wp-block-heading\">xLights community support<\/h3>\n<p>Although building your own light show may seem like a daunting task, fear not; you are not alone. I have yet to mention the most important part of this whole process: the community. The xLights community is one of the most helpful I\u2019ve ever been part of. You can get questions answered via the<a href=\"https:\/\/www.facebook.com\/groups\/xLights\" target=\"_blank\" rel=\"noopener\"> official Facebook group<\/a> as well through as other groups dedicated to specific sequence and controller vendors. Additionally, a<a href=\"https:\/\/zoom.us\/j\/175801909?pwd=ZU1hNzM5bjJpOGZ1d1BOb1BzMUFndz09\" target=\"_blank\" rel=\"noopener\"> Zoom support meeting<\/a> runs 24\u00d77 and is staffed by hobbyists from across the globe. So, what are you waiting for? Go ahead and start planning your first holiday light show!<\/p>\n<h2 class=\"wp-block-heading\">Learn more<\/h2>\n<p>Subscribe to the <a href=\"https:\/\/www.docker.com\/newsletter-subscription\/\" target=\"_blank\" rel=\"noopener\">Docker Newsletter<\/a>.\u00a0<\/p>\n<p>Get the latest release of <a href=\"https:\/\/www.docker.com\/products\/docker-desktop\/\" target=\"_blank\" rel=\"noopener\">Docker Desktop<\/a>.<\/p>\n<p>Have questions? The <a href=\"https:\/\/www.docker.com\/community\/\" target=\"_blank\" rel=\"noopener\">Docker community is here to help<\/a>.<\/p>\n<p>New to Docker? <a href=\"https:\/\/docs.docker.com\/desktop\/\" target=\"_blank\" rel=\"noopener\">Get started<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>Outdoor light displays are a fun holiday tradition \u2014 from simple light strings hung from the eaves to elaborate scenes [&hellip;]<\/p>\n","protected":false},"author":0,"featured_media":0,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[4],"tags":[],"class_list":["post-1485","post","type-post","status-publish","format-standard","hentry","category-docker"],"_links":{"self":[{"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/posts\/1485","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/comments?post=1485"}],"version-history":[{"count":0,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/posts\/1485\/revisions"}],"wp:attachment":[{"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/media?parent=1485"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/categories?post=1485"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/tags?post=1485"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}