DMX Fixture POP
Summary
The DMX Fixture POP constructs DMX universes from a POP input, and is used in conjunction with a DMX Out POP to send DMX to a device.
In the POP input, each primitive is analogous to a fixture. Each fixture is iterated over and the DMX profile defined on the Channels page is used to construct the DMX universes for each fixture. The fixture/primitives are iterated over in the order they're defined in the POP.
The following primitive attributes, as unsigned integers, can be used to specify net, subnet, universe, channel, and netaddress, allowing for per-fixture customization without needing to use the Routing Table:
DMXFixtureNetDMXFixtureSubnetDMXFixtureUniverseDMXFixtureChannelDMXFixtureNetAddress
The DMX Map DAT can be used to inspect the DMX universes created.
Creating the DMX Profile
The DMX Profile is defined by the Channel sequence on the DMX Profile page.
DMX Channels are sequenced in the universe output in the same order they're defined on the DMX Profile page.
For any given Channel sequence, all attribute components will be interleaved together. Eg. 'P' will be interleaved as 'Px Py Pz'. If the DMX profile requires them to not be interleaved then they will instead need to be separated into their own Channel sequence blocks.
Multiple attributes can be specified together: Eg. 'P Color' will interleave P and Color together like so: 'Px Py Pz Colorr Colorg Colorb Colora'. If the interleaved components are of different resolutions, then they will need to be separated into their own Channel sequence blocks, but by enabling Merge with Above Block they can be interleaved together.
For Point Value Types, all points will be iterated over before the next Channel Sequence.
Individual attribute components can also be specified. Eg. 'P(0) P(1)' to use just position x and y.
Attribute components are interleaved by value unless Interleave Bytes is enabled for the attribute grouping.
Example: Position attribute P with 16-bit resolution will be interleaved as Px[0] Px[1] Py[0] Py[1] Pz[0] Pz[1] ... when the Interleave Bytes toggle is disabled, but interleave as Px[0] Py[0] Pz[0] Px[1] Py[1] Pz[1] ... when the Interleave Bytes toggle is enabled.
Auto Layout Mode
The DMX Fixture POP is in Auto Layout mode when the Auto Layout toggle is enabled, or as a default when the toggle is disabled and no routing table is referenced, or the routing table has no rows.
Auto Layout mode auto-increments channel and universe values from a defined starting point (using the net, subnet, universe, and channel parameters). Primitives are iterated over in primitive order (eg. prim 0 is first) and each primitive's points are iterated over in point order (eg. point 0 is first).
The DMX Profile page defines the channel layout for each primitive. It is executed once per primitive, and then a channel gap is added (specified by parameter) between each primitive channel layout.
If Quantize Universe is set to off, then the next primitive will begin immediately after the channel gap. But if Quantize Universe is set to By Fixture, it will first check to see if the next primitive (ie. fixture) can fit in the remaining channels of the universe, and if not, it will jump to the next universe at channel=1. Similarly, if Quantize Universe is set to By Components, and a multi-component DMX Channel entry on the DMX Profile page cannot fit all components in the remaining channels of the universe (eg. P has 3 components x y z so with 8-bit resolution would require 3 remaining channels), then it will jump to the next universe at channel=1.
When the DMXFixtureNetAddress attribute is set, each specific net address value will have their own independently incrementing channel values. Eg. if there are 8 primitives each of exactly 512 channels, and there are 4 with DMXFixtureNetAddress=192.168.0.1 and 4 with DMXFixtureNetAddress=192.168.0.2, then the resulting channel layout will be 4 universes [0-3] with netaddress=192.168.0.1 and 4 universes [0-3] with netaddress=192.168.0.2.
When the DMXFixtureUniverse attribute is set, the channel value is set to 1 for that universe, unless DMXFixtureChannel is also set. If the DMXFixtureUniverse is greater than 15 then the DMXFixtureNet and DMXFixtureSubnet attribute values will not be used if set.
See also: DMX Out POP, DMX Map DAT, DMX
Parameters - Fixture Page
active - When enabled, will actively update the fixture and universe data, and if used in a DMX Out POP will be sent out to the device. If disabled, the DMX Out POP will not merge the DMX universes constructed by this POP for sending.
autolayout - When enabled, the universes will be constructed sequentially starting from net, subnet, universe, and channel specified in the parameters. For example, if starting a net=0, subnet=0, universe=1, channel=0, then the DMX Fixture POP will iterate through all 512 channels using the profile at which point it will move to universe 2. When disabled, a Routing Table must be used instead, and the universes manually assigned to a primindex.
routingtable - Use a Routing Table to assign specific net, subnet, universe values to a fixture/primitive. Additionally, netaddress may optionally be specified to override those on the DMX Out POP. The routing table will override use of parameters, as well as any of the reserved attributes: DMXFixtureNet, DMXFixtureSubnet, DMXFixtureUniverse, DMXFixtureChannel, and DMXFixtureNetAddress.
net - When using Auto Layout, specify the starting net value.
subnet - When using Auto Layout, specify the starting subnet value.
universe - When using Auto Layout, specify the starting universe value.
channel - When using Auto Layout, specify the starting channel value.
changap - When using Auto Layout, specify the amount of channels between fixtures. Eg. if fixture 1 ends on channel 200 and there is a channel of 10, then fixture 2 will start on channel 211.
quantizeuni - ⊞ - Specify the level of quantizing to perform within a universe. It can either be set to be done By Fixture, or By Component.
- Off
off- When set to Off, no quantizing is done, and both channels and fixtures can bridge universes.
- By Fixture
fixture- When set to By Fixture, fixtures cannot bridge universes (ie. have their channel range start in a different universe than it ends in), meaning that it must be a maximum of 512 channels. Also, if a fixture cannot fit in the remaining channels of a universe, then it will be moved to the next one.
- By Component
component- When set to By Component, multi-component DMX Channel entries (eg.Phas 3 components x y z which requires 3 channels with 8-bit resolution) cannot bridge universes. If it cannot fit into the remaining channels of a universe, then it will be moved to the next one.
Parameters - DMX Profile Page
dmxchan - Start of Sequential Parameter Blocks used to define the DMX profile
dmxchan0name - Specify the unique DMX Channel identifier.
dmxchan0valuetype - ⊞ - Specify how the channels values are iterated, and how the attributes are sourced.
- Point
point- When using the Point value type, each point will be iterated over for this channel block and have their values interleaved, before moving on to the next channel.
- Primitive
primitive- When using the Primitive value type, the channel value will be interleaved from the value source only once per primitive/fixture, before moving on to the next channel.
dmxchan0valuesource - ⊞ - For the DMX channel value, gets it from an attribute or from a parameter.
- Constant
constant- Set the channel values using a constant. Note: if Value Type is Point, each point will still be iterated over once and have their value set to the constant value. In other words, the number of channels used is still the same whether using a constant or attribute value source.
- Attribute
attribute- Set the values using an attribute. Multiple attributes can be specified together. They will be all be interleaved.
dmxchan0group - Optionally select a point group. Only points within the group will be used for universe creation, rather than all points.
dmxchan0numcomps - ⊞ - Number of components of the new attribute.
- 1
1- Number of constant components to use.
- 2
2-
- 3
3-
- 4
4-
dmxchan0value - ⊞ - Set the constant value.
- Value
dmxchan0valuer-
- Value
dmxchan0valueg-
- Value
dmxchan0valueb-
- Value
dmxchan0valuea-
dmxchan0attr - Set the attributes to interleave. Multiple attributes can be specified together.
dmxchan0valueres - ⊞ - The value resolution. Note: one DMX channel is 8-bit (ie. one byte and 0-255), so if a value is greater than 8-bit, it will use more than one channel: Eg. 16-bit uses 2 channels.
- 8-bit
b8-
- 16-bit
b16-
- 24-bit
b24-
- 32-bit
b32-
dmxchan0normalized - When enabled, values of 0-1 are expected, and they will be scaled to the appropriate range for the resolution (ie. 0-255 for 8-bit). When disabled, the values will be output as-is. Clamping is done in both cases.
dmxchan0merge - When enabled, will interleave channel values with the above block. The blocks must be of the same value type and value source. This feature is useful if needing to interleave values of different resolutions.
dmxchan0interleavebytes - When enabled, attribute component values will be interleaved by byte order, instead of value order. Example: Position attribute P with 16-bit resolution will be interleaved as Px[0] Px[1] Py[0] Py[1] Pz[0] Pz[1] ... when the toggle is disabled, but interleave as Px[0] Py[0] Pz[0] Px[1] Py[1] Pz[1] ... when the Interleave Bytes toggle is enabled. This also means that if the components have an 8-bit value resolution, then the toggle will have no effect. Interleave Bytes can only be enabled at the root (ie. top) DMX Channel in the case where multiple DMX Channel blocks are merged together with Merge Above Block.
Parameters - Common Page
bypass - Pass through the first input to the output unchanged.
freeextragpumem - Free memory that has accumulated when output memory has grown and shrunk.
delinputattrs - Only output which attributes you specify in this POP - helps isolate attributes into a separate branch.
parmcolorspace - ⊞ - Controls how all color parameters on this node are interpreted. The color values as treated as being in the selected color space, and are converted to the Working Color Space before they are used as part of the node's operation. Note that this does not change the color space of the node itself, as that is always in the Working Color Space.
- sRGB
srgb- sRGB color space, with sRGB transfer function. Considered an SDR color space with respect to Reference White.
- sRGB - Linear
srgblinear- sRGB color space, with linear transfer function. Considered an SDR color space with respect to Reference White.
- Rec.601 (NTSC)
rec601ntsc- Rec.601 with NTSC primaries color space, with Rec.601 transfer function. Considered an SDR color space with respect to Reference White.
- Rec.709
rec709- Rec.709 color space, with Rec.709 (same as Rec.2020) transfer function. Considered an SDR color space with respect to Reference White.
- Rec.2020
rec2020- Rec.2020 color space, with Rec.2020 (same as Rec.709) transfer function. Considered an HDR color space with respect to Reference White.
- DCI-P3
dcip3- DCI-P3 color space, with D65 white point and 2.6 gamma transfer function. Considered an HDR color space with respect to Reference White.
- DCI-P3 (D60)
dcip3d60- DCI-P3 "D60 sim" color space, with D60 white point, and 2.6 gamma transfer function. Considered an HDR color space with respect to Reference White.
- Display-P3 (D65)
displayp3d65- Display-P3 color space, with D65 white point, and sRGB gamma transfer function. Considered an HDR color space with respect to Reference White.
- ACES2065-1
aces2065-1- ACES 2065-1 (also known as ACES AP0) color space, with a linear gamma transfer function. Considered an HDR color space with respect to Reference White.
- ACEScg
acescg- ACEScg (also known as ACES AP1) color space, with a linear gamma transfer function. Considered an HDR color space with respect to Reference White.
- Passthrough
passthrough- When selected, the color values will be used as-is in the operation, without any modification or attempt to convert them into the Working Color Space.
parmreferencewhite - ⊞ - When converting a parameter color value to the Working Color Space, this controls how it should be treated with respect to Reference White. If the Working Color Space is the same Reference White, then no adjustment is done. If they are different, then the Reference White level (brightness) of this color will be adjusted to the range expected by the Working Color Space. For example if the project is set to have a SDR Reference White of 120 nits, and the HDR Reference White is 80 nits, then a color of (1, 1, 1), which is 120 nits in the SDR color space, will be converted to be (1.5, 1.5, 1.5), which is 120 nits still in the HDR Working Color Space.
- Default For Color Space
default- Will use either the SDR or the HDR Reference White, based on the color space selected.
- Use Parent Panel
useparent- Will use the Reference White that the parent panel has selected. If the top-level panel also has 'Use Parent' selected, then 'UI Reference White' will be used.
- Standard (SDR)
sdr- Will treat the Parameter Color Space as SDR for it's reference white value.
- High (HDR)
hdr- Will treat the Parameter Color Space as HDR for it's reference white value.
- UI
ui- Will treat the Parameter Color Space as UI for it's reference white value. This uses the 'UI Reference White Nits' value for it's brightness.
Operator Inputs
- Input 0: -
Info CHOP Channels
Extra Information for the DMX Fixture POP can be accessed via an Info CHOP.
Common POP Info Channels
Common Operator Info Channels
- total_cooks - Number of times the operator has cooked since the process started.
- cook_time - Duration of the last cook in milliseconds.
- cook_frame - Frame number when this operator was last cooked relative to the component timeline.
- cook_abs_frame - Frame number when this operator was last cooked relative to the absolute time.
- cook_start_time - Time in milliseconds at which the operator started cooking in the frame it was cooked.
- cook_end_time - Time in milliseconds at which the operator finished cooking in the frame it was cooked.
- cooked_this_frame - 1 if operator was cooked this frame.
- warnings - Number of warnings in this operator if any.
- errors - Number of errors in this operator if any.
TouchDesigner Build: