superposer plusieurs "canaux" mp3 en un?

superposer plusieurs "canaux" mp3 en un? - Multimédia - Linux et OS Alternatifs

Marsh Posté le 06-10-2005 à 15:08:06    

Salut à tous,
 
J'ai plusieurs boucles compressées en mp3 qui font exactement la même longueur, j'aimerais pouvoir reconstituer un mp3 en superposant les boucles les unes aux autres.
 
pas clair?
 
imaginons que j'ai plusieurs boucles pour la batterie, pour la guitare et pour la basse qui font chacune 10 secondes et qui sont des mp3 distincts.
Les 10 premières secondes, j'aimerais superposer la batterie + la guitare, puis ensuite une batterie + une basse, puis ensuite, les trois en même temps et ainsi de suite...
 
 
 
Comment faire?
 
Avec lame, ça ne semble pas possible, j'ai pensé à décompresser les mp3 et PCM pour les superposer mais je en vois pas trop comment faire...

Reply

Marsh Posté le 06-10-2005 à 15:08:06   

Reply

Marsh Posté le 06-10-2005 à 15:18:56    

moi non plus, c'est quoi ta distribution ?


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 06-10-2005 à 15:30:36    

Debian Sarge, en ligne de commande uniquement ;-)
 
pas gagné :D

Reply

Marsh Posté le 06-10-2005 à 15:51:46    

j'ai trouvé une méthode sur un forum, mais il va falloir mettre les mains dans le cambouis, et pour plus de 2 fichiers ça risque d'être chaud! :
 
le lien : http://forum.newlc.com/index.php/topic,10064.0.html
 
je vais réflechir la dessus...

Reply

Marsh Posté le 11-10-2005 à 15:14:15    

Bon ben comme je le disais, j'ai trouvé une méthode mais elle ne fonctionne pas à 100%, le son sature dans les niveaux élevés.
 
voici mon programme en C :
 

Code :
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. #include <math.h>
  5. int main(int argc,char *argv[]) {
  6.   char mixname[255];
  7.   FILE *pcm1, *pcm2, *mix;
  8.   char sample1, sample2;
  9.   int value;
  10.   pcm1 = fopen(argv[1],"r" );
  11.   pcm2 = fopen(argv[2],"r" );
  12.   strcpy (mixname, argv[1]);
  13.   strcat (mixname, "_temp.wav" );
  14.   mix = fopen(mixname, "w" );
  15.   while(!feof(pcm1)) {
  16.     sample1 = fgetc(pcm1);
  17.     sample2 = fgetc(pcm2);
  18.  
  19.     if ((sample1 < 0) && (sample2 < 0)) {
  20.       value = sample1 + sample2 - (sample1 * sample2 / -(pow(2,16-1)-1));
  21.     }else{
  22.       value = sample1 + sample2 - (sample1 * sample2 / (pow(2,16-1)-1));
  23.     }
  24.     fputc(value, mix);
  25.   }
  26.   fclose(pcm1);
  27.   fclose(pcm2);
  28.   fclose(mix);
  29.   return 0;
  30. }


 
 
il fonctionne de la façon suivante :

Code :
  1. ./audiomix son1.wav son2.wav


son1.wav et son2.wav sont des sons en raw PCM 16bits décompressés à partir de .mp3 par lame avec la commande suivante:

Code :
  1. lame --decode -t son1.mp3


il génère ensuite un fichier son1.wav_temp.wav (le nom à la con) qui est le mix des 2 sources que je recomprsse ensuite avec lame de la façon suivante :

Code :
  1. lame -s 44.1 s son1.wav_temp.wav


 
Evidemment, ce n'est qu'une ébauche, le son 1 doit être plus court que le son 2, il n'y a pas de gestion d'erreurs...
 
Mais bon l'algo semble bon et pourtant ça sature, quelqu'un a une idée?
 

Reply

Marsh Posté le 20-10-2005 à 10:00:46    

Bah moi j'aurais tout simplement utilisé audacity, mais en console c'est pas gagné...
L'avantage c'est que c'est accessible a un débutant en informatique (comme moi, tout au moins sous debian)et que c'est gratuit et puis aussi que tu pourras faire ce que tu voudras de ton signal, l'écréter, l'amplifier, le découper etc. etc. en outre si tu as les bon codecs ce programme pourra te produire un signal en 48khz avec un débit de 500ko/s, ce qui en ogg est bien supérieur a la qualité CD.

Reply

Marsh Posté le 20-10-2005 à 10:10:36    

je ne crois pas qu'audacity fonctionne en ligne de commande...
 
merci qd même ;)

Reply

Marsh Posté le 06-11-2005 à 23:03:39    

je n'ai pas testé mais essaie avec vsound c'est peut être possible.

Reply

Marsh Posté le 06-11-2005 à 23:30:41    

duch a écrit :

Debian Sarge, en ligne de commande uniquement ;-)
 
pas gagné :D


 
Au cas où duch ou un autre "Command Line Junky" repasse dans le coin
 
apt-get install ecasound
 
http://eca.cx/ecasound/
 
 
Powered by  
Debian Command Line Junky Task Force Group


Message édité par rdc3 le 06-11-2005 à 23:31:07
Reply

Marsh Posté le 12-01-2006 à 16:40:37    

sox!!!!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed