Hue Entertainment

Mid-year update, plus exciting news

Greetings! Kevin from Light DJ HQ here to share an update on what’s been happening with the app this year so far, and what’s on the horizon.

Light DJ: The Next Generation

First and foremost, let’s talk about what’s new in Light DJ v8.0 and how we got here.

When I first started making light apps back in 2014, my very first app was called HouseParty and it let users create simple tempo-based strobing patterns. At the time, only LIFX lights were fast enough support this effect (it would quickly crash Hue bridges), so when the first official “Light DJ” app was released, my focus was on creating built-in effects where I could have better control over the rate that the lights change.

By mid-2016 the app had grown enough that I decided it was time to re-integrate the effect builder into the app. This time it had bulb-level control of the lights so that users could create custom effects that could run on both LIFX & Hue without crashing the bridge. Though it’s received various updates the past few years to support Hue Entertainment and Nanoleaf, it’s otherwise played a minor role. It’s a complex tool and usually only the most adventurous of users will try their hand at making one. I hope to change that today with the introduction of the Community Content update - now users can share their custom creations with other Light DJ users around the world.

Since the beginning of the year, I’ve been reworking a lot of code on the back end to integrate custom effects, sheets, and playlists with the Light DJ Network cloud services platform. The content backup feature was released earlier this year so that you can switch devices without losing your config.

Now with v8.0 you can:

  • Easily manage & share your local custom effects, sheets, and playlists through the new Content Manager,

  • Browse community content and download it into your config

  • Preview & play community content right from the Content Browser

  • Assign and Generate icons for your sheets & playlists

IMG_3190.PNG
IMG_3191.PNG

If you've created a custom effect or sick playlist, I invite you to share it with the community to help grow the network of global light show content.

Also in v8.0, iPad users can now download different effect sheets that correspond to other iPad screens. To maintain a consistent user experience, each iPad has a different native sheet cell count based on its screen size and until now these haven't been cross-compatible. With v8.0, all effect sheets sizes are supported by every iPad. To use a different sized effect sheet, download a template from the sheets section in the Content Browser. I plan to offer fully configurable sheet sizing as a mini-update in a future version.

If you haven’t already joined the beta, head over the Beta page and sign up for the link for your version. Sorry Android users, this feature is iOS only at this time.

State of the App

While I had great intentions for some cool integrations this year, for some features it was not meant to be. LIFX Tiles were discontinued by the manufacturer, and it remains to be seen what will happen to the rest of the LIFX-Z line of products so I’m holding off integrating with it for now. The MacOS version didn’t have the library support I thought it did so I had planned to postpone it, but now with Apple Silicon coming soon-ish it doesn’t make sense to recode it at this time. Studio updates were also postponed as a result of the content updates and a number of breaking issues that needed fixing on the Android app. Porting the content changes to Android was supposed to be next on the list, however…

(+2)

Starting last year my wife and I began pursuing in-vitro fertilization (IVF) to help grow our family. In January we transferred two embryos and, gratefully, both attached. In early August my wife gave birth to twin babies, Mira and Miles, and both they and mom are healthy. As they’ve been spending their days in the NICU growing bigger and stronger, I’ve been feverishly coding and testing the latest update to make sure everything works great for everyone from the start, however once they are home I will take a bit of a break for some family time. Rest assured, the app will continue to grow and I will continue to support my users as I have over the past 5 years. A few points:

-Monthly bonus effects will continue as scheduled. I spent the early part of this year creating these for months ahead so that they’re all ready for you enjoy.

-If something in the app breaks due to OS changes, firmware updates, or other breaking bugs, it will have the highest priority. I will act quickly to get the app in working order ASAP. Shoot me an email if something’s not working for you.

-Emails will not be as immediate for the first few months as I focus on the babies. I will still try to read and answer to emails daily.

-I’ll continue to develop new features as time allows. I’ve been compiling a list of user requests and other features and my goal is to release these as mini-updates throughout the year. Even though these are smaller features, they will make a noticeable improvement the overall quality and usability of the app.

Thanks for reading this long-winded blog post. I can't wait to see what kind of content you guys can create. As always, if you have any suggestions for improvement send me an email or comment here. Happy sharing!

Creating stunning visuals using Hue Entertainment

fd-philips-hue-2-product-photos-14.jpg

As many of you know, I updated the Light DJ apps earlier this year to support the new Hue Entertainment API. It took just over a month to recreate all of Light DJs 30+ effects in the new format for both iOS and Android. Today I'd like to delve a bit deeper into what it takes to write effects for Hue Entertainment and how you can integrate this new technology into your projects.

The starting place for any Hue developer is the Hue Developer Portal at www.developers.meethue.com. Here you'll find all of the documentation on Hue APIs and guidance for application design. Once you create an account, you'll also need to accept the terms & conditions if you plan on using the Hue Entertainment Development Kit (recommended). The EDK handles bridge discovery & pairing, effect creation & rendering, and streaming to the bridge. If this all sounds complicated, it's not. Hue developed a Quick Start app that incorporates everything you need to start creating effects. (You'll get access to this once you accept the T&C).

Once you start the Quick Start app and pair it with your bridge you'll see two buttons for controlling the lights. The Randomize Lights button uses the legacy Hue API to set the lights to random colors. A typical legacy light command involves a target color and duration. For example, if a light is currently set to blue, you could send the bridge a command to set it to red over 3 seconds and the light will slowly fade from blue to red. If you don't have a need for high-performance or spatial effects this may be enough for your project since it's a bit easier to program for - just be sure you're not exceeding the 10 commands/sec limit on light changes (1 command/sec on groups) or the bridge may start rejecting your commands.

