package org.jfugue;
/**
* This class is used to generate pre-defined Patterns during runtime. A perfect
* use of this class would be to extend it and make your new class generate
* rhythms of various music styles, like Rock, Swing, or 8-Beat. You could also
* use it to generate a series of tones or notes that uniquely identifies your
* product.
*
* @author David Koelle
* @version 2.0
*/
public abstract class PatternFactory {
public abstract Pattern getPattern(int selection);
public abstract int getNumberOfPatterns();
/**
* Takes all of the patterns generated by the PatternFactory, and adds them
* together into one Pattern that can be used to hear all of the music the
* PatternFactory is capable of producing.
*/
public Pattern getDemo() {
Pattern returnPattern = new Pattern();
for (int i = 0; i < getNumberOfPatterns(); i++) {
returnPattern.add(getPattern(i));
}
return returnPattern;
}
}