Connexion entre MATLAB et Lazarus
Bonjour à tous,
dans le cadre d'un programme de traitement audio, je dois extraire les données de fichiers wav sous forme de fichiers texte. Pour cela j'utilise Matlab avec le code suivant :
Code:
1 2 3 4
| [y, Fs] = wavread('piano.wav')
Mono = (y(:,1)+y(:,2))/2;
Mono=resample(Mono,2500,44100)
save('piano.txt','Mono','-ASCII') |
Jusqu'à présent j'avais constitué une bibliothèque de fichiers texte, que je traitais ensuite sous Lazarus. J'aimerais cependant maintenant pouvoir exécuter le programme à partir de n'importe quel fichier wav, sans toutefois avoir à lancer Matlab indépendamment avant. J'ai donc trouvé le code suivant qui devrait me permettre de lancer le traitement Matlab directement à partir de Lazarus.
Code:
1 2 3 4 5 6 7 8 9 10
| procedure TForm1.Button1Click(Sender: TObject);
var nf:string; MatApp:variant;
begin
MatApp:=CreateOleObject('matlab.application');
MatApp.visible:=1;
nf:='FilenameEdit1.text';
MatApp.Execute('[y, Fs] = wavread(nf) Mono = (y(:,1)+y(:,2))/2; Mono=resample(Mono,2500,44100) save(''piano.txt'',''Mono'',''-ASCII'') ');
end; |
Cependant, en testant rien ne se passe, et l'historique de Matlab affiche seulement une ligne de commentaire (%-- 11/05/2012 22:20 --%) sans aucune ligne de commande.
Si quelqu'un pouvait m'aider à trouver mon erreur
Merci d'avance!