public TimeEffect getEffect(int hours, int minutes, int seconds) {

    TimeEffect newEffect = new TimeEffect(hours, minutes);
    Bracket effects = getEffectBracket(hours, minutes);

    int minPrev = effects.prior.minutesSince(hours, minutes);
    minPrev *= 60;
    minPrev += seconds;
    int minNext = effects.next.minutesUntil(hours, minutes);
    minNext *= 60;
    minNext -= seconds;

    float percentComplete = (float) (minPrev / (double) (minPrev + minNext));
    //        System.out.println(minPrev + ":" + minNext + ":" + percentComplete);

    // set colors
    for (Integer cid : effects.prior.colors.keySet()) {
      Color newColor = getColor(effects.prior, effects.next, cid, percentComplete);

      newEffect.colors.put(cid, newColor);
    }

    // entropy
    newEffect.entropy =
        easingFunction.valueAt(percentComplete, effects.prior.entropy, effects.next.entropy);

    return newEffect;
  }