Comments (13)
You can try the above values yourself to verify the tweening requires little endian notation
eg. compare:
msi-rgb FCA84210 FCA84210 FCA84210
Aliased glitchy fade.
to:
msi-rgb CF8A2401 CF8A2401 CF8A2401
Perfectly smooth fade!
And the OP was very correct this is NOT in the docs, and yet is essential to designing effects properly with msi-rgb
.
from msi-rgb.
The problem with this tool’s interface is that it exposes the hardware with least amount of sugar on top of it as possible. That means that the colour specifiers, for example, do not exactly specify a single colour, but rather four of them.
So something like
.../msi-rgb AABBCCDD 00112233 44556677
ends up showing colours #AA0044
, #BB1155
, #CC2266
and #DD3377
in sequence: i.e. the colour matrix is transposed. It is easy to see if written as a table:
1 | 2 | 3 | 4 | |
---|---|---|---|---|
R | AA | BB | CC | DD |
G | 00 | 11 | 22 | 33 |
B | 44 | 55 | 66 | 77 |
transposed:
R | G | B | ||
---|---|---|---|---|
1 | AA | 00 | 44 | #aa0044 |
2 | BB | 11 | 55 | #bb1155 |
3 | CC | 22 | 66 | #cc2266 |
4 | DD | 33 | 77 | #dd3377 |
Documentation would be much appreciated. If you need help figuring anything out, ping me and we'll figure it out!
from msi-rgb.
Okay. Good to know.
If you need help figuring anything out, ping me and we'll figure it out!
Will do! Thank You!
from msi-rgb.
We can open a pull request if we need it 🐎
from msi-rgb.
@nagisa I notice you are using symmetric tweening values in your example
eg. AA BB CC DD 00 11 22 33, etc.
The SIO chip uses reverse endianity, so symmetric values always give the right tweening, but limits the number of tweens to 4 instead of 8.
To set tweens in correct order, use little endian notation.
Eg.
A0 ==> 0A
13 ==> 31
02 ==> 20
Note that these values are per RGB channel, so they represent brightness of the channel at a given tweening step (of which there are 8, one of 16 possible levels per step).
Also as an aside, I was able to double the colour depth by including half refresh rates which doubles the colour depth without any flicker. This gives much smoother fades and transitions (the default is rather crude and aliased).
I shall submit a pull request with the improved color mapping algorithm at some point.
from msi-rgb.
What do you mean by "limits the number of colors to symmetric values"? Isn't the range the same - from 0x00 to 0xFF? Even if it were setting the wrong colour, 0xA0 yields a very different colour from 0x0A. Wouldn't it be obvious that it was wrong?
from msi-rgb.
from msi-rgb.
The context is that the reversed endianity issue is not mentioned in the docs, and is obvious to anyone that has actually tried to get specific tweening out of msi-rgb.
It should be modified to allow big-endian values to be passed rather than forcing users to pass little-endian (reversed) values. Obviously symmetrical values (00, 11, 22 .. FF) are exempt from this issue. At least the help output should mention this.
BTW all x86-based operating systems are little-endian. This boundary issue regularly bit me back when I developed on Sunmicro's Solaris (previous SPARC CPUs were big-endian; don't know what Fujitsu plans to do in upcoming generations).
from msi-rgb.
Works fine here. Byte order is not the issue. Do note that there are 8 different colours, not 4. Each nibble is a different colour.
from msi-rgb.
The four byte value for each colour channel (RGB) represents 8 tweening steps (one of 16 levels of brightness possible at each step).
You are getting the wrong tweening if you don't reverse the endianity. That means switching the nibble order of individual bytes (2F --> F2), not the bit order.
So a smooth fade to black on a given channel:
FC A8 42 10
becomes:
CF 8A 24 01
Without this your fades will look aliased (glitchy - not smooth).
It is a fine point and easy to miss, but my OCD would not rest until I figured this out.
from msi-rgb.
So do you have a demo of that?
from msi-rgb.
That's... interesting. I actually had seen the pattern and had documented it but genuinely thought someone just decided to use weird patterns.
from msi-rgb.
Things get weird this close to the metal. Esp. when the metal is an undocumented proprietary SIO chip.
from msi-rgb.
Related Issues (20)
- Was working but now giving error HOT 2
- MSI MPG X570 Gaming Pro Carbon [WiFi ATX] HOT 3
- MSI B450 Tomahawk Max wrong color HOT 1
- MSI B450 Tomahawk Max wrong color HOT 1
- MSI B450 Tomahawk Max HOT 18
- [Msi b450m Pro-VDH Max] This motherboard works perfectly
- [MSI B450 MORTAR MAX] Not working on Debian
- MSI MPG x570 Gaming Edge Wifi - Not working HOT 4
- Seems to be working on B450M GAMING PLUS (MS-7B87) HOT 1
- Pre-built binaries HOT 1
- b450m pro-vdh max works too
- MSI B450 Tomahawk Max IO field behaviors (incomplete but this might help)
- Z390 Gaming Plus
- Board:B450-GAMING-PRO-CARBON-AC not on list
- Working on MSI B360 gaming plus. But Colors inverted
- Working on B450M Mortar Titanium HOT 2
- MS-B920 (Trident3) implementation
- Does not compile in Debian 10 Gnome 3.30 HOT 3
- Can you add MSI MPG Z490 GAMING EDGE WIFI support, please ? HOT 2
- Can you add MSI PRO B760-P support, please ?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from msi-rgb.