Dieses Modul kümmert sich um das Anstoßen der anderen Module. Es speichert die Sequenz, die aktuelle Position innerhalb dieser sowie eine Liste an Methoden, die angestoßen werden.

public void tick(){
	position++;
	position %= stepAmount;
	foreach (Action action in methodsToCall){
		action();
	}
}

Innerhalb der tick()-Methode wird die Position um einen erhöht, und dann mit einer for-Schleife die Liste der Methoden ausgeführt.

public void resizePatterns(){
	//renders the pattern bigger
	for (int i = 0; i < activePattern.Count; i++){
		bool[] newTrack = new bool[stepAmount];
		for (int j = 0; j < stepAmount; j++){
			newTrack[j] = activePattern[i][j % activePattern[i].Length];
		}
		activePattern[i] = newTrack;
	}
}

Diese Funktion verlängert/verkürzt die Spuren auf die aktuelle Länge.

public bool loadPattern(string patternName){
	if (patternHolder.libraryPatternsList.ContainsKey(patternName)){
		patternHolder.loadPattern(patternName);
		activePattern = patternHolder.activePattern;
		resizePatterns();
		return true;
	} else {
		return false;
	}
}

Diese Methode prüft, ob es ein bestimmtes Pattern gibt, und läd es dann.