You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

72 lines
2.5 KiB
PHP

<?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.';
?>