4.12.4a
macOS Mojave 10.14.4
Intel i9
When I add EFX and change checkbox Relative I see sometimes like LSB have small range in their movements.
I see this behavior on different fixtures with different range constraints. As with the effect separately or with any combination with scenes, etc. It seems that the error is of some kind of random nature.
Specially made a screen recording on which this problem is visible.
https://www.youtube.com/watch?v=ucSjt2FkHMA
Who has any ideas?
EFX make strange LSB in position
- GGGss
- Posts: 3319
- Joined: Mon Sep 12, 2016 7:15 pm
- Location: Belgium
- Real Name: Fredje Gallon
You made it relative to nothing ...
Try using a base-position (position scene) and then the relative option in EFX.
This should work better?
PS: you also can use the DMX monitor instead of using the simple desk.
Try using a base-position (position scene) and then the relative option in EFX.
This should work better?
PS: you also can use the DMX monitor instead of using the simple desk.
All electric machines work on smoke... when the smoke escapes... they don't work anymore
-
- Posts: 13
- Joined: Tue Jan 04, 2022 9:15 am
- Location: Saint-Petersburg, Russia
- Real Name: Maxim
I tried to use EFX with Scene contains constant Pan and Tilt with Relative mode. And it works the same way. I just didn't show it in the first video.
I recorded the second video with start position https://www.youtube.com/watch?v=DPod6AZwBAY
Maybe I am doing something wrong?
At first I noticed this behavior on a real head in a large project on slow motion, and then I began to figure out what leads to this.
you also can use the DMX monitor instead of using the simple desk. - thank you, I'll try it!
- GGGss
- Posts: 3319
- Joined: Mon Sep 12, 2016 7:15 pm
- Location: Belgium
- Real Name: Fredje Gallon
Now you are showing that channel 3 & 4 are the fine (LSB) channels of a 16 bit pan/tilt fixture.
I clearly can see the base position (100x100) and the relative part working? No?
Instead of a circle, make it square and you'll notice a combined value of 0x5F00 (24320) to 0x68FF (26879). That is the start position of 0x6400 and a window of 0x0A00
I clearly can see the base position (100x100) and the relative part working? No?
Instead of a circle, make it square and you'll notice a combined value of 0x5F00 (24320) to 0x68FF (26879). That is the start position of 0x6400 and a window of 0x0A00
All electric machines work on smoke... when the smoke escapes... they don't work anymore
-
- Posts: 1342
- Joined: Mon Apr 13, 2015 7:05 am
- Location: Bratislava, Slovakia
- Real Name: Jano Svitok
- Contact:
AFAIK 16 bit values in relative mode do not work if over/underflow happens. There is no mechanism now for over/underflow.
LSB and MSB of base and EFX value are summed independently. No part of result is passed from LSB sum to MSB sum nor the other way round.
That creates artifacts that you see.
LSB and MSB of base and EFX value are summed independently. No part of result is passed from LSB sum to MSB sum nor the other way round.
That creates artifacts that you see.
-
- Posts: 13
- Joined: Tue Jan 04, 2022 9:15 am
- Location: Saint-Petersburg, Russia
- Real Name: Maxim
Thank you! Unfotaunately it looks for me as a bugjanosvitok wrote: ↑Fri Jan 07, 2022 7:50 am AFAIK 16 bit values in relative mode do not work if over/underflow happens. There is no mechanism now for over/underflow.
LSB and MSB of base and EFX value are summed independently. No part of result is passed from LSB sum to MSB sum nor the other way round.
That creates artifacts that you see.

It turns out that I practically cannot use Relative EFX. Only in a scene where I can hardcode an absolute position with null LSB is this applicable. I cannot use two or more EFXs in one collection, most likely I cannot use a smooth transition between collections with Relative EFX and so on. Very sad. Such a powerful mechanism is not finalized

