Example #1
0
if (isset($_GET['id']) && is_numeric($_GET['id'])) {
    $id = $_GET['id'];
    $filename = 'm/' . $id . '.mid';
    list($data) = mysqli_fetch_array(db_query('SELECT data FROM sequences WHERE id="' . $id . '"'));
} else {
    if (isset($_REQUEST['data'])) {
        $data = $_REQUEST['data'];
        $filename = 'm/temp' . round(microtime(true) * 1000) . '.mid';
    }
}
if (isset($data)) {
    require 'midi_notes.php';
    if (TEST || !file_exists($filename)) {
        $data = explode(':', $data);
        $bpm = $data[0];
        $mpqn = 1 / ($bpm / 60) * 1000000;
        $parts = explode(";", $data[1]);
        $f = new File(384);
        $first = new Track();
        $first->appendEvent(new TimeSignatureEvent(4, 4));
        $first->appendEvent(new SetTempoEvent($mpqn));
        $first->appendEvent(new EndOfTrackEvent());
        $f->addTrack($first);
        for ($i = 0; $i < $settings['numInstruments']; $i++) {
            $GLOBALS['lastTime'] = 0;
            addInstrumentTrack($i);
        }
        $f->save($filename);
    }
    header('Location: /' . $filename);
}