|
|
|
<?php
|
|
|
|
|
|
|
|
ini_set('display_startup_errors', 1);
|
|
|
|
ini_set('display_errors', 1);
|
|
|
|
error_reporting(-1);
|
|
|
|
|
|
|
|
ini_set("display_errors", "On");
|
|
|
|
// requires php5
|
|
|
|
define('UPLOAD_DIR', '../uploads/5/');
|
|
|
|
define('DISTORT_DIR', 'python-audio-effects/');
|
|
|
|
$img = $_POST['base64'];
|
|
|
|
$img = str_replace('data:audio/mp3;base64,', '', $img);
|
|
|
|
$img = str_replace(' ', '+', $img);
|
|
|
|
$data = base64_decode($img);
|
|
|
|
#$file = UPLOAD_DIR . uniqid() . '.mp3';
|
|
|
|
$file = UPLOAD_DIR . $_POST['name'] . '_'.$_POST['type'] .'.mp3';
|
|
|
|
// $file = DISTORT_DIR . $_POST['name'] . '_'.$_POST['type'] .'.mp3';
|
|
|
|
$success = file_put_contents($file, $data);
|
|
|
|
$wavfile = $file.'.wav';
|
|
|
|
$distortedfile = $wavfile.'.wav';
|
|
|
|
$distortedfile1 = $wavfile.'.1.wav';
|
|
|
|
$distortedfile2 = $wavfile.'.2.wav';
|
|
|
|
$distortedfile3 = $wavfile.'.3.wav';
|
|
|
|
|
|
|
|
|
|
|
|
shell_exec('ffmpeg -i "'.$file.'" "'.$wavfile.'"');
|
|
|
|
|
|
|
|
if ($_POST['type']=='echo'){
|
|
|
|
// echo
|
|
|
|
$command = '/home/lain/virtualenvs/radioactive/bin/python3 python-audio-effects/echo.py "'.$wavfile.'" "'.$distortedfile.'"';
|
|
|
|
$output=shell_exec($command);
|
|
|
|
print $output;
|
|
|
|
}
|
|
|
|
elseif ($_POST['type']=='lowpass'){
|
|
|
|
// lowpass
|
|
|
|
$command = '/home/lain/virtualenvs/radioactive/bin/python3 python-audio-effects/lowpass.py "'.$wavfile.'" "'.$distortedfile.'"';
|
|
|
|
$output=shell_exec($command);
|
|
|
|
print $output;
|
|
|
|
}
|
|
|
|
|
|
|
|
elseif ($_POST['type']=='lowpitch'){
|
|
|
|
|
|
|
|
// lowpitch
|
|
|
|
$command = '/home/lain/virtualenvs/radioactive/bin/python3 python-audio-effects/lowpitch.py "'.$wavfile.'" "'.$distortedfile.'"';
|
|
|
|
$output=shell_exec($command);
|
|
|
|
print $output;
|
|
|
|
}
|
|
|
|
|
|
|
|
else {
|
|
|
|
// collective
|
|
|
|
$command = '/home/lain/virtualenvs/radioactive/bin/python3 python-audio-effects/echo.py "'.$wavfile.'" "'.$distortedfile1.'"';
|
|
|
|
$output=shell_exec($command);
|
|
|
|
print $output;
|
|
|
|
$command = '/home/lain/virtualenvs/radioactive/bin/python3 python-audio-effects/lowpass.py "'.$wavfile.'" "'.$distortedfile2.'"';
|
|
|
|
$output=shell_exec($command);
|
|
|
|
print $output;
|
|
|
|
$command = '/home/lain/virtualenvs/radioactive/bin/python3 python-audio-effects/lowpitch.py "'.$wavfile.'" "'.$distortedfile3.'"';
|
|
|
|
$output=shell_exec($command);
|
|
|
|
print $output;
|
|
|
|
|
|
|
|
shell_exec('ffmpeg -i "'.$wavfile.'" -i "'.$distortedfile1.'" -i "'.$distortedfile2.'" -i "'.$distortedfile3.'" -filter_complex amix=inputs=4:duration=longest "'.$distortedfile.'"');
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# make a database of recordings
|
|
|
|
$item=array('name'=>$_POST['name'],'type'=>$_POST['type'],'date'=>date("d/m/Y"), 'file'=>$distortedfile);
|
|
|
|
$handle=fopen('../uploads/5/index.jsons','a');
|
|
|
|
fwrite($handle,json_encode($item)."\n");
|
|
|
|
fclose($handle);
|
|
|
|
print $success ? $distortedfile : 'Unable to save the file.';
|
|
|
|
?>
|