com.softsynth.jmsl.score.transcribe
Class BeatDivisionSchemeList

java.lang.Object
  extended by com.softsynth.jmsl.score.transcribe.BeatDivisionSchemeList

public class BeatDivisionSchemeList
extends java.lang.Object

This class holds a static Vector of BeatDivisionSchemes, which are valid for the entire piece under examination. A BeatDivisionScheme holds info on how to divide up a window up time (ex. triplet, with 2/3 members required to be found to qualify)

defaultSetup() sets up a BeatDivisionSchemeList of general purpose use. Code and explanation for a few BeatDivisionSchemes follow:


    // 16ths
    BeatDivisionScheme b = new BeatDivisionScheme();
    // covers a quarter note
    b.setTimeSpan(1.0);
    // could just be 1/4 of a quarter note
    b.setMinTimeSpan(0.25);
    // any number of sixteenths in beat span should be considered
    b.setMinRequired(0);
    // time span split into how many divisions by this 
    b.setNumberOfDivisions(4);
// Can this beat division scheme fill a beat independently of what beat it start on in the measure?
    b.setConformToBeat(true);
    // add this beatDivisionScheme to the overall quantization strategy
    BeatDivisionSchemeList.addBeatDivisionScheme(b);

    // 8th note triplet
    b = new BeatDivisionScheme();
    b.setTimeSpan(1);
    b.setMinTimeSpan(b.getTimeSpan());
    // consider this even if only 2 of 3 triplets are present
    b.setMinRequired(2);
    b.setNumberOfDivisions(3);
    BeatDivisionSchemeList.addBeatDivisionScheme(b);

    // 16th quintuplet
    b = new BeatDivisionScheme();
    b.setTimeSpan(1);
    b.setMinTimeSpan(b.getTimeSpan());
    // consider this even if only 4 of 5 quintuplets are present
    b.setMinRequired(4);
    b.setNumberOfDivisions(5);
    BeatDivisionSchemeList.addBeatDivisionScheme(b);




    

Author:
Nick Didkovsky, Feb 7, 2002 , (c) 2002 Nick Didkovsky, All Rights reserved.
See Also:
BeatDivisionScheme

Constructor Summary
BeatDivisionSchemeList()
           
 
Method Summary
static void addBeatDivisionScheme(BeatDivisionScheme bds)
          Add a BeatDivisionScheme to this project's list of valid schemes.
static void defaultSetup()
          Sets up a BeatDivisionSchemeList of general purpose use.
static java.util.Vector getBeatDivisionSchemes()
           
static void removeAllBeatDivisionSchemes()
          Clear out all beat division schemes
static int size()
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BeatDivisionSchemeList

public BeatDivisionSchemeList()
Method Detail

addBeatDivisionScheme

public static void addBeatDivisionScheme(BeatDivisionScheme bds)
Add a BeatDivisionScheme to this project's list of valid schemes. Valid for entire piece under examination


getBeatDivisionSchemes

public static java.util.Vector getBeatDivisionSchemes()

removeAllBeatDivisionSchemes

public static void removeAllBeatDivisionSchemes()
Clear out all beat division schemes


size

public static int size()

defaultSetup

public static void defaultSetup()
Sets up a BeatDivisionSchemeList of general purpose use. Code follows:

        // 16ths
        BeatDivisionScheme b = new BeatDivisionScheme();
        b.setTimeSpan(1.0);
        b.setMinTimeSpan(0.25);
        b.setMinRequired(0);
        b.setNumberOfDivisions(4);
        b.setMinTimeSpan(0.25);
        b.setConformToBeat(true);
        BeatDivisionSchemeList.addBeatDivisionScheme(b);

        // 8th note triplet
        b = new BeatDivisionScheme();
        b.setTimeSpan(1);
        b.setMinTimeSpan(b.getTimeSpan());
        b.setMinRequired(2);
        b.setNumberOfDivisions(3);
        BeatDivisionSchemeList.addBeatDivisionScheme(b);

        // qtr note triplet
        b = new BeatDivisionScheme();
        b.setTimeSpan(2);
        b.setMinTimeSpan(b.getTimeSpan());
        b.setMinRequired(2);
        b.setNumberOfDivisions(3);
        BeatDivisionSchemeList.addBeatDivisionScheme(b);

        // half note triplet
        b = new BeatDivisionScheme();
        b.setTimeSpan(4);
        b.setMinTimeSpan(b.getTimeSpan());
        b.setMinRequired(2);
        b.setNumberOfDivisions(3);
        BeatDivisionSchemeList.addBeatDivisionScheme(b);

        // 16th quintuplet
        b = new BeatDivisionScheme();
        b.setTimeSpan(1);
        b.setMinTimeSpan(b.getTimeSpan());
        b.setMinRequired(4);
        b.setNumberOfDivisions(5);
        BeatDivisionSchemeList.addBeatDivisionScheme(b);

        // 8th quintuplet
        b = new BeatDivisionScheme();
        b.setTimeSpan(2);
        b.setMinTimeSpan(b.getTimeSpan());
        b.setMinRequired(4);
        b.setNumberOfDivisions(5);
        BeatDivisionSchemeList.addBeatDivisionScheme(b);

        // 16th sextuplet
        b = new BeatDivisionScheme();
        b.setTimeSpan(1);
        b.setMinTimeSpan(b.getTimeSpan());
        b.setMinRequired(5);
        b.setNumberOfDivisions(6);
        BeatDivisionSchemeList.addBeatDivisionScheme(b);

        // 8th sextuplet
        b = new BeatDivisionScheme();
        b.setTimeSpan(2);
        b.setMinTimeSpan(b.getTimeSpan());
        b.setMinRequired(5);
        b.setNumberOfDivisions(6);
        BeatDivisionSchemeList.addBeatDivisionScheme(b);


        // 16th septuplet
        b = new BeatDivisionScheme();
        b.setTimeSpan(1);
        b.setMinTimeSpan(b.getTimeSpan());
        b.setMinRequired(6);
        b.setNumberOfDivisions(7);
        BeatDivisionSchemeList.addBeatDivisionScheme(b);

        // 8th septuplet
        b = new BeatDivisionScheme();
        b.setTimeSpan(2);
        b.setMinTimeSpan(b.getTimeSpan());
        b.setMinRequired(6);
        b.setNumberOfDivisions(7);
        BeatDivisionSchemeList.addBeatDivisionScheme(b);