better handling of note assignment so there are no rounding errors === undefined colors