The ultimate, intuitive LED pixel mapping software solution. Map video content onto LED fixtures of any shape, with output up to 8192 DMX universes via Art-Net, sACN and KiNet.
Get started
ELM is all about displaying your video content on LED fixtures of any shape, in the most convenient way.
Key features
- 3D and 2D vector-based editor
- 8192 DMX universes
- Art-Net, sACN, KiNet output protocols
- Scheduled sequences
- Control via DMX, OSC, OS2L, MIDI and HTTP
- CITP/MSEX for consoles and visualizers
- HD video + audio playback
- Spout + NDI integrations for live video inputs
- Stream LED previews to visualizers via NDI
- DVI outputs for projectors, TVs and Martin P3 system
- Over 100 high quality animations included
- Audio-reactive effects
- RGB, RGBW, RGBA, RGBAW colour support
- Multiple whites support and WWA
- 16-bit colour support
- DXF and CSV import
- Extreme robustness for permanent installations
Computer requirements
ELM is compatible with Windows 7 and up, including Windows 8, 10 and 11. The .Net 4.8 framework is required and you'll be prompted to install it if needed.
Minimum
- Windows 7+, dual core 2 GHz CPU, 2 GB RAM
- NVIDIA GeForce 600 series or Intel HD Graphics 5500, released after 2013 with OpenGL 3.3 support
Recommended
- Windows 10 or 11, quad core 3.5 GHz CPU, 8 GB RAM
- NVIDIA GeForce 900 series or NVIDIA 10 series or better
- SSD hard drive
The computer requirements depend on your media type. Playing multiple HD videos requires a good computer. A rule of thumb is you can play one full HD video at 30 fps for each 2 GHz CPU core. So if you have an Intel i7 4 GHz (4 cores), you should be able to play 8 full HD videos. Increasing the playback speed to 2x means the fps also increases two times and the number of videos you can play simultaneously is roughly divided by two.
The table below shows the approximate number of videos you can play simultaneously at 30 fps depending on your CPU.
| CPU Speed × Cores | Full HD Videos | HD Videos | 640×360 Videos |
|---|---|---|---|
| 2 GHz × 2 | 2 | 4 | 10 |
| 3 GHz × 2 | 3 | 6 | 15 |
| 4 GHz × 2 | 4 | 9 | 20 |
| 2 GHz × 4 | 4 | 9 | 20 |
| 3 GHz × 4 | 6 | 13 | 30 |
| 4 GHz × 4 | 8 | 18 | > 40 |
| 3 GHz × 8 | 10 | 22 | > 40 |
For live video performances where you want to change playback speed up to 10x, the recommended video resolution is 640×360.
To use the built-in effects, particularly the eye candy effects, the video card will be doing the hard work. If you're using a laptop, make sure it can sustain continuous use of the effects without overheating. Usually, an integrated video card can render two eye candy effects. For more effects, you need a discrete video card.
About DMX output: a 1 Gigabit network should be able to handle 2048 universes at 44 fps. For more universes, a supplementary network card and a second Ethernet network are recommended.
Licenses
The ELM licensing system has been built with reliability and simplicity in mind. Once a computer has been activated, it will be able to run ELM until it dies, with no internet connection required, so you can be completely off the grid without worrying about the license.
Each license is registered to one individual or company and covers the activation of the software on a certain number of computers, so long as ELM is running on one computer at a time. For example, you can activate a show and a backup computer but only one computer can run ELM at a time.
The license is a simple file that you import once. No hardware dongles are needed, eliminating a whole range of tricky problems (broken dongle, lost dongle, dongle suddenly not detected in the middle of the show, and so on).
The license is linked to your computer's CPU and motherboard. You can upgrade any other components and reinstall the OS without invalidating your license.
A license isn't transferrable. Once your computer stops working, you can only activate ELM on another computer if you still have activations left. Use this online form to activate a computer: enttec.com/my-account/license-registration.
To get more DMX universes, you can activate multiple licenses on the same computer. The DMX universes of all licenses will be added.
Software updates
You always have access to the latest and greatest version, free of charge. To get updates, go to the Settings/About menu and press the Check for updates button. Alternatively, download the latest version from the ELM product page on enttec.com.
Definitions
- Art-Net
- Protocol to transmit DMX over a standard Ethernet network. Designed by and Copyright Artistic Licence Holdings Ltd.
- CITP/MSEX
- Controller Interface Transport Protocol / Media Server Extension.
- DMX
- The most common protocol to control lighting fixtures. Full name is DMX512, which stands for Digital Multiplex.
- DMX universe
- Represents 512 DMX channels, enough for 170 RGB LEDs (1 LED takes 3 channels, one for red, one for green and one for blue).
- FPS
- Frames per second. Refers to an output rate for video or DMX.
- KiNet
- Protocol to transmit DMX over a standard Ethernet network. Designed by Color Kinetics.
- LED strip / string
- Lighting fixture that may contain many LED elements and have a certain physical length. Some LED strips are flexible and can be bent to create curves and all kinds of shapes. ELM handles all lighting fixtures as if they were strips, giving you a lot of positioning flexibility.
- Mapping
- Mechanism used to associate a pixel from a media source to a specific lighting fixture element.
- Media
- Any type of visual content, including videos and pictures.
- NDI (Network Device Interface)
- Protocol to stream live videos over the network. Developed by NewTek.
- OSC (Open Sound Control)
- Network protocol allowing multimedia apps to communicate. ELM can be remotely controlled via OSC.
- RGB, RGBW, RGBA, RGBWA
- Various colour components: red, green, blue, white and amber.
- sACN
- Protocol to transmit DMX over a standard Ethernet network, like Art-Net. More specifically, the E1.31 subset is used for DMX control. Developed by ESTA.
- Spout
- Real-time video sharing framework for Windows. Similar to Syphon on Mac.
- Stage
- A mapping surface defining the position of the media placeholder and the position of lighting fixtures.
Setup
How ELM connects to your LED fixtures, and a high-level overview of the stages concept.
Getting started with LED strips
ELM can control any DMX-enabled lighting fixtures, not only LED strips. This is made possible because ELM outputs industry standard protocols like Art-Net, sACN and KiNet. ELM can therefore control traditional DMX dimmers and any RGB, RGBW, RGBA and RGBAW lighting fixtures, as well as complex fixtures like moving heads.
Controlling LED strips is a little bit different from traditional DMX fixtures. The main difference is that you need to use LED controllers to drive your strips. They replace the Art-Net nodes you use for traditional DMX fixtures. The LED controller receives DMX via Art-Net/sACN and converts it to the special protocol the LEDs understand.
The next step is to get LED strips and DMX fixtures. Since there are many LED protocols out there, you need to make sure your LED controller fits with your LEDs. Common protocols for RGB LEDs are WS2811 and WS2812/B. For more information about getting compatible LEDs, contact your ENTTEC representative.
Here are examples of ENTTEC Pixelator products that can be used to control LED tapes:
Quick overview
ELM allows dividing your installation into multiple zones and layers called stages. You control the media content independently for each stage. Stages can overlap and they are merged (blended) to generate the result.
A common scenario is to create a stage spanning the whole installation to map media across the board. To enable precise control over specific zones, you create smaller stages inside the big stage, then activate these zones whenever you want. For example, you can play a video on the overall stage (which acts as the background layer), and when there's a special event, activate the logo zone and make it flash.
To represent your LED strips and DMX fixtures inside a stage, ELM has a powerful vector-based editor. This way, you can easily draw many types of shapes, including matrices, loops and curves. ELM computes the position of each LED based on your drawing.
Application tour
A guided tour of every screen and control in ELM.
Home screen
Welcome! Start a new project or load an existing one. To see keyboard shortcut keys, press the key.
| New stage | Creates your first stage and starts the mapping process. |
| Load project | Loads an existing project. |
| Recent projects (down arrow) | Loads a recent project. Click on the down arrow in the Load Project button to show the list. |
| Media | Goes to the media library. |
| Sequences | Goes to the sequences panel to create sequences and control your show. |
| Live | Goes to the live panel. |
| Settings | Goes to the settings panel. |
New stage dialog
A rule of thumb is to create a stage with dimensions respecting the aspect ratio of your media. Then you'll position your LED strips on it to create the mapping. For example, you can create a full HD stage (which has a rectangular aspect ratio) to fit your media sources, and then map a 20×20 square LED array on it.
You can easily change the dimensions later, so don't worry. The minimum recommended size is 320×180. Smaller than this, you'll need to constantly work at a very high zoom level, which isn't very convenient. So it's better to use a higher size and let ELM scale your media.
| Name | The name of your new stage. Usually refers to its physical location. |
| Width, Height | The desired size in pixels for the mapping surface used to display media. This can be changed later without affecting the mapping. |
| Full HD, HD buttons | Presets for common media sizes. Full HD is 1920×1080, HD is 1280×720, Ultra HD is 3840×2160. |
Pro tip: To help you position strips like they are in the real world, use a picture of your installation as the stage's background (see Stage Tab). No pictures handy? Use your phone's camera to get one.
Stages
Shortcut key:
You can create as many stages as you want. Generally, you'll want an overall stage corresponding to the whole installation and multiple individual stages to target specific zones. The overall stage allows you to map content across the board. Then the other stages allow you to override specific parts of your installation whenever you want. You can select the current stage by clicking its name at the top.
Pro tip: Different effects may demand different mapping layouts. One goal of the mapping is to ease content creation. Don't hesitate to create multiple stages with the same LED strips but positioned in different ways.
Status indicator
At the left of the stage's name, a small indicator tells you the current control mode and its status. The activated status means a media is selected and the stage's intensity is greater than 0%.
| ∙ Stage | Manual control mode, stage deactivated. |
| ● Stage | Manual control mode, stage activated. |
| R Stage | Remote control mode, stage deactivated. |
| R Stage ● | Remote control mode, stage activated. |
| S Stage | Schedule control mode, stage deactivated. |
| S Stage ● | Schedule control mode, stage activated. |
| A Stage | The audio reactive mix mode is active. |
| T Stage | The testing mode is active. |
Stage syncing
All stages using the same media slot are considered to be synced. You can still change the individual stage output parameters like the intensity and the colour filter, but the media content is the same on all synced stages. When applicable to the media type, the media playback speed is determined by the maximum speed of all stages using this media.
Pro tip: To play the same video file on multiple stages but at different speeds, load the video file in multiple media slots. Then use a different media slot for each stage.
Stage merging and layering
When multiple stages contain the same LED strips, a merge occurs following the order as shown in the Stages Manager. This allows creating complex visuals by layering multiple stages on top of each other. You can target specific zones by creating stages with only a subset of all strips or with parts of the strips outside the stage. A stage must be activated (a media is selected and the stage's intensity is greater than 0), otherwise it is considered to be transparent and will not be part of the merge.
| Merge mode | Behaviour |
|---|---|
| Overwrite | Completely replaces the left stages. The right stage is fully opaque. |
| Multiply | Multiplies each pixel of the right stage with the corresponding pixel from the left stage. The right stage becomes a video mask. |
| Screen | The values of the pixels in the two stages are inverted, multiplied, and then inverted again. This yields the opposite effect to Multiply. The result is a brighter picture. |
| Overlay | Combines Multiply and Screen modes. The parts of the right stage where the left stage is light become lighter, and the parts where the left stage is dark become darker. |
| Darken | Takes the smallest colour component for each pixel. |
| Lighten | Takes the largest colour component for each pixel. |
| Difference | Subtracts the left stage from the right stage (or the other way round) to always get a positive value. |
| Add | Adds pixel values of one stage with the other. |
| Subtract | Subtracts pixel values of the right stage from the left stage. |
| Black key | Shows the pixels of the left stage only where the pixels of the right stage are black. In other words, black pixels are transparent. |
| IntensityCrossFade | The stage's intensity determines its opacity level. |
| IntensityWhiteFade | The stage's intensity determines its opacity level in a white fade fashion, meaning that when the intensity is at 50%, both the current stage and the ones under are merged at full opacity. |
Pro tip: To easily target specific zones of an installation, first create the overall mapping then select the strips corresponding to the individual zones and right-click in the strip list to access the "new stages from strips" menu.
Edit zone
You can position your strips as they are in the real world or based on the effect you want to create with your media. A strip has start (green) and end (red) control points indicating the direction of the patch. Multiple intermediate control points can be used to create various shapes. You can bundle multiple strips together to simplify the handling of complex shapes.
You can position parts of your strips outside the stage. In this case, the LEDs outside the stage will not be mapped. This is a common scenario when using the same strips in multiple stages and you want to target specific parts in each stage.
| Select strips / Deselect all | Click a strip to select. Hold to add to the selection. Hold to use a selection window and select all strips inside the rectangle. Press to select all strips and to deselect. |
| Move a control point | Click on a control point and drag it. Hold while dragging to align with the previous point. |
| Move selected strips | Right-click on a strip and drag it or use the move handle at the top-left corner of the selection. You can also use the +keyboard arrows. |
| Add a control point | Right-click on the stage (only one strip needs to be selected) or on a control point to use the context menu. Or double-click on the strip line to add a control point. |
| Delete a control point | Right-click on a control point and select the delete option, or select a control point and press . |
| Bundle / Unbundle strips / | Select multiple strips and right-click on one of them in the Strip List. Then select the bundle menu item to create one element with all selected strips. You can unbundle the strips to edit or see the details. |
| Move around the stage | Click on the stage background and drag. |
| Zoom in/out / / / +mousewheel | Use the zoom control at the top. Zoom out when you want to offset the selected strips quickly. resets the zoom. |
| Show individual LED positions | When zoomed enough, the LEDs of the selected strips should be visible as blue dots. Put your mouse over to see the LED number and its DMX address. |
| Copy / Paste strips / | Copy and paste the selected strips. You can paste the strips in a different stage. |
| Delete selected strips | Use the shortcut or right-click in the strip list and select the delete menu item. |
| Undo / Redo / | You can always use Undo and Redo while editing. |
| As a group (checkbox) | This checkbox under the rotate section determines whether strips are rotated, moved and scaled all together (maintaining the overall shape), or if the action is done to each strip individually. It doesn't apply when using the move, rotate and resize handles. For example, if you uncheck this option and enter 0 in the X position box, all strips will move to the position 0. |
Strips tab
Shortcut key:
Strip list
The strips for the current stage are shown in this list. Select one or multiple strips in the list to also select them in the edit zone. Right-click in the list for more options. You can click the column headers to sort. Type text in the filter box to filter based on the group names.
Pro tip: Use the group and sub-group fields wisely in order to use the filter box and quickly select the strips you want.
Add strips dialog (patching)
Shortcut key:
Quickly patch your strips and lighting fixtures to create arrays and any shapes you can imagine. Multiple LED types (or colour types) are supported, including RGB, RGBW, RGBA, RGBAW/RGBWA and white (dimmers) in multiple configurable colour temperatures like WWA. Most colour component orders (GRB, BGR, and so on) are supported. For lighting fixtures supporting high precision colours, 16-bit colour depth can be used via the RGB16, GRB16, RGBA16, RGBW16 and White16 types. RGBWmax activates all channels (RGB + white) when white is needed for maximum brightness.
| Number of strips | The number of LED strips/fixtures you want to patch. |
| LEDs per strip | The number of LEDs per strip. Enter 1 to create a unique fixture. |
| Type | Also named pixel type. Corresponds to the colour component order (RGB, BGR, GRB, and so on) and the capability (white only, RGBW, and so on). Many LED strips have the colour components in a different order than red, green and blue. Usually, LED controllers have the option to reorder the colour components, but ELM can handle this for you. |
| Shapes | Select a predefined shape (lines, arches, circles, triangles, hexagons, and so on) to position your strips on the stage. For arrays, use lines. Remember that you can create any kind of shapes by adding control points later. |
| Patching direction | For LED arrays, specify the way your strips are wired to let ELM automatically assign the proper DMX addresses. |
| Group and sub-group | Use these two groups to tag your strips and quickly find them later. You can search for these keywords in the strip list's filter box. |
| Colour | Optional colour tag for your strips. |
| DMX protocol | Select the output method for DMX: Art-Net, sACN or KiNet. Select none to leave the strips un-patched for the moment and not output any DMX. |
| Start universe | The universe of the first strip to be patched. |
| Start address | The DMX address of the first strip to be patched. |
| LED address offset (Advanced) | The number of DMX channels between the start of two consecutive LEDs. Increase it to leave holes between your LEDs/fixtures, allowing merging ELM's output with another console. For example, you can control moving heads by letting ELM handle the colours and a console handle the movement. |
| Break universe after (Advanced) | Automatically start patching in the next universe when reaching this limit (number of strips or LEDs). Set to 0 to break only when the universe is full. |
Pro tip: Got the patching direction wrong? No problem. You can easily flip your strips horizontally and vertically later. For snake mode, right-click in the strip list and use the select odd/even option.
Pro tip: Want to control more complex DMX fixtures like moving heads? Let's say your moving head has 20 channels and the RGB channels start at 3. In ELM, patch it with a start address of 3 and a LED address offset of 20. ELM will send 0 for the unused channels, which allows merging the DMX data from ELM with the DMX data from a console. The console provides the values for pan, tilt and all other channels except the RGB.
Pro tip: Whites! You can get a more accurate preview by using the right type of white LED type. Use WhiteCool, WhiteNeutral, WhiteWarm and WWA. Unlike the White LED type which takes the perceived brightness of the media as its value, you get finer control with the other whites.
Pixel types
| LED Type | Detail | Remark |
|---|---|---|
| RGB, RBG, BGR, BRG, GBR, GRB | Red, green and blue. | |
| RGBW, GRBW | Red, green, blue and white. | The white is automatically activated based on the saturation of the media colour. The less saturated the colour is, the more the white LED is activated. As the white is activated, the RGB LED levels are reduced proportionally until only the white LED is active for a pure white colour. |
| RGBWmax | RGB + White, all at maximum. | The white activation is calculated like for RGBW but the RGB LEDs aren't reduced proportionally. The result is that when a pure white colour is needed, all RGBW LEDs are activated. While it gives a maximum brightness, it also takes more power. |
| RGBA | Red, green, blue and amber. | The amber LED is automatically activated the closer the media colour is to amber. As the amber is activated, the RGB LED levels are reduced proportionally until only the amber LED is active for a pure amber colour. |
| RGBAW, RGBWA | Red, green, blue, amber and white. | The white and amber LEDs are activated following the same recipe as for RGBW and RGBA. |
| White | White or one colour component only. | The activation level is based on the perceived brightness of the media colour (using the luma calculation). |
| WhiteCool | White cool. | Special type of cool white LED for a more accurate stage monitor preview. The activation is based on the blue level of the media colour. |
| WhiteNeutral | White neutral. | Special type of neutral white LED for a more accurate stage monitor preview. The activation is based on the green level of the media colour. |
| WhiteWarm | White warm or amber. | Special type of warm white LED for a more accurate stage monitor preview. The activation is based on the red level of the media colour. |
| WWA | White cool, white neutral and white warm/amber. | Three types of whites and you'll get an accurate preview in the stage monitor. The white cool activation is based on the blue level of the media colour, the neutral on the green and the warm on the red. |
| WAW | White cool, white warm/amber and neutral white. | See WWA. |
| AWW | White warm/amber, neutral white and white cool. | See WWA. |
| …16 (e.g. RGB16) | High resolution 16-bit per colour component. | All types ending with 16 are the 16-bit version of the LED type. For example, RGB16 takes 6 DMX channels (2 for red, 2 for green and 2 for blue). While it takes more channels, it gives smoother colour transitions and more headroom for colour corrections. |
Pro tip: For the colour temperature settings to get a more accurate stage monitor preview, see White Balance.
Duplicate strips dialog
Shortcut key:
Copy the selected strips and create new strips by applying certain transformations.
| Number of duplicates | The number of times you want to copy the selected strips. |
| Group and sub-group | Use these groups to help you quickly find your strips later. When creating multiple duplicates, the primary group will automatically be appended with a counter. |
| Universe offset | The offset used to calculate the first DMX universe of the newly created strips. |
| Address offset | The offset used to calculate the first DMX address of the newly created strips. |
| X offset | The horizontal position offset applied to the newly created strips. |
| Y offset | The vertical position offset applied to the newly created strips. |
| Rotate offset | The rotation in degrees applied to the newly created strips. |
| Rotate center, offset X, offset Y | The position where the rotation will occur and how to offset the rotation centre (for example, to leave a hole in the middle of the rotated strips). |
Pro tip: When in the design phase of the lighting installation, keep the duplicate options in mind. They allow creating complex shapes by copying simple elements, which is a real time saver.
Pro tip: To make sure certain strips always stay together, use the bundle feature. You can create complex shapes by combining multiple simple elements. See the bundle/unbundle options in the Edit Zone.
Pro tip: To copy strips to another stage, select your strips and use the copy () and paste () keyboard shortcuts. You can also right-click in the Strip List to see all options.
Edit strips dialog
Shortcut key:
Edit the selected strips and allow changing the patch.
| LEDs per strip | The number of LEDs per strip. |
| Type | The pixel type. See Add Strips Dialog. |
| Segments | Determines whether it's straight lines or curves between the points. Curves are perfect to represent flexible strips. |
| Closed shape | Determines whether you want a closed shape like a square or circle. |
| 1st LED position | For closed shapes, you can move the first LED around the shape to be exactly where the first LED is in reality. |
| Group — primary, secondary | Use these two groups to help you quickly find your strips. |
| Numeric seq. | When editing multiple strips at a time, automatically generates numeric sequences when the group name ends by a number. The sequence will start at this number and go up. |
| Stabilizer | Takes the average of the media pixels around the LEDs to reduce large jumps. May be used like an Ambilight feature. |
| Levels | Adjusts the intensity, temperature and tint to compensate for manufacturing and age differences. |
| DMX protocol | Select the output method for DMX. For example, Art-Net or sACN E1.31. |
| Start universe | The universe of the first strip to be patched. |
| Start address | The address of the first strip to be patched. |
| LED address offset | See Add Strips Dialog. |
| Break universe after | See Add Strips Dialog. |
| Apply DMX changes to other stages | Executes your DMX changes on the matching strips in other stages. It is handy when you have copied the same strips in multiple stages in order to keep them in sync. |
| Locate | Locates each LED in the real world by going through a list. |
| Re-Patch | Forces redoing the patch to make sure all selected strips are patched one after another. |
| Reverse LEDs | Reverses LEDs without changing the shape. This is handy when the strip has been physically installed in the wrong direction. |
| Split | Splits the strip in two and allows each part to be configured independently. |
| Join | Joins all selected strips one after another to form only one strip. |
| Edit LED Pos | Allows editing the position of each LED individually for precise control. |
Offset / resize strips dialog
Shortcut key:
Precisely change the position and size of the selected strips.
| X | The position of the left boundary of the rectangle. A value of 0 means the far left of the stage. |
| Y | The position of the top boundary of the rectangle. A value of 0 means the top of the stage. |
| Width | The horizontal length. |
| Height | The vertical length. |
| Linked option | When checked, the initial aspect ratio is preserved when changing the width or height. |
| Equal strips spacing | When checked, position all strips at equal distance from each other horizontally and vertically. |
Pro tip: Right-click in a numeric box and move the mouse left/right to quickly change the value.
Stage tab
Shortcut key:
| Size | The mapping size of the stage. Change it with the resize button. |
| Preview opacity | Determines the visibility of the preview. You can disable the preview to save CPU by setting the opacity to 0. |
| Live access | Controls how this stage appears in the live panel. You can hide it or make it read-only. |
| Background image | To help you position the LED strips like in the real world, you can display an image on the background of the stage. |
| Offset, scale, flip and rotate | Allows positioning the background image where you want. |
| Opacity | Determines the visibility level of the background image. |
| Sticky notes | Puts notes anywhere on the stage to remember key points of the mapping and TODOs. |
| Snap strip points | Snaps control points to help positioning. |
| Grid | Configure the snap-to-grid feature by specifying the size of a cell in pixels. Use the offset X-Y to align the top-left cell with your design. |
| Monitor | Opens a monitor window to help you see the final result of the mapping. |
Pro tip: When editing and zoomed in very closely, if a media is playing in the preview, your computer may have a hard time. To help it, disable the preview by setting the preview opacity to 0%.
Monitor window
The monitor window lets you see the result of the stage only or after all stages have been merged. When you don't have access to the real fixtures, this is an indispensable tool while creating effects. Alternatively, you can use any 3rd party visualizer able to receive the LED rendering via NDI (see NDI output in the Stages Manager) or supporting Art-Net or sACN.
Pro tip: Try reducing the stage's size and see if the output is still good. Also reduce your videos and other media size accordingly to potentially save a lot of CPU. High resolution media is not always a good thing.
Testing tab
Shortcut key:
Quickly test the mapping by generating a rectangle that you can move over the strips.
| Test patterns On/Off switch | Activates the generation of test patterns. |
| Colour | Changes the colour of the testing rectangle. Handy to test the colour component order of your strips. |
| Width, Height | Changes the size of the testing rectangle. |
| Test selected strips only | If checked, only the selected strips in the Strips Tab will be under test. The other strips will all be off. |
| Test 1st LEDs only | Only test the 1st LEDs of each strip to better see where each strip starts. |
| Locate LEDs | Locates each LED in the real world by going through a list. Alternatively, you can put the mouse over a LED in the editor. The LED number and its DMX address are displayed, which is handy to count the LEDs and troubleshoot addresses. |
| Conflicts | Analyzes all patched LEDs of the current stage and looks for overlapping DMX addresses. In some situations you may want to have duplicated LEDs on the stage, but if this isn't the case, you should adjust the DMX addresses. |
Pro tip: Reduce the width and height of the testing rectangle and drag the rectangle around the stage. This way, you can see if the patch order is right. For example, if dragging the rectangle from left to right makes the LEDs go on from right to left, then you know you need to flip them horizontally. To do so, go to the Strips Tab and click the Flip X button.
Pro tip: Quickly test the red, green and blue component order of your LEDs by generating a pure red, pure green and pure blue test. For each test, note the colour of your LEDs. If you're not getting a RGB order, edit your LED strips and select the LED type corresponding to the order you've observed (BGR, GRB, GBR…).
Pro tip: While the testing mode is active, the DMX is constantly being output at the full output rate, even when there's no change. This is handy while you're configuring your LED controllers and want to see if it's working. This is also a good way to test whether your network supports the load.
Pro tip: Use the "test selected strips only" option, go in the Strips Tab and change the selection in the strip list. This is similar to traditional lighting consoles' locate function.
Stages manager
Shortcut key:
Select multiple stages in the list to modify them all at once. The first stage of the list is the bottom media layer and the following stages can override any preceding stages. Drag and drop stages to reorder.
| Name | The name of the stage. Select a stage to edit its name. |
| Size | The size in pixels of a stage. |
| Merge mode | Specifies how the values are merged when multiple stages target the same LEDs. The merge starts with the stage at the top of the list. You can reorder the stages with drag and drop. See Stage merging and layering. |
| Test patterns | Activates the testing mode and shows the test patterns. |
| NDI output | Streams the LED rendering via NDI to be used by 3D visualizers like WYSIWYG, Capture or Realizzer. This way you don't need to patch your LEDs in the visualizer and you get a very high quality and live LED rendering. |
| Monitor | Opens a monitor window to help you see the final result of the mapping for this stage. |
| DVI | Opens a window to output the video to a projector or TV. The position of the window is saved in the project file. You can output the media or the LED map. The LED map is exactly the size of the stage and one LED is exactly one pixel. This is required for systems taking a video input like Martin P3. |
| Duplicate | Copies the stage to get a new media layer. |
| Copy | Copies the strips of the stage to quickly update other stages. |
| Export LED position image | Exports a PNG image showing the exact position of every LED. Useful for motion designers as they can use the snapshot as a content guide. |
| Export LEDs csv | Exports a CSV file containing the information about all LEDs. |
| New | Creates a new stage. |
| Resize | Resizes all selected stages. |
| Paste | Pastes the copied strips on the selected stages (replaces content). Useful when you use multiple stages as layers. |
| Delete | Deletes all selected stages. |
Pro tip: You can use ELM to output video to a projector or TV without controlling LEDs. Simply create a stage and don't put any LEDs on it. Then in the stage manager, click on the DVI button.
3D tools
Shortcut key:
A 3D structure is composed of multiple stages layered on top of each other. Everything you already know about stages can be applied to 3D, including merging, media and remote control.
| New 3D | Generates a 3D structure either by using the wizard or by selecting existing stages. |
| Home / Front / Top / Side | / / / or . Moves the camera to predefined positions. |
| Stage list | Shows the stages for this 3D structure. Select a stage in the list to see it in the 3D view. |
| Reverse | Reverse the order of the stages in the list. |
| 3D monitor | Shows the 3D monitor window for this 3D structure. |
| Select stages | Add or remove stages for this 3D structure. |
| Rename | Renames this 3D structure. |
| Resize | Resizes the width, height and depth of the 3D structure. |
| Delete | Deletes this 3D structure. |
| Stack axis | Determines the direction for stacking stages. |
| Projection | Creates a new 3D stage projection to be able to generate effects. The generated stages are views from different positions of the 3D structure, allowing easy generation of 3D content by using standard 2D media. |
Media library
Shortcut key:
You can manage your media and see what's active. Up to 255 media items can be loaded.
| Batch add | Loads multiple video and picture files at once. |
| Insert At / Remove At | Inserts or removes a slot and offsets other media accordingly. |
| Clear all | Resets the library. |
| Consolidate | Copies all files in the same directory to make it easy to move your project file to another computer. |
| Transcode | Transcodes multiple videos at once. Converts to a MPEG4 format that should play on all computers. Also adjusts contrast and brightness. |
| Play audio | For videos, plays the audio track if available. |
| Playback position indicator | For videos, shows the position and allows seeking, which is handy for long videos to test specific parts. |
| Actions | Depending on the media, you can rename a file, replace the media and duplicate it. |
| Monitor | Opens a window showing the images coming from a media source. Can also set a custom media thumbnail. |
| Delete | Clears a media slot and allows selecting another media. |
| Swap items and reorder | You can swap items by using drag and drop. |
Video files (with or without audio)
Most video formats are supported when the appropriate DirectShow video codecs are installed. By default, ELM can play these files: .mov, .avi, .wmv, .mpeg, .mp4, .mp2, .mkv, .webm, .ogv and .ogg. There's no video size and resolution limits. The audio track is played back on the default sound device. If not needed, you can remove the audio by using the transcode button.
The recommended video format is MPEG4 in an avi file. For smaller files at the expense of a higher CPU usage, you can use H264 in an avi file.
Picture files
Use images like bmp, jpeg, gif (animated or not) and png.
Effects
The built-in effects give you pixel-perfect and configurable visuals. There are 100+ effects available, each one configurable in multiple ways. Many effect parameters are controllable via the DMX remote.
Capture devices
Use live videos captured with a video card input or a connected camera like a webcam. Any DirectX/DirectShow compatible hardware and software are supported.
Screen capture
Capture any part of your screen and use it as media in ELM. For example, play a video on YouTube and map it to your LEDs. Another utility is to capture your video editor (like Adobe After Effects) preview zone and let ELM generate a LED preview in real-time to assist your content creation. This avoids having to render your video before trying it in ELM.
Screen capture dominant colours
Capture any part of your screen and extract the dominant colours. This is useful to do colour matching between any kind of content and your LEDs.
Texts
Generate scrolling text with various fonts.
Spout (v2.007)
Use live videos generated by the most common video frameworks and VJ software. This includes Resolume, Ableton Live, Processing, Max/MSP, TouchDesigner, Cinder, OpenFramework, VVVV, Isadora, After Effects, Mapio, Unity3D and more. The Spout integration gives you total control over the content and is the way to go when you want interactive visuals.
Network Device Interface (NDI v6.0)
Receive live video streams via the network, as commonly used in professional live show productions. Easily connect ELM to a multitude of NDI compatible hardware and software, including capture cards, IP cameras and video over the cloud. NDI has been developed by NewTek.
MJPEG streams
The most basic way to receive video streams via the network. If your IP camera doesn't support the more complete NDI protocol, it should at least support MJPEG streaming.
DMX bitmap
This special media allows receiving DMX from a lighting console and converting it to a video. You can then use this video like any other media and map it on your LEDs. A common usage scenario is to control groups of LEDs with one RGB or intensity value.
Pro tip: To quickly test your installation without having the final videos, just use the built-in effects. You can create your schedules and test everything right away. Then when you get your videos, replace the built-in effects.
Pro tip: Media file paths are saved relatively to your project file. Use the consolidate feature to copy all files in a directory next to your project. Then copy everything to your other computer.
Sequences
Shortcut key:
The sequences section allows you to create sequences and steps (cues) for your stages and launch the perform panel for live performances. First you create groups for your stages either based on the different zones of your installation and/or the different layers. A stage can only be in one group. You can duplicate a stage (see Stages Manager) if you want to put it in multiple groups or if you'd like multiple layers like a background and a foreground. This way, you'll be able to create sequences for the background group and other punchier sequences for the foreground group.
| New group | Creates a new group of stages. |
| Stage number button | Select the stages that are part of the group. |
| Delete | Delete the selected groups. |
| Edit sequences | Launches the edit sequence panel. |
| Perform | Launches the perform panel for live performances. |
Edit sequences
Go in the live panel and configure the stages of the group as you want and then store the result as a step of a sequence. The settings for each stage that are stored in a step are: main media selection, media parameters, stage activation, stage speed, stage colour filter, transition duration, transition effect and the whole state of the audio mix. An interpolation is made for transitions between steps and sequences for all numeric parameters, including the media parameters. For example, you can change the zoom level of an eye candy effect to animate it between steps.
Each group can have up to 255 sequences and each sequence can have as many steps (cues) as you want. You'll then be able to recall these sequences during a live show or via any remote mode.
Overview section (upper part)
| Group | The current group of stages. |
| Store filter button (at the right) | Allows selecting what to store in a step. For example, you can decide to not store the media parameters or store only a subset of the stages. When a stage isn't stored in a step, it will keep its current configuration when playing the step. That is handy when you want to set its configuration on step 1 and then keep it as is for all other steps. This way, you only need to update step 1 when you want to do a change. |
| Sequence and step | The current sequence and step. |
| Sequence description box | The name or description of the current sequence. |
| Sequence colour tag | Optional colour tag for the sequence. |
| Add | Stores the result as a new step at the end of the sequence. |
| Update | Updates/replaces the current step with the result. |
| Insert | Inserts the result after the current step. |
| Delete | Deletes the current step. |
| Undo / Redo / | Undo or redo the operations for the current group. |
| Blind | Allows editing the steps without selecting them in the live panel. This is handy during a show to modify some parameters without disturbing the show. |
| Transitions (toggle) | Determines whether to show the transitions while editing steps. |
Pro tip: The keyboard shortcuts for the add, update, insert and delete steps work even when the focus is outside the edit sequence window. So you can press to add a step while working in the live panel.
Details section (bottom part)
| Sequences | Shows the grid layout with the 255 sequences. Drag and drop to move the sequences. Right-click on a sequence for more options like copy in order to duplicate. |
| Columns | The number of columns for the grid organization of the sequences. This is also used to show the sequence in the perform panel. |
| Steps | Shows all the steps of the current sequence. You can overwrite parameters like the stage speed and intensity by checking the corresponding boxes. Drag and drop steps to reorder and right-click on a step to copy and delete multiple steps. |
| Step content (overview) | Shows an overview of the content stored in a step. There's one square per stage. The media thumbnail is shown along with the colour filter and the stage intensity which determines the width of the colour rectangle under the thumbnail. If nothing is stored for a stage or the stage is deactivated, the thumbnail is invisible. |
Schedule
You can schedule your sequence so that it starts playing automatically. A group has its own scheduler, allowing each group to play one sequence at a time.
| Start time | The time of the day to start the playlist. |
| Relative to | Determines how to interpret the start time (e.g. relative to sunset or sunrise). |
| Duration | The duration of the playlist (end time). |
| Loop | Repeats the sequence indefinitely. |
| Start and end dates | The date range (inclusive) when the playlist is active. |
| Active days | The days of the week when the playlist is active. |
Perform panel
The perform panel is a touchscreen, keyboard and MIDI controller friendly interface to control your show. You can trigger your sequences and play live with the intensity, speed, strobe, tap tempo and more. Most of the controls can also be controlled via HTTP and OSC.
| Group | Selects the active group for the perform panel. Most visible controls are relative to this group. |
| Active | Determines whether the current group is active. Deactivating a group blackouts all stages of the group. |
| Master intensity and speed | Controls the master intensity and speed from the perform panel. |
| Shortcuts | Edit the keyboard and MIDI shortcuts to control most of the perform panel features. |
| Sequences | The grid shows all sequences. Click on a sequence to play it. |
| Go / Back | Play the next or previous step of the sequence. |
| Tap tempo | Tap to set the tempo to automatically go to the next step. The tempo of all groups are synced. If you are receiving MIDI clock messages, you can select it as the tempo source. |
| Tempo dividers (/1, /2, /4 …) | Determines how many beats it takes (based on the tempo) to advance to the next step. |
| Play button | Automatically plays the steps of the sequences based on each step programmed duration. This button is deactivated when manually pressing go/back or when using the tap tempo. |
| Play mode (loop, all, row …) | Determines what to do when reaching the end of a sequence. For example, if you select row, then the next sequence of the row will start playing. |
| Strobe | Activates the strobe effect on the group. |
Live mode
Shortcut key:
The main goal of the live mode is to see what's playing on each stage and configure the effects. For example, if a playlist is running, you'll see what's happening in real-time, including the transitions. If nothing is controlling the stage, you'll be able to manually select what's playing.
| A and B media banks | Shows the loaded media. Click a media to select it. |
| A and B configuration panels | At the bottom of the right and left sides, the selected media are displayed and you can expand the sections to see the parameters of the media. |
| A-B Fader | Mix the media from the A and B sides, using the selected transition/mix effect. |
| Execute | Automatically creates a transition from A to B or B to A depending on the most active side. |
| Transition effect and duration | Selects one of the 40+ transition/mix effects and its duration in seconds. |
| Intensity | The luminosity level (dimmer). Set to 0 to deactivate the stage. |
| Colour wheel | Filters the colour output. It works like a colour gel, where if you select the red colour, only red pixels will be visible at the output. |
| Speed | The playback speed. Used for certain media types only, including video files, built-in effects and texts. Does nothing for live video streams. |
| View settings | Various settings to customize the live panel. |
| Audio reactive mix | Automatically mixes your media in sync with the music. It's a kind of auto-pilot, which is handy to create a show very quickly. Click the "…" button to select the audio input. |
| Master intensity and speed | Modifies the intensity and speed of all stages without affecting the actual programming. The master intensity doesn't affect the stage monitor brightness. |
Pro tip: Using black and white media allows you to use the colour filter and get exactly the RGB colour you want as output.
Pro tip: Use the live mode as a monitor to help you see what's going on while remotely controlling ELM with another lighting console. You can also open multiple DVI outputs (one per stage) and use them as monitors.
Reference
All settings panels, remote control options (DMX, OSC, OS2L, HTTP), troubleshooting, and the end-user licence agreement.
Settings — project
Shortcut key:
This is the overall panel, displaying the most important info about your project status.
| New project | Closes the current project and starts a new one. |
| Load | Opens an existing project. |
| Save as | Saves the project under a new name. |
| Save | Saves the project. |
| Import | Imports items from another project, including stages, media and DMX settings. CSV and AutoCAD DXF files can be used to import your strips. |
| Export patch | Creates an HTML file containing all strips/fixtures to be opened in a web browser or Excel. |
| Firewall | Does the necessary firewall configuration for all network protocols. ELM must be running as administrator. |
| DMX universes | The number of DMX universes used by your project. This is the number used to calculate your license limit (if any). |
| Stages | The number of stages in your project. |
| Strips | The number of strips in all stages. |
| Mapped LEDs | The number of LEDs inside the mapping zones in all stages (including duplicated LEDs). |
| Output rate (fps) | The number of times per second DMX packets are sent. Default is 30, max 240. WARNING: don't set it higher than what your LED controllers/fixtures support. This may result in DMX packets being discarded and visual artefacts. |
| DMX output | Activates or temporarily disables the DMX output. This is handy during testing. |
| Lock stages | Prevents accidentally editing the stages by requesting a password to unlock (last 4 characters of the hardware ID). |
| Run at startup | Automatically runs ELM when Windows starts and loads the last opened project file. |
| Language | Selects the user interface language. |
A project backup file is created every 5 minutes. To avoid slowdown during a live show, you need to manually save the project to trigger the backup creation. To open a backup, select the Backup file type in the file browser when opening a project. To set the backup to be the current project, simply save the project.
Import xLights / xModels
Select one or multiple xModel files to import. Strips will be automatically created to best fit the models.
Import CSV LEDs
Select one or multiple CSV files to import. Strips will be automatically created to best fit the LEDs. Each row of the CSV file can contain the following columns:
| Column | Description |
|---|---|
| X | Decimal number representing the LED horizontal position. |
| Y | Decimal number representing the LED vertical position. |
| Protocol | The DMX protocol like ArtNet, sAcn, KinetV1, KinetV2. |
| Type | The LED type like RGB, RGBW, RGBA, and so on. |
| Universe | The DMX universe number. |
| Address | The DMX address. |
| Group or Group1 | The name of the group. |
| Sub-group or Group2 | The name of the sub-group. |
A stage will be created to contain all LEDs based on their X and Y positions. To export the LEDs of a stage as a CSV, see Stages Manager.
Import strips from AutoCAD DXF file
Select a DXF file to import using the AutoCAD 2000 and up format, either in binary or text. Strips will be created based on the entities. Notes are also created based on the Text and MText entities.
Art-Net
Settings for the Art-Net universes.
| Adapter | Selects a network adapter for the output. |
| Universe display | By default, universes are in the hexadecimal format, where the first digit is the Net (0 or 1) followed by the Sub-Net (0-F) and then the universe (0-F). In decimal mode, universes are displayed from 0 to 511. |
| Scan nodes | Opens a window and shows the detected Art-Net nodes. Click the configure unicast button to activate Art-Net unicast and send the universes to the subscribed nodes. |
| Locate uni. | Locates universes by sending all channels at full. No LEDs need to be patched. |
| Monitor | Shows the exact DMX values being sent. |
| Optimize frames | When activated, universes are sent only when there's a change and only the channels that have changed are sent, which may considerably reduce the network load. Older or low-powered nodes may not support it. |
| ArtSync | When activated, sends an ArtSync packet after all universes have been sent. This makes sure all outputs to the lights are in sync and prevents tearing problems. |
| Primary / backup | Automatically activates the backup when the primary computer is gone. All DMX outputs (Art-Net, sACN and KiNet) are stopped for the backup until the primary is gone. Detection of the liveness of the primary computer is done using Art-Net poll messages on the configured output network adapter. |
| Universe IP addresses | For each universe, enter an IP address to enable unicast and send the DMX packet to a specific node. Type broadcast to send the universe to all connected nodes in the network. Unicast is preferred when using more than 64 Art-Net universes or a WiFi network. |
sACN
Settings for the sACN universes.
| Adapter | Selects a network adapter for the output and the input (if using remote control with sACN). |
| First universe | Since sACN supports thousands of universes, set the first universe to use. |
| Priority | Selects the priority level used for merging multiple sACN data sources. This is useful when using two ELM computers and you want to use one as a backup by setting its priority to a lower level than the main computer. |
| Locate uni. | Locates universes by sending all channels at full. No LEDs need to be patched. |
| Monitor | Shows the exact DMX values being sent. |
| Optimize frames | When activated, universes are sent only when there's a change, which may considerably reduce the network load. |
| sACN Sync | When activated, sends a sync packet after all universes have been sent. This makes sure all outputs to the lights are in sync and prevents tearing problems. The sACN controllers need to support sACN sync. |
| Universe IP addresses | For each universe, enter an IP address to enable unicast and send the DMX packet to a specific node. Type multicast to send the universe to all subscribed nodes in the network. Unicast is preferred when using more than 64 sACN universes with a network switch not IGMP v2 ready, or a WiFi network. |
KiNet
Settings for the Philips Color Kinetics devices (power supplies). Both protocol versions are supported, which are KiNet v1 (DMXOUT) and KiNet v2 (PORTOUT). For KiNet v2, you map each KiNet device's port to a universe in ELM. You can map up to 8192 ports. Use Philips QuickPlay Pro to configure and get the IP addresses of your KiNet devices.
| Adapter | Selects a network adapter for the output. |
| Locate uni. | Locates universes by sending all channels at full. No LEDs need to be patched. |
| Monitor | Shows the exact DMX values being sent. |
| Device IP addresses | Enter the IP address of your device. |
| Port | Enter the destination port for each device (range 1-16). |
Scheduler
The scheduler is responsible for activating your sequences for those with scheduling options. The sunrise and sunset times are automatically updated throughout the year based on your location.
| Stop during daylight | Determines whether you want to stop the scheduler during daylight. In this case, all running sequences are stopped automatically. |
| Scheduler active | Temporarily stops all schedules. It is handy to take over and manually select what's playing on each stage in the live mode. This option isn't saved to the project file. |
| Your position | Your latitude and longitude position on Earth. You can also select a preset in the list. |
| Offsets (minutes) | Offsets the sunrise and sunset times. For example, if you want to start the installation 2 hours before sunset, you enter (-120) in the sunset box. |
| Test helpers | Temporarily modifies the current time and date to help you test your schedule. These values aren't saved in the project file. |
Audio
Activate and configure up to 8 audio inputs. The audio inputs are used by the audio reactive effects and the audio reactive mix. Activate the loopback input to listen to what's playing on this computer.
| Activation switch | Determines whether this audio input is activated. Deactivate unused inputs to save resources. |
| Volume | Adjusts the input volume. |
| Falloff speed | Adjusts how fast the frequency bands go down. |
| Lower / higher frequencies (Hz) | Adjusts the frequency range to be used for the audio analysis. |
| Auto gain | Evens out the volume to a consistent level. |
| Auto gain up delay | The number of seconds it takes for the volume to go up when quiet audio is detected. |
| Up / down arrows | Moves the audio input to another slot. This way if the position of an audio source changes, you'll not need to update all your audio reactive effects. |
| WaveIn / ASIO | Switch between the standard Windows Audio and the low latency ASIO modes. |
MIDI
The detected MIDI controllers are listed here. Activate the ones you want to use for your performance. The configuration for which notes and CC messages to use is done in the Perform panel. Multiple controllers can be used at the same time as long as they are transmitting on different channels or at least sending different note or CC messages.
White balance
Adjust the colour temperature and intensity of the various LED types in order to get a more accurate preview in the stage monitor. This is particularly important when you're using LEDs with multiple types of whites. For example, the WWA LED type is composed of the cool white, neutral white and warm white (or amber). Adjusting any of these whites will change the appearance of the WWA LEDs in the stage monitor.
License
Manage your licenses. You can import multiple licenses to get more DMX universes.
| Backup | Saves your license file in case you need to reinstall your OS. |
| Import | Imports a license file. |
| Hardware ID | Your unique computer's ID, used to generate the licenses. |
Remote control — DMX
ELM can be remotely controlled in many ways. Multiple inputs can be active at the same time to give you even more flexibility. The DMX input always takes priority.
Settings for remotely controlling ELM with a lighting console (Art-Net, sACN or an ENTTEC USB Pro interface).
| Input mode | Selects how you want to remote control ELM. The current options are Art-Net, sACN and an ENTTEC USB Pro interface. |
| Network adapter | For Art-Net only, you can select a different network adapter for output and input. |
| Universe | Selects the DMX input universe. |
| Monitor | Shows the exact DMX values being received. |
| Address | Selects the DMX address for the first stage. |
| Fixture mode | Selects the level of control you want (Basic or Extended). |
| DMX value mode | Percent: makes it easy for consoles working in percent. Raw: makes it easy for consoles working in the 0-255 DMX range. |
| Stages | Determines the stages you want to control. You can select no stages if you only want to control the groups. |
| Media remote | Maps DMX channels to be used to remotely control the media parameters. |
The DMX sheet showing what can be controlled and by which channel is integrated in ELM. It is dynamically generated based on the current remote settings and your stages, so you can't lose it.
The groups created in the sequences panel are automatically added to the remote control.
When no DMX data is received for more than 5 seconds, the remote control mode will automatically be deactivated. This is a failsafe feature in case the remote console has a problem. When this happens, the schedule resumes right away. If there are no schedules, then the current media will continue to play.
Basic fixture mode (8 channels per stage)
| Ch | Name | Values | Note |
|---|---|---|---|
| 1 | Remote control mode | 0: deactivated. 1-254: reserved, don't use. 255: activated | Remote control activated only when receiving 255. 0 disables remote control and the stage goes back to being controlled via schedule (if any) or manually. |
| 2 | Media index | 0: no function. 1-99: media index | The media to play. If needed, a transition (crossfade) is automatically executed between the current media and the new one. This effectively controls the A and B sides in the live panel for you. |
| 3 | Intensity level | 0: stage deactivated. 1-255: level | The output level (dimmer). When at 0%, the stage is deactivated and doesn't override stages with a lower precedence (it becomes transparent). To keep the stage activated and force a black output, use the colour filters at 0%. |
| 4 | Red filter | 0-255 | Filters the colour output. |
| 5 | Green filter | 0-255 | Filters the colour output. |
| 6 | Blue filter | 0-255 | Filters the colour output. |
| 7 | Playback speed | 0: paused. 1-255: speed up to 10x. 25 = 1x | For some types of media like videos, effects and texts, speed controls how fast the playback goes. For live streams, speed has no effect. |
| 8 | Transition duration | 0: no transition. 1-255: duration up to 20 s. 12 = 1 s | When transitioning between media, controls the duration of the crossfade. |
Extended fixture mode (15 channels per stage)
| Ch | Name | Values | Note |
|---|---|---|---|
| 1 | Remote control mode | 0: deactivated. 1-254: reserved, don't use. 255: activated | Same as basic mode channel 1. |
| 2 | Intensity level (MSB/coarse) | 0: stage deactivated. 1-65535: level (combined with ch 3) | The output level. At 0%, the stage is deactivated. |
| 3 | Intensity level (LSB/fine) | 0-255 | |
| 4 | Red filter | 0-255 | Filters the colour output. |
| 5 | Green filter | 0-255 | Filters the colour output. |
| 6 | Blue filter | 0-255 | Filters the colour output. |
| 7 | Media A speed | 0: paused. 1-255: speed up to 10x. 25 = 1x | Controls playback speed of media A. |
| 8 | Media B speed | 0: paused. 1-255: speed up to 10x. 25 = 1x | Controls playback speed of media B. |
| 9 | Media A index | 0: empty. 1-99: media index | The media to play on side A. |
| 10 | Media B index | 0: empty. 1-99: media index | The media to play on side B. |
| 11 | Media mixing position (MSB/coarse) | 0: A fully active. 65535: B fully active | Controls the position of the mixing effect, from A to B. |
| 12 | Media mixing position (LSB/fine) | 0-255 | |
| 13 | Mixing position modifier | 0: no function. 1-255: various mapping functions | Spices up the mixing position by applying a function like bounce, sigmoid and exponential. See the list of functions in ELM. |
| 14 | Mixing effect | 0: no effect. 1: crossfade. 2: black fade. 3: white fade. 4-255: various effects | Determines the effect to be applied when mixing the A and B sides. From simple crossfade to complex effects including rotations, scaling and translations. See the list of effects in ELM. When not needed, select "no effect" to avoid wasting CPU. |
| 15 | Reserved (unused) |
Group mode (12 channels per group)
| Ch | Name | Values | Note |
|---|---|---|---|
| 1 | Group active and remote control enabled | 0-245: remote deactivated. 246-250: group inactive. 251-255: group active | Controls the group active switch. When remote control is deactivated, the scheduler can take over. Deactivating the group deactivates all stages in the group. |
| 2 | Intensity level (MSB/coarse) | 0-65535: level | Multiplies the intensity of all stages in the group. 0 does a blackout without deactivating the stages (they continue playing). |
| 3 | Intensity level (LSB/fine) | 0-255 | |
| 4 | Red filter | 0-255 | Filters the colour output. |
| 5 | Green filter | 0-255 | Filters the colour output. |
| 6 | Blue filter | 0-255 | Filters the colour output. |
| 7 | Speed | 0: paused. 1-255: speed up to 10x. 25 = 1x | Multiplies the speed of all stages of the group. |
| 8 | Sequence number | 0: stop. 1-255: sequence number | 0 stops playback but doesn't blackout stages as long as the group is active. |
| 9 | Step number | 0: auto. 1-255: step number | 0 automatically plays all steps using the programmed duration of each step. For step numbers, it wraps around the number of steps automatically. So if the sequence has 4 steps and you specify step 5, then step 1 will play. This is to avoid needing to know the exact number of steps. |
| 10 | Transition time overridden | 0-250: no. 251-255: overridden | Whether the transition time between steps and sequences is using the programmed time or the time of channel 11. |
| 11 | Transition time | 0: no transition. 1-255: duration up to 20 s. 12 = 1 s | The time of the transition between steps and sequences. |
| 12 | Strobe | 0: off. 1-255: strobe on, slow-fast | Strobes the intensity of the group. |
CITP/MSEX
Activate this option to enable ELM to communicate with other CITP/MSEX compatible consoles and software. CITP/MSEX versions 1.0, 1.1 and 1.2 are available. ELM can:
- Send the media thumbnails to your console.
- Stream the LED preview of every stage to your console or visualizer.
- Send the stage statuses, including the current playing media.
OSC
Settings for remotely controlling ELM via OSC (Open Sound Control) over the network. ELM listens for incoming OSC on all network adapters.
/elm/stages/{stage name}/
live/
intensity 0..1
rgb 0..1, 0..1, 0..1
media 0..99
speed 0..10
transitionFx 0..43
transitionDuration 0..9999 seconds
audioMixControlled {0: no, 1: yes}
remotelyControlled {0: no, 1: yes}
mix/
position 0..1
A/
media 0..99
speed 0..10
B/
media 0..99
speed 0..10
/elm/groups/{group name}/
performer/
active {0: no, 1: yes}
paramTransitionDuration 0..9999 seconds
intensity 0..1
blackout {0: no, 1: yes}
bumpingIntensity {0: no, 1: yes}
strobing {0: no, 1: yes}
strobeOnDuration 0..1 seconds
rgb (or r, g, b) 0..1, 0..1, 0..1
speed 0..10
freeze {0: no, 1: yes}
bumpingSpeed {0: no, 1: yes}
tempoBPM 0..300
tap press the tap tempo button
cleartempo deactivate the tap tempo
tempoDivider 1..128
autoGo {0: no, 1: yes}
playMode {0: loop, 1: row, 2: column, ...}
play sequenceId, [stepId]
go play the next step
back play the previous step
/elm/groups/{group name}/
sequences/{sequenceId}/schedule/
enabled {0: no, 1: yes}
/elm/media/
slots/{slotId}
parameters/{name} (range as in the live panel)
for normalized values, use:
{name}/normalized 0..1
/elm/settings/
masterIntensity 0..1
masterSpeed 0..2
dmxOutputActive {0: no, 1: yes}
schedulerActive {0: no, 1: yes}
Note: Addresses and names are case-insensitive. Media index 0 is an empty slot. RGB can be sent in 3 parts at the/r,/gand/baddresses.audioMixControlledcontrols the audio mix activation.remotelyControlleddetermines whether OSC overrides the scheduler. Use*(wildcard character) in the stage name to target multiple stages at once. For example,/elm/stages/*/XYZtargets all stages./elm/stages/background*/XYZtargets all stages with a name starting with background.
OS2L
Use the Open Sound to Light (OS2L) protocol to receive commands from VirtualDJ. This allows using the timeline editor in VirtualDJ to trigger your lighting effects in sync with the song that is playing. The commands can be used to control the perform panel via its shortcuts, under the sequences menu.
To activate OS2L in VirtualDJ, go in the options and check yes for os2l and set os2lDirectIp to the ELM IP address (or 127.0.0.1 if the same computer) and port. For example: 127.0.0.1:9666.
HTTP
Settings for remotely controlling ELM via HTTP, which is a protocol based on TCP/IP. This is the most reliable way to integrate ELM with control systems like Crestron and Pharos or to create custom web interfaces. ELM listens for incoming HTTP requests on all network adapters.
The base URL to access the API is: http://YOUR-COMPUTER-NAME:port/elm. If you prefer, you can replace the computer name by its IP address or localhost if the server is running on the same computer. The port can be omitted if it's 80, which is the default for HTTP.
You can restrict the access to the API by activating the Basic Auth feature. For more details see Basic access authentication.
| Request | Parameters | Output |
|---|---|---|
GET /elm/status | Statuses of all sub-systems like under the settings/project menu. | |
GET /elm/heartbeat | 200 OK if the server is running. | |
GET /elm/settings | Global settings like the master speed and intensity, output rate, scheduler active, and so on. | |
POST /elm/settings | masterIntensity 0..1, masterSpeed 0..2, and so on. | Sets global settings. |
GET /elm/stages | includeState 0 (only names) or 1 (ids, names and other info) | List of stages. |
GET /elm/stages/{stage name or id} | Stage id, name and other info. | |
GET /elm/stages/transitionFxNames | List of all transitionFx names. | |
GET /elm/stages/{stage name or id}/live | State of the requested stage. | |
POST /elm/stages/{stage name or id}/live | intensity 0..1, media 0..99, speed 0..10, transitionFx {name}, transitionDuration 0..9999, red 0..255, green 0..255, blue 0..255, audioMixControlled 0|1, remotelyControlled 0|1 (if 0, let the scheduler or another remote take over). | State of the updated stage. |
POST /elm/stages/{stage name or id}/live/dvi | visible 0 (no) or 1 (yes) | Show or hide the existing DVI windows. |
GET /elm/stages/{stage name or id}/patch | List of all patched strips. | |
GET /elm/stages/{stage name or id}/monitor | width, height, fps | MJPEG stream of the LED preview. |
GET /elm/groups | List of groups. | |
GET /elm/groups/{group name or id}/stages | List of stages in the group. | |
GET /elm/groups/{group name or id}/sequences | List of sequences in the group. | |
GET /elm/groups/{group name or id}/performer | Computed state of the performer. | |
POST /elm/groups/{group name or id}/performer | Any parameters returned in the full state can be set except the computed parameter. | Updated state. |
GET /elm/groups/{group name or id}/sequences/{sequenceId} | Info about the sequence. | |
POST /elm/groups/{group name or id}/sequences/{sequenceId}/schedule | enabled 0 (no) or 1 (yes) | Enable or disable the schedule for a sequence. |
POST /elm/groups/{group name or id}/performer/go | Play the next step in the sequence. | |
POST /elm/groups/{group name or id}/performer/back | Play the previous step in the sequence. | |
POST /elm/groups/{group name or id}/performer/tap | Press the tap tempo button. | |
GET /elm/media/slots | includeState 1 (return slot states) | List of filled media slot ids. |
GET /elm/media/slots/{id} | State of a media slot. | |
GET /elm/media/slots/{id}/thumbnail | width, height | PNG image. |
GET /elm/media/slots/{id}/monitor | width, height, fps | MJPEG stream of the media. |
POST /elm/media/slots/{id} | path (load an existing local file) or form file (upload a new file) | State of the updated media slot. |
GET /elm/media/slots/{id}/parameters | List of all parameters of the media. | |
POST /elm/media/slots/{id}/parameters/{name} | value (range as visible in the live panel) | Change the value of a parameter. |
POST /elm/media/slots/{id}/parameters/text | value (text) | Change the text of a text media. |
Worked examples
To start sequence #1 of the group "background", the request is:
POST /elm/groups/background/performer?active=1&sequenceId=1 HTTP/1.0\x0D\x0A
Content-Type: application/x-www-form-urlencoded\x0D\x0A
Content-Length: 0\x0D\x0A
\x0D\x0A
\x0D\x0A
To get info about the "background" group, the request is:
GET /elm/groups/background/performer HTTP/1.0\x0D\x0A
\x0D\x0A
\x0D\x0A
Notes:
- Each line ends with
\r\ncharacters which are\x0D\x0Ain hexadecimal.- There are two empty lines at the end of a request.
- Use
*(wildcard character) in the stage name to target multiple stages at once for POST.- All data is returned in JSON.
- Use the returned HTTP status code to do proper error handling.
- Addresses and names are case-insensitive.
- Parameters can be provided in the query string or form data.
- Media id 0 is an empty slot.
Troubleshooting
Output — Art-Net / sACN / KiNet
| Problem | Possible causes | Solutions |
|---|---|---|
| No Art-Net nodes detected in the scan nodes dialog. | The node IP address may be incorrectly configured (e.g. the computer's IP is 192.168.1.X and the node's IP is 192.168.0.Y). The wrong network adapter may be selected in ELM. The firewall is blocking ELM. | Change the IP address of your computer or your node to be on the same network (most of the time the 3 first numbers need to be the same). The subnet masks also need to be the same. Usually, use 255.255.255.0. Go under the settings menu and make sure the proper network adapter is selected for each DMX protocol. Use the firewall button in ELM. |
| Output lag / shuttering (working but with intermittent delays). | The network is overloaded, most of the time due to the use of broadcasting. By default with Art-Net, all universes are broadcast (sent to all connected devices on the network). Some routers and switches may have problems under heavy load. With sACN, multicast is used and may not be well supported by your routers and switches, resulting in broadcasts. | Enter your node IP addresses in the universe boxes to enable unicast sending. For Art-Net, click the scan nodes button and then the configure unicast button (see Art-Net). This greatly reduces the work your router/switch has to do. Alternatively, you can lower ELM's output rate (see Project). Another way to reduce the network load is to enable the optimize frames option. |
| Some lights wrongly stay on for half a second or so. | The most common cause is an unreliable network like WiFi causing data packets to be discarded. Missed DMX packets due to too high an output rate and the optimize frames option being ON. | Disable the optimize frames option for Art-Net or sACN. ELM will continuously send data even when there's no change. You may need to reduce the output rate to avoid network overload. When optimize frames is ON, ELM doesn't send DMX unless there's a change, so if your LED controller or fixture discards a packet because it's overloaded, visual artifacts will be visible. Try deactivating optimize frames or reducing ELM's output rate. |
| The lights do nothing. | The nodes may not be properly configured or not plugged in. The strips may be configured to use the wrong universes and/or addresses. The firewall may be blocking ELM. | Test the nodes with the configuration utility from the manufacturer. Check the IP address configuration as described above. Check the universes and addresses of your strips. You can use an Art-Net sniffer like the Artnetominator or Wireshark to see what ELM is sending. Disable your firewall. Use the locate universe feature in ELM to force sending all channels at full. |
| The lights flicker. | The most common cause of flickers when using LED strips is that the wrong LED type or protocol has been configured in the LED controller. For example, selecting TM1803 instead of WS2811. Maybe some LEDs don't have enough power. It can cause flickers at the end of the strips. This may also be caused by using video content with little noise in it due to compression (may not be problematic when displayed on a screen but it becomes apparent on LEDs). Some older LED fixtures may not work well when using the Art-Net optimize frames option. | Start your LED controller configuration utility and check the configured LED type. Try different types if you're unsure. Enable the testing mode (see Testing Tab) and select a low brightness colour. This will cause the LEDs to use less power. If the flickers go away, the problem is due to not having enough power going to the LEDs. You'll need to inject more power. The testing mode generates a pure colour, so if this isn't a power problem and a full white test colour doesn't cause flickers, that means the video content is probably the problem. Disable the optimize frames option (see Art-Net). |
General
| Problem | Possible causes | Solutions |
|---|---|---|
| ELM isn't starting and says a DLL is missing. | The Visual Studio 2015 run-time component is missing. | Download and install the Visual C++ Redistributable for Visual Studio 2015 from the Microsoft website. |
| Very high CPU usage. | The computer can't handle your videos. You are looking at a stage and the computer is having a hard time drawing pretty graphics. The output rate is too high. | Reduce the resolution of your videos by using the transcode button (see Video Files). Transcoding can convert to an easier-to-decode format which may also save CPU. If you're using live video capture, try reducing the capture resolution. If the computer is already overloaded, try not to unnecessarily leave ELM on a graphic-heavy screen — minimize the ELM window or go to the settings/project tab. Also make sure to close all monitor windows. Alternatively, lower ELM's output rate (see Project). |
| When moving my project to another computer, the media are missing. | The ELM project file doesn't contain the media and the stage's background images. | You need to move the media to the other computer and put them at the same place relatively to the project file. A good practice is to create a media folder next to your project file. Alternatively, use the consolidate feature of the media library. |
| I see a blank screen when using a remote desktop app like LogMeIn or VNC. | The ELM user interface uses hardware acceleration (DirectX and OpenGL). Some remote desktop apps don't support it or need special configuration. | You may need to configure your remote desktop app to support hardware acceleration. Alternatively, TeamViewer works well with ELM. |
| The eye candy effects aren't working on Mac under Parallels. | ELM needs OpenGL 3.3 and Parallels only supports OpenGL 3.2. | Use Boot Camp instead of Parallels. |
EULA
This End-User License Agreement (EULA) is a legal agreement between you (either an individual or a single entity) and the mentioned author and copyright holder (Lightjams inc.) and distributor (ENTTEC LLC) of this Software for the software product identified above, which includes computer software and may include associated media, printed materials, and "online" or electronic documentation ("SOFTWARE PRODUCT").
By installing, copying, or otherwise using the SOFTWARE PRODUCT, you agree to be bound by the terms of this EULA. If you do not agree to the terms of this EULA, do not install or use the SOFTWARE PRODUCT.
Software product licence
1. Grant of licence. This EULA grants you the following rights: Installation and Use. Each license is registered to one person and covers the use of the SOFTWARE PRODUCT on one or multiple computers depending on the license type, so long as multiple computers are not used at the same time. The license is locked to the computer's CPU and motherboard.
2. Description of other rights and limitations. Limitations exist on Reverse Engineering, Decompilation, Disassembly and changing (adding, deleting or modifying) the resources in the compiled assembly of the SOFTWARE PRODUCT. You may not reverse engineer, decompile, or disassemble the SOFTWARE PRODUCT, except and only to the extent that such activity is expressly permitted by applicable law notwithstanding this limitation.
Updates and maintenance. ELM updates are FREE of charge.
Separation of components. The SOFTWARE PRODUCT is licensed as a single product. Its component parts may not be separated for use on more than one computer.
Software transfer. You may not rent, lease or sublicense the SOFTWARE PRODUCT on a temporary or permanent basis.
Termination. Without prejudice to any other rights, the Author of this Software may terminate this EULA if you fail to comply with the terms and conditions of this EULA. In such event, you must destroy all copies of the SOFTWARE PRODUCT and all of its component parts.
Copyright
All title and copyrights in and to the SOFTWARE PRODUCT (including but not limited to any images, photographs, clipart, libraries, and examples incorporated into the SOFTWARE PRODUCT), the accompanying printed materials, and any copies of the SOFTWARE PRODUCT are owned by the Author of this Software (Lightjams inc). The SOFTWARE PRODUCT is protected by copyright laws and international treaty provisions. Therefore, you must treat the SOFTWARE PRODUCT like any other copyrighted material.
Limited warranty
No warranties. The Author of this Software expressly disclaims any warranty for the SOFTWARE PRODUCT. The SOFTWARE PRODUCT and any related documentation is provided "as is" without warranty of any kind, either express or implied, including, without limitation, the implied warranties of merchantability, fitness for a particular purpose, or noninfringement. The entire risk arising out of use or performance of the SOFTWARE PRODUCT remains with you.
No liability for damages. In no event shall the author of this Software be liable for any special, consequential, incidental or indirect damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or any other pecuniary loss) arising out of the use of or inability to use this product, even if the Author of this Software is aware of the possibility of such damages and known defects.
Note: Due to constant innovation, information within this document is subject to change.