-
- Posts: 13
- Joined: Tue Jan 04, 2022 9:15 am
- Location: Saint-Petersburg, Russia
- Real Name: Maxim
No, unfortunately they do not work. LSB range is [0..227]. It is very likely that this is still due to incorrect handling of the uint8 overflow
- GGGss
- Posts: 3319
- Joined: Mon Sep 12, 2016 7:15 pm
- Location: Belgium
- Real Name: Fredje Gallon
Thinking of it, I searched for a very old thread of mine, looking at the same behavior, way back in '19 or so. Didn't find it.
Obviously this is a bug and pitty to have it in the most usefull feature of QLC+...
I'd change the title of this post to 'BUG confirmed - EFX make strange LSB in position', so @Massimo can check it (again?) Please?
Found it: viewtopic.php?p=29696#p29696
Obviously this is a bug and pitty to have it in the most usefull feature of QLC+...
I'd change the title of this post to 'BUG confirmed - EFX make strange LSB in position', so @Massimo can check it (again?) Please?
Found it: viewtopic.php?p=29696#p29696
janosvitok wrote: ↑Fri Jan 07, 2022 7:50 am AFAIK 16 bit values in relative mode do not work if over/underflow happens. There is no mechanism now for over/underflow.
LSB and MSB of base and EFX value are summed independently. No part of result is passed from LSB sum to MSB sum nor the other way round.
That creates artifacts that you see.
All electric machines work on smoke... when the smoke escapes... they don't work anymore
- mcallegari
- Posts: 4932
- Joined: Sun Apr 12, 2015 9:09 am
- Location: Italy
- Real Name: Massimo Callegari
- Contact:
Can you please share a simple test project?
Just to make sure we see the same things. Thanks
Just to make sure we see the same things. Thanks
-
- Posts: 13
- Joined: Tue Jan 04, 2022 9:15 am
- Location: Saint-Petersburg, Russia
- Real Name: Maxim
No problem! I attached the simplest project with described behaviour to this post. Please play Test collection.mcallegari wrote: ↑Sat Jan 08, 2022 10:46 am Can you please share a simple test project?
Just to make sure we see the same things. Thanks
- Attachments
-
LSB test.qxw
- (2.45 KiB) Downloaded 941 times
-
- Posts: 1342
- Joined: Mon Apr 13, 2015 7:05 am
- Location: Bratislava, Slovakia
- Real Name: Jano Svitok
- Contact:
I started working on this issue in https://github.com/mcallegari/qlcplus/pull/999
I stopped when I could not explain the need for explicit relationship between lsb and msb in fixture defs.
I stopped when I could not explain the need for explicit relationship between lsb and msb in fixture defs.
- mcallegari
- Posts: 4932
- Joined: Sun Apr 12, 2015 9:09 am
- Location: Italy
- Real Name: Massimo Callegari
- Contact:
There is one mistake on both sides.
One mistake is in the project: in the Collection, Scene and EFX are in inverted order!
If you look at the "Center eight" Collection in the tutorial #7 project you will see that the order is top-down. So Scene first and EFX is second in the list.
The other mistake is in the QLC+ code. LSB channels shouldn't be treated as relative. I can easily apply a fix but I can't provide a macOS test version so quickly. Do you have any chance to test a Windows version instead?
One mistake is in the project: in the Collection, Scene and EFX are in inverted order!
If you look at the "Center eight" Collection in the tutorial #7 project you will see that the order is top-down. So Scene first and EFX is second in the list.
The other mistake is in the QLC+ code. LSB channels shouldn't be treated as relative. I can easily apply a fix but I can't provide a macOS test version so quickly. Do you have any chance to test a Windows version instead?
-
- Posts: 1342
- Joined: Mon Apr 13, 2015 7:05 am
- Location: Bratislava, Slovakia
- Real Name: Jano Svitok
- Contact:
What do you mean by that?
- mcallegari
- Posts: 4932
- Joined: Sun Apr 12, 2015 9:09 am
- Location: Italy
- Real Name: Massimo Callegari
- Contact:
These need to be removed
https://github.com/mcallegari/qlcplus/b ... e.cpp#L513
https://github.com/mcallegari/qlcplus/b ... e.cpp#L523
-
- Posts: 13
- Joined: Tue Jan 04, 2022 9:15 am
- Location: Saint-Petersburg, Russia
- Real Name: Maxim
mcallegari wrote: ↑Mon Jan 10, 2022 6:54 pm There is one mistake on both sides.
One mistake is in the project: in the Collection, Scene and EFX are in inverted order!
If you look at the "Center eight" Collection in the tutorial #7 project you will see that the order is top-down. So Scene first and EFX is second in the list.
The other mistake is in the QLC+ code. LSB channels shouldn't be treated as relative. I can easily apply a fix but I can't provide a macOS test version so quickly. Do you have any chance to test a Windows version instead?
Thank you for pointing out that there is the only correct order, because for me it is not at all obvious. But when I tested this, I assumed and tested such a feature in different orders. There has always been a mistake.
Yes, I can test it on Windows. But for real work I can use only Mac.
-
- Posts: 1342
- Joined: Mon Apr 13, 2015 7:05 am
- Location: Bratislava, Slovakia
- Real Name: Jano Svitok
- Contact:
I think the order in case of relative EFX does not matter (see https://github.com/mcallegari/qlcplus/b ... e.cpp#L540 where all collected static values and all collected relative values are merged).
Re: drop relative LSB: I don't think it's that easy. You can't simply split 16 bit number to LSB and MSB, pass it through different code paths and hope for the correct result.
EFX produces pan/tilt in float format 0.0...255.0 (if I got it right). Relative mode subtracts 127.5 from that value (e.g. -127 for MSB and -127 for LSB) so that the resulting range is -127.5 to 127.5.
If the LSB is written without relative flag:
- multiple concurrent relative EFX: LSB of all but the last one will be discarded
- LSB of the static scene will be discarded
Unfortunately I don't have enough time to setup devenv again, and test these changes...
Re: drop relative LSB: I don't think it's that easy. You can't simply split 16 bit number to LSB and MSB, pass it through different code paths and hope for the correct result.
EFX produces pan/tilt in float format 0.0...255.0 (if I got it right). Relative mode subtracts 127.5 from that value (e.g. -127 for MSB and -127 for LSB) so that the resulting range is -127.5 to 127.5.
If the LSB is written without relative flag:
- multiple concurrent relative EFX: LSB of all but the last one will be discarded
- LSB of the static scene will be discarded
Unfortunately I don't have enough time to setup devenv again, and test these changes...
- mcallegari
- Posts: 4932
- Joined: Sun Apr 12, 2015 9:09 am
- Location: Italy
- Real Name: Massimo Callegari
- Contact:
Please test version 4.12.5.115 for Windows and let me know if this is the expected behaviour.ruxymm wrote: ↑Mon Jan 10, 2022 8:10 pm Thank you for pointing out that there is the only correct order, because for me it is not at all obvious. But when I tested this, I assumed and tested such a feature in different orders. There has always been a mistake.
Yes, I can test it on Windows. But for real work I can use only Mac.
Test versions available here: viewtopic.php?f=12&t=3135
- GGGss
- Posts: 3319
- Joined: Mon Sep 12, 2016 7:15 pm
- Location: Belgium
- Real Name: Fredje Gallon
First test shows a successful outcome.
Unless you go relative with a base-position of 0,0 it shows a hiccup. (What can be expected: in DMX world there is no negative value)
I personally don't think it's necessary to alter this.
Unless you go relative with a base-position of 0,0 it shows a hiccup. (What can be expected: in DMX world there is no negative value)
I personally don't think it's necessary to alter this.
All electric machines work on smoke... when the smoke escapes... they don't work anymore
-
- Posts: 13
- Joined: Tue Jan 04, 2022 9:15 am
- Location: Saint-Petersburg, Russia
- Real Name: Maxim
I checked it on the same project. Version QLC+_4.12.5.115 Now there is a difference in behaviour with different scene order and EFX in the collection. In the forward order, everything began to work correctly in this example, and in the reverse order (EFX -> Scene), the LSB was always zero.mcallegari wrote: ↑Tue Jan 11, 2022 8:09 amPlease test version 4.12.5.115 for Windows and let me know if this is the expected behaviour.ruxymm wrote: ↑Mon Jan 10, 2022 8:10 pm Thank you for pointing out that there is the only correct order, because for me it is not at all obvious. But when I tested this, I assumed and tested such a feature in different orders. There has always been a mistake.
Yes, I can test it on Windows. But for real work I can use only Mac.
Test versions available here: viewtopic.php?f=12&t=3135
- mcallegari
- Posts: 4932
- Joined: Sun Apr 12, 2015 9:09 am
- Location: Italy
- Real Name: Massimo Callegari
- Contact:
For the record, Collection steps order is explained in the documentation, even with Scene + EFX example.
https://www.qlcplus.org/docs/html_en_EN ... ditor.html
https://www.qlcplus.org/docs/html_en_EN ... ditor.html