Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[fixture definition] add emitters layout parameters #1156

Closed
mcallegari opened this issue Nov 13, 2018 · 7 comments
Closed

[fixture definition] add emitters layout parameters #1156

mcallegari opened this issue Nov 13, 2018 · 7 comments
Assignees

Comments

@mcallegari
Copy link
Owner

mcallegari commented Nov 13, 2018

One more thing is needed in fixture definitions to help out the previews and avoid guessing.
As mentioned here, the 2D preview tries to understand the heads layout by doing some spatial calculations.
However, this mechanism fails on several cases.

Moreover, there are 2 other cases not considered at all at the moment:

  • some blinders have multiple emitters, but they usually work together. Right now QLC+ shows just one emitter representing all of them
  • fixtures have multiple operational modes, and across modes, heads can be different. Some LED bars have modes with a limited number of channels, but the light emitters are physically always the same.
    Example 3 DMX channels: intensity, shutter, color macro --> 8 physical emitters.

The proposal is to add 2 new fields to physical properties to indicate the emitter matrix Width x Height.
In XML could be something like this in the Physical section:
<Layout Width="8" Height="1" />

The default will be 1x1 and if not changed, it won't even be saved in XML. This is to avoid changing all the current definitions and avoid to waste space.

@fxedel @FloEdelmann sounds good ?

@mcallegari mcallegari self-assigned this Nov 13, 2018
@fxedel
Copy link
Contributor

fxedel commented Nov 13, 2018

This definitely sounds good, as it will fix the pixel arrangement for many matrix heads!

1x1 will result in the current behavior (ratio guessing)?

What if the amount of specified heads is higher or lower than width*height? Is this an error? And will empty heads be allowed now?

@mcallegari
Copy link
Owner Author

mcallegari commented Nov 13, 2018

Leaving 1x1 and then definining let's say 6 heads, the latter will have precedence, as it is an explicit user setting. [EDIT] Even better, this could actually throw a warning of inconsistence.

Mode heads lower than physical heads could follow these rules:

  • 1 head should never be defined cause it's the default. I've seen so many wrong definitions where users added all the channels to 1 head. No need. QLC+ implicitely define at least one head, and autodetects channels. [EDIT] I might add this check to validation actually.
  • I've seen bars with DMX modes to group LEDs. Example: 8 physical emitters, 4 heads (or zones). The behaviour will be guessed and first head will control LED 1 & 2, seconds head LED 3 & 4 and so on.
    At least, this is how they usually work. Edge cases will probably rest uncovered.

As usual. it is impossible to cover every single case, so with this I'm trying at least to get closer to reality.

@FloEdelmann
Copy link
Contributor

That sounds really nice to me! I guess this will be an addition to the multihead branch / QLC+ 5 fixture format?

@mcallegari
Copy link
Owner Author

Definitions are in common, so QLC+ 4/5.
Multihead branch, yes, that was the idea.

@mcallegari
Copy link
Owner Author

Alright, with the current sources you can achieve this
image
That is 1-channel mode, showing all the physical emitters

@fxedel
Copy link
Contributor

fxedel commented Nov 18, 2018

@mcallegari That's pretty cool! The preview actually shows the correct pixel amount, even if only one channel is specified 👍

I haven't noticed yet that you changed the spec to include width/head in the physical section, not in the heads section. This definitely makes sense!

Is it allowed (or recommended) to reuse a channel in the heads section? For example to define an even/odd mode:

 <Mode Name="Even/Odd">
  <Channel Number="0">Dimmer odd</Channel>
  <Channel Number="1">Dimmer even</Channel>
  <Head>
   <Channel>0</Channel>
  </Head>
  <Head>
   <Channel>1</Channel>
  </Head>
  <Head>
   <Channel>0</Channel>
  </Head>
  <Head>
   <Channel>1</Channel>
  </Head>
 </Mode>
 <Physical>
  <!-- ... -->
  <Layout Width="4" Height="1"/>
</Physical>

@mcallegari
Copy link
Owner Author

Layout is definitely a physical property. See the updated fixture editor panel:

image

Re-use channel in heads: doesn't make much sense to me from a pure definition perspective.
If that helps QLC+ preview though, maybe it could work. Never tried actually

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants