Packageorg.si.sound.patterns
Classpublic class PMLParser
InheritancePMLParser Inheritance Object

PML (Pattern/Primitive Macro Language) parser, this class provides quite simple pattern generator.

View the examples



Public Properties
 PropertyDefined By
  rule : *
parsing rule.
PMLParser
Public Methods
 MethodDefined By
  
PMLParser(rule:* = null)
constructor
PMLParser
  
parse(pml:String):Array
generate pattern from PML.
PMLParser
Property Detail
ruleproperty
public var rule:*

parsing rule.

Constructor Detail
PMLParser()Constructor
public function PMLParser(rule:* = null)

constructor

Parameters
rule:* (default = null)
Method Detail
parse()method
public function parse(pml:String):Array

generate pattern from PML.

Parameters

pml:String — pattern as string.

Returns
Array
Examples
The PML string is translated by rule property's key to Note instance. The letter "^" extends previous Note's length and the letter "[...]n" is translated as a loop. The letters not included in the rule property are translated to rest.
var pp:PMLParser = new PMLParser();
pp.rule = {"A":new Note(60), "B":new Note(72)}; // set rule. letter "A" as Note(60) and letter "B" as Note(72).
var pat1:Vector.<Note> = pp.parse("A B AABB");  // generate pattern. The PML "A B AABB" is simply translated by rule.
                                                // The whitespaces are translated to rest.
for (var i:int=0; i<pat1.length; i++) {
    trace(pat1[i].note);                        // output "60 -1  72 -1  60  60  72  72" (rest's note property is -1)
}
var pat2:Vector.<Note> = pp.parse("A B A^^^");  // generate pattern. The letter "^" extends previous Note's length.
var pat3:Vector.<Note> = pp.parse("[A B ]2");   // generate pattern. The letter "[...]n" is translated as a loop. you cannot nest loops.