I'm using Adafruit neopixel library, i forgot to mention (but you figured that out)
Setting brightness to 255 (max) indeed solves the "5 to low" "issiue", doh.
So, if i get it right, when i give a value of 255, it does that times 255 (or 50, the original brightness setting) and that would make the stored values 65.025 ? so how is it displaying 255 on the output instead of 65025 ? (omg i feel so stupid atm... i'm so sorry )
The idea is to retrieve current r g b w values and display then through a webpage. but those values are also used to set new values and like this, it will get progressively lower (-5 every time)
The adafruit library puts things in order, the only thing i got wrong first time is that they add white infront of r g b values in the 32bit (so to the left). now the values match order, just -5 (because of brightness setting apparently!)
The source code uses: cc = (cc * brightness) >> 8. That means, that the color component is multiplied with the brightness value which would give a value in the range 0..65535 but then the value is shifted 8 to the right which means that only the high byte of the word is used: 255 * 255 = 65535 or 0xFFFF and then the shift: 0xFFFF >> 8 = 0xFF or 255.