Skip to main content

4 - Toutes les autres applications, les émulateurs...


Jack_capture, wavex et 4GO

Articles: 4
Hello a tous !

Je cherchais une solution simple et rapide pour enregistrer tout les concerts que je sonorise grace à une X32.
J'ai donc décidé d'installer la dernière mouture Librazik2 sur un vieux notebook d'avant guerre. Une petite bécane monoproc-thread qui doit coûter moins de 50 euros.

J'ai abandonné Ardour lorsque j'ai vu un assez grand nombre de décrochage à l'enregistrement, et la machine souffrir terriblement de ralentissement. Un peu trop gourmand pour elle.

Par contre, je suis tombé sur jack_capture. Un outil en ligne de commande superbement réalisé qui permet d'enregistrer direct to disk n'importe quelle entrée / sortie de Jack.
Parfait ! Un record de 16 piste me prend à peine 20% d'uc, et aucun décrochage n'est a signaler sur deux heures d’affilé sous les chaleurs de la Réunion 😊

Le format multi piste est le wavex par defaut.
J'ai deux petite questions, la limitation de 4GO ne semble pas s'appliquer sur les wavex. J'ai fait un enregistrement d'un concert hier dont le fichier à atteint les 9go. Dommage pour le musicien qui avait une grosse clefs usb, mais formaté en fat32.

J'ai tenté de trouver un outil rapide en cli aussi, ou autre, pour convertir rapidement le fichier wavex en multiple wav. Mais sans succes.
Auriez vous une idée ? Il me semble être tombé sur un truc comme ça il y a quelques années, mais impossible de remettre la mains dessus.

Grand merci d'avance à tous.
Articles: 19432 France
En CLI, ffmpeg peut être ?

Sinon en GUI, Handbreak peut peut être faire le boulot, à essayer.
Articles: 4
Trouvé !

Sox évidement.

pour exporter la premiere piste :
Copy to clipboard
sox in.wavex out-1.wav remix 1


et voici un petit script bash qui exportera toute les pistes :

Copy to clipboard
#!/bin/sh chans=`soxi -c "$1"` while [ $chans -ge 1 ]; do echo $chans; chans0=`printf %02i $chans` # 2 digits hence up to 99 chans out=`echo "$1"|sed "s/\(.*\)\.\(.*\)/\1−$chans0.\2/"`.wav echo $out sox "$1" "$out" remix $chans chans=`expr $chans - 1`; done


Le coller dans un ficher ( nano script_split )
Lui donner les droit d'execution ( chmod +x script_split )
et lancer le bouzin : ( ./script_split jack_capture_01.wavex )
Articles: 19432 France
Super Slaan, et merci d'avoir posté le script.

Tu aurais un peu le temps à prendre pour expliquer ce script pour les lecteurs n'étant pas familier avec ça ?
Articles: 4
Avec plaisir !

Copy to clipboard
#!/bin/sh

Indique qu'on va utiliser le langage shell


Copy to clipboard
chans=`soxi -c "$1"`

Lorsque l'on lance le script, on met en argument le nom du fichier que l'on souhaite extraire. (ex : ./script fichier.wavex ). Le $1 récupère ce nom de fichier.
la commande soxi -c "fichier" récupère le nombre de piste inclus dans le fichier et l’enregistre dans la variable 'chans'

Copy to clipboard
while [ $chans -ge 1 ]; do

Traduisible par : Tant que la variable chans est supérieur ou égal à 1


Copy to clipboard
echo $chans;

indique dans la valeur de chan dans la console.


Copy to clipboard
chans0=`printf %02i $chans`

Transforme les chiffre de 1 à 9 en 01 à 09. C'est un peu plus lisible et plus facile a ranger par ordre alphabétique.


Copy to clipboard
out=`echo "$1"|sed "s/\(.*\)\.\(.*\)/\1−$chans0.\2/"`.wav

Alors, celui la est un peu barbare. Il sert à créer le nom de fichier de la piste exportée.
en gros, il prend le nom du fichier, il retire tout les . les / les ( etc, il rajoute le 'chans0' qui est le numéro de la piste, et enfin le .wav à la fin qui indique a sox le format de sortie.
J'invite ceux qui veulent comprendre plus en profondeur de travailler leur expressions régulières. Ou regex pour les intimes 😊

Copy to clipboard
echo $out

Indique le nom final sur la console.


Copy to clipboard
sox "$1" "$out" remix $chans

c'est la commande qui réalise l'export. Grace à la fonction "remix" de sox.

sox "fichier entrant" "fichier sortant" remix "numéro de la piste"


Copy to clipboard
chans=`expr $chans - 1`;

décrémente de 1 la valeur de la variable chans, afin que la boucle démarré par """ while [ $chans -ge 1 ]; do """ se relance avec la valeur de piste précédente.



Et hop !
Autrement dit, ce script extrait les pistes une par une d'un fichier en commençant par la valeur la plus haute.
Il marche d'ailleurs pour tout fichier multipistes lu par sox ( dont stéréo ), pas uniquement le wavex.
Articles: 19432 France
Whaou, c'est super détaillé !
J'ai la tête en compote là, mais je reviendrai demain regarder ça de plus près.

Merci !
Articles: 5046 France
@Slaan, merci pour cette traduction détaillée, qui permet à un inculte du shell comme moi
de comprendre un peu ce qu'il s'y passe.
Articles: 19432 France
J'ai relu, et grand merci pour les explications détaillées.

Ça vaudrait le coup dans faire un tuto pour les scripts. T'en penses quoi Slaan ?