For more advanced effects you’ll need to use the EDK; the Explode button shows an example of this. This process is a bit more involved so I'll go further in detail here. Upon pressing Explode the app will first check to see if you've created an Entertainment Area. If not, it will create one automatically (though I recommend setting one up right from the Hue app so that you can position your lights correctly). Next, the app sets the bridge into streaming mode. This is necessary for the bridge to be able to listen to the UDP-type messages coming from the app. When in streaming mode, the bridge will ignore legacy Hue commands so you'll need to disable it when you're finished if you plan on controlling your lights through other apps. With streaming mode enabled, the app will call a function in the EDK to create an effect based on the parameters that you set. In this case, we're creating an Explosion Effect with an intense burst of color in one location that radiates outward. The effect object is added to the mixer, which renders the state of the lights for the entire Entertainment Area.

Unlike the legacy Hue commands which offer the ability to set individual light states, the EDK always controls the entire Entertainment Area and it will continually stream updates to the lights based on the effects that you add to the mixer. As the name implies, multiple effects can be mixed together with a combination of layers and color transparency.

Aside from the Explosion effect, there are other types of effects that you can create with Hue Entertainment, such as:

  • Area Effect - sets all of the lights in sub-area(s) of the Entertainment Area to a color or animation.

  • Multi-Channel Effect - sort of like 5.1 audio, you can define a separate channel for different animations. Light DJ typically uses these over Area Effects because I can’t always guarantee that users will have lights in every area. This effect distributes the channels evenly regardless of light locations in the Entertainment Area or how many lights the user has.

  • Light Source Effect - created a radial color animation from a specific location in the room. (An Explode Effect is a type of Light Source Effect.)

  • Light Iterator Effect - cycles through each of the lights in a room with a certain color or animation.

You can find more details on these effect types at http://developers.meethue.com/documentation/hue-edk-effect-creation including sample code and details on how to define animations.

For advanced users, there's also the ability to create your own fully custom effects, rendered by the EDK, by implementing the Color Animation Effect Delegate. By overriding the color(...), render(), and renderUpdate() functions you can set the color of each light every time the EDK requests a render (around 30 times/sec). If you plan on creating long-running effect sequences, there’s also a Sequence Effect and timeline functions that you can use to program and chain multiple effects over a longer duration.

Light DJ takes advantage of all of these effect types in various places throughout the app. For example, the Strobe Cycle effect uses a Multi-Channel effect where each channel is defined by the four corners of the room, with 1 channel set to the selected color, and 3 channels set to off (black), switching the colored channel each beat. The Drip effect uses an Area Effect (area == .all), displaying a looping fade-off animation over the whole area. The Matrix and Fireworks effects use multiple layered Explode effects. I had to write custom effects for Swirl, Groove Wave and others due to the need to match the speed of the effect to the tempo, but these could have also been made using Sequences. As you use the Light DJ app, see if you can identify the EDK effect(s) I used to make each of the effects.

As you can see the Hue EDK is a powerful tool for creating effects. Before this became available developers had the complex task of managing individual light states on systems with ’n’ number of lights (with significant performance limitations). Now the effects ‘just work’ regardless of the each users' setup. Since integrating these new effects, users’ time-in-app has increased by over 30%. As Philips Hue continues to dominate the smart home market, expect to see more Hue Entertainment integrations with video games and other media. Razer Chroma already works with Hue Entertainment on games like Overwatch, syncing lighting effects with in-game actions.

I hope this helps new developers get up to speed quickly with the new API. If you’re just starting out I recommend creating a few effects right in the Quick Start app for easy development then port them into your own projects. The Quick Start app is available for iOS and Android and EDK library is written in C++ so it’s compatible with most coding projects. If you have any questions about the Hue EDK or creating effects feel free to email me anytime at kevin@nrthrnlights.com.

Cheers and happy coding,

Kevin

Light DJ now supports Philips Hue Entertainment

Light DJ Pro now supports Philips Hue Entertainment areas to total entertainment lighting control.

Hey everyone, Kevin from Light DJ here. Philips announced their new Hue Entertainment API in January and that threw my priorities list off a bit, but boy was it worth it. I had been expecting a simple drop-and-replace solution with faster bulb response, but what they delivered was much more: a complete effects generation system that works seamlessly with your Hue lighting setup.

One of the biggest challenges I've had in creating the app is getting the effects to look good regardless of where your lights are located. My original solution to this was ordered bulbs method where you sort your lights in a ring around your room. This had pros and cons, but my general assumption was that most people keep their lights on the sides of the room. The reality is that there are a ton of different lighting configurations, including hanging fixtures, flood lights, and LED strips. Introducing Hue Entertainment areas:

 
Hue Entertainment areas are used to define light locations within a room.
 

When you create a Hue Entertainment area from the Hue app you'll set each of your light locations in your room. Each Hue Entertainment area can include up to 10 lights. Only one Hue Entertainment area can be controlled by a single bridge at any one time, however Light DJ allows you to control multiple simultaneous Hue Entertainment areas if you use a separate bridge for each area.

By using a Hue Entertainment area you'll enjoy high-performance, spacial effects; all of the app's effects respond faster and with better sync. Send waves of color across your room with the updated Groove Wave effect, or see faster strobes with the Matrix controller. The Visualizer is more responsive and active too.

You can try out all of the new effects for free today by downloading Light DJ on the App Store or on Google Play.

If you like the new effects or have some suggestions, feel free to comment or send me an email at kevin@nrthrnlights.com. This app was build on user feedback and I value your input!

Cheers,

Kevin