Voice

Voice’s parent is Beat.

Read voice informations

use PhpTabs\PhpTabs;

$song = new PhpTabs('my-song.gp5');

// Get a voice
$voice = $song->getTrack(0)
             ->getMeasure(1)
             ->getBeat(0)
             ->getVoice(0);

echo sprintf("
Voice
-----

direction: %s
index: %s
time: %ss
is empty: %s
is rest voice: %s
",

$voice->getDirection(),
$voice->getIndex(),
$voice->getTime(),
$voice->isEmpty() ? 'true' : 'false',
$voice->isRestVoice() ? 'true' : 'false'
);

It will ouput something like:

Voice
-----

direction: 0
index: 0
time: 2.0454545454545s
is empty: false
is rest voice: false

Write voice informations

/**
 * Defaut = 0
 * NONE   = 0
 * UP     = 1
 * DOWN   = 2
 */
$voice->setDirection(1);
$voice->setIndex(1);

Beat

You may handle its beat.

// Get voice beat
$beat = $voice->getBeat();

// Set voice beat
$voice->setBeat($beat);

Notes

You may handle notes.

// Number of notes
$count = $voice->countNotes();

// Get an array of notes
$notes = $voice->getNotes();

// Get a single note by its index
// starting from 0 to n-1
$note = $voice->getNote(0);

// Remove a note
$voice->removeNote($note);

// Add a note
$voice->addNote($note);