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); }