Reset channels to black/zero on wakeup to prevent blinking the cached value while waiting for sync()
Refactor away next_channel()