<?php
if (isset($_GET['download'])){
$file = $_GET['download'];
$filename = 'output.mid';
require('midi.class.php');
$midi = new Midi();
$midi->downloadMidFile($file,$filename);
}
$file=(isset($_FILES['mid_upload'])&&$_FILES['mid_upload']['tmp_name']!='')?$_FILES['mid_upload']['tmp_name']:'';//(isset($p['file'])?$p['file']:'');
?>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<title>CONVERSION</title>
<style>
body {font-family:arial;font-size:11px;margin:5px;}
input {font-family:arial;font-size:11px}
td {font-family:arial;font-size:11px}
</style>
</head>
<body>
<form enctype="multipart/form-data" action="convert.php" method="POST" onsubmit="if (this.mid_upload.value==''){alert('Please choose a mid-file to upload!');return false}">
<input type="hidden" name="MAX_FILE_SIZE" value="1048576"><!-- 1 MB -->
MIDI file (*.mid) to upload: <input type="file" name="mid_upload">
<br>
<input type="submit" value=" send ">
</form>
<?php
if ($file!=''){
require('midi.class.php');
$midi = new Midi();
$midi->importMid($file);
// SHOW OLD TYPE
echo 'Old Midi-Type: '.$midi->type."<br>\n";
//CONVERT TO TYPE 0
function cmp ($a, $b) {
$ta = (int) strtok($a,' ');
$tb = (int) strtok($b,' ');
if ($ta == $tb) return 0;
return ($ta < $tb) ? -1 : 1;
}
$newTrack=array();
foreach ($midi->tracks as $track) {
array_pop ($track);
$newTrack=array_merge($newTrack,$track);
}
usort ($newTrack, "cmp");
$endTime = strtok($newTrack[count($newTrack)-1], " ");
$newTrack[]="$endTime Meta TrkEnd";
$tb = $midi->getTimebase();
$midi_new = new Midi();
$txt = "MFile 0 1 $tb\nMTrk\n".implode("\n",$newTrack)."\nTrkEnd";
$midi_new->importTxt($txt);
// SHOW NEW TYPE
echo 'New Midi-Type: '.$midi_new->type."<br>\n";
$save_dir = 'tmp/';
srand((double)microtime()*1000000);
$file = $save_dir.rand().'.mid';
$midi_new->saveMidFile($file);
$midi_new->playMidFile($file,1,1,0); //optional: 'wm','qt','bk'
?>
<br><br><input type="button" name="download" value="Save converted SMF (*.mid)" onClick="self.location.href='convert.php?download=<?php echo urlencode($file)?>'">
<?php
}
?>
</body>
</html>
|