static void assignBands(float rnd, int[][] pal, int split, int cur) {
		float hue, sat;
		int place = (256 / split) * cur;

		for (int i = 0; i < 256; i += split) {
			if (i <= 60) {
				hue = (float) (i) / 420.0f;
				sat = (i / 60.0f) * 0.2f + 0.8f;
			} else if (i > 60 && i <= 120) {
				hue = (float) (i) / 500.0f;
				sat = ((120 - i) / 60.0f);
			} else if (i > 120 && i <= 220) {
				hue = (float) (i + 20) / 420.0f;
				sat = 0;
			} else // if (i > 200)
			{
				hue = (float) (i + 10) / 420.0f;
				sat = (220 - i) / 36.0f;
			}

			Color hsb = Color.getHSBColor(hue + rnd, sat / 2.0f,
					1.0f - sat / 4.0f);

			pal[place + i / split][0] = hsb.getRed();
			pal[place + i / split][1] = hsb.getGreen();
			pal[place + i / split][2] = hsb.getBlue();
		}
		if (cur < (split - 1))
			assignBands(rnd, pal, split, cur + 1);
	}