Measure¶
Measure’s parent is Track.
Read measure informations¶
use PhpTabs\PhpTabs;
$song = new PhpTabs('my-song.gp5');
// Get first measure
$measure = $song->getTrack(0)
->getMeasure(0);
echo sprintf("
Measure
-------
clef: %s
key signature: %s
length: %s
number: %s
repeat close: %s
start: %s
triplet feel: %s
is repeat open: %s
",
$measure->getClef(),
$measure->getKeySignature(),
// Get measure header length
$measure->getLength(),
// Get measure header number
$measure->getNumber(),
// Get measure header repeat close
$measure->getRepeatClose(),
// Get measure header start
$measure->getStart(),
// Get measure header triplet feel
$measure->getTripletFeel(),
// Get measure header is repeat open
$measure->isRepeatOpen() ? 'true' : 'false',
);
It will ouput something like:
Measure
-------
clef: 1
key signature: 0
length: 3840
number: 1
repeat close: 0
start: 960
triplet feel: 1
is repeat open: false
Write measure informations¶
/**
* Default clef = 1
* TREBLE = 1
* BASS = 2
* TENOR = 3
* ALTO = 4
*/
$measure->setClef(2);
$measure->setKeySignature(1);
Track¶
You may get and set its parent track.
$track = $measure->getTrack();
$measure->setTrack($track);
Beats¶
You may handle beats.
// Number of beats
$count = $measure->countBeats();
// Get an array of beats
$beats = $measure->getBeats();
// Get a single beat by its index
// starting from 0 to n-1
$beat = $measure->getBeat(0);
$beat = $measure->getBeatByStart(960);
// Move a beat to another index in the stack
$measure->moveBeat(4, $beat);
// Remove a beat
$measure->removeBeat($beat);
// Add a beat
$measure->addBeat($beat);
MeasureHeader¶
You may handle measure header.
$header = $measure->getHeader();
$measure->setHeader($header);
Copy¶
You may copy all attributes from another measure.
// Copy from another measure
$newMeasure>copyFrom($measure);