Class MStackingPlanner

java.lang.Object
eu.bandm.music.entities.MStackingPlanner

class MStackingPlanner extends Object
Realize a strategy when a complex denominator of a proportion (of an event duration) requires the stacking of possibly more than one new essential brackets.
  • Field Details

    • parameters_divide

      protected final MCover.CheckedParameters_divide parameters_divide
      Parameters for the stacking and division strategies. Set once by constructor.
  • Constructor Details

  • Method Details

    • makePlan

      MStackingPlanner.Plan makePlan(MTree mt, int eventToProcess, int upto, List<Rational> limits)
      Central service provider; is only called when synthesizing is necessary (= to add a new alterative to "mt").

      Performs a kind of spectral analysis: create a new node and memorize it for LATER insertion, add quality values to THIS Cover and re-enter rh-generation with a certain PLAN (=stacking order) for the necessary divisions. Is only called from MCover.doSynthOrImplicit(MTree,MStackingPlanner.Plan).
      Therefore it could be inlined, but is extracted to this class to be pluggable: A different Plan factory can be employed when calling MCover.process(MTree,Parameters_approximate,Parameters_divide,List,MStackingPlanner).

      Parameters:
      eventToProcess - the lowest event, the END of which can not yet be processed:
      upto - the last event the start of which falls into the mt/node to split From EV{eventToProcess}.end=limits[eventToProcess+1] to EV{upto}.start=limits[upto] all timepoints must be considered.
      mt - the node which must be split.
      limits - all timepoints.
    • div_plan

      List<Integer> div_plan(PrimeFactors pf, MTree.CheckedParameters bracketParameters)
      Split factor into a plan, according to global input parameters.