require __DIR__ . "/../../vendor/autoload.php"; require __DIR__ . "/../../src/MIDI/midi.class.php"; $admin = new LTE\AdminLte2(); $admin->title("MIDI"); echo $admin; ?> <section class="container"> <?php $midi = new Midi(); $files = glob(__DIR__ . "/../../midifiles/*.mid"); shuffle($files); $file = $files[0]; $midi->importMid($file); $track = $midi->getTrack(0); echo "<h1>" . basename($file) . "</h1>\n"; echo "<pre>"; $tempo = $midi->getTempo(); $bpm = $midi->getBpm(); //returns tempo as beats per minute (0 if tempo not set). $timebase = $midi->getTimebase(); //returns timebase value. $trackCount = $midi->getTrackCount(); //returns number of tracks. $duration = $midi->getDuration(); //in sec echo "tempo={$tempo}\n"; echo "BPM={$bpm}\n"; echo "duration={$duration} sec\n"; echo "timebase={$timebase}\n"; echo "trackCount={$trackCount}\n"; //print_r($track);
// get midifile info // $f['bpm'] = $midi->getBpm(); //returns tempo as beats per minute (0 if tempo not set). $f['timebase'] = $midi->getTimebase(); //returns timebase value. $f['trackCount'] = $midi->getTrackCount(); //returns number of tracks. $dat['files'][] = $f; } exit(json_encode($dat)); case 'fileInfo': $dat['post'] = $_POST; $midi = new Midi(); $midi->importMid(__DIR__ . "/../../midifiles/" . $_POST['filename']); //$track = $midi->getTrack(0); $dat['bpm'] = $midi->getBpm(); //returns tempo as beats per minute (0 if tempo not set). $dat['timebase'] = $midi->getTimebase(); //returns timebase value. $dat['trackCount'] = $midi->getTrackCount(); //returns number of tracks. $track = $midi->getTrack(0); // list of meta events that we are interested in (adjust!) //$texttypes = array('Text','Copyright','TrkName','InstrName','Lyric','Marker','Cue'); $texttypes = array('TrkName'); foreach ($track as $msgStr) { $msg = explode(' ', $msgStr); if ($msg[1] == 'Meta' && $msg[2] == 'TrkName') { //print_r($msgStr);//ex : 0 Meta TrkName "A Message to Rudy by THE SPECIALS" //$dat['meta'][]=$msg[2].': '.substr($msgStr,strpos($msgStr,'"')); $dat['trackName'] = trim(explode('TrkName', $msgStr)[1]);