Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 21-12-2016 10:59:45

golgot200
Membre
Distrib. : Arch Linux
Noyau : Linux 4.11.3-1-ARCH
(G)UI : Mate
Inscription : 05-08-2007

Une commande vraiment sympa : enregistrement audio

Bonjour,

je viens de découvrir une commande vraiment classe que j'aimerai vous faire partager.

Lancer la commande. Elle n'enregistrera rien si aucun son n'est joué sur votre PC
Vous voulez écouter un morceau, allez y. Le fichier de capture se mettra à grossir à l'écoute de ce morceau. Cette écoute fini, le fichier de capture s'arrête de grossir.
Lancer une autre écoute, c'est reparti !!!
Le must, c'est que dans cette capture, il n'y aura pas de blanc entre les morceaux. big_smile

Mieux, vous capturez une radio en streaming, s'il y a des blancs entre les diffusion, il les omettra et tout les titres seront enchainés.

La commande:

#!/bin/sh

AUDIODEV=hw:0,0 rec -r 44100 -p | sox -p "Capture - Le $(date '+%d-%m-%Y') à $(date +"%T").wav" silence -l 1 00:00:00.5 -45d -1 00:00:00.5 -45d



En supposant que ça soit la même sortie pour votre carte. À vous d'adapter.

Voilà.

tongue

EDIT:


apt-get install sox
 

Dernière modification par golgot200 (21-12-2016 11:10:02)

Hors ligne

#2 21-12-2016 11:02:16

captnfab
Admin-Girafe
Lieu : /dev/random
Distrib. : Debian Jessie/Stretch/Buster/Sid/Rc-Buggy
Noyau : Linux (≥ 4.9)
(G)UI : i3-wm (≥ 4.13)
Inscription : 07-07-2008
Site Web

Re : Une commande vraiment sympa : enregistrement audio

Haha, une commande de Noël smile
Sympi !

captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.

Hors ligne

#3 21-12-2016 11:03:20

golgot200
Membre
Distrib. : Arch Linux
Noyau : Linux 4.11.3-1-ARCH
(G)UI : Mate
Inscription : 05-08-2007

Re : Une commande vraiment sympa : enregistrement audio

Bonjour captnfab !!!

Tu m'étonnes big_smile

Hors ligne

#4 21-12-2016 11:05:36

golgot200
Membre
Distrib. : Arch Linux
Noyau : Linux 4.11.3-1-ARCH
(G)UI : Mate
Inscription : 05-08-2007

Re : Une commande vraiment sympa : enregistrement audio

Tiens si tu es toujours là smile

J'ai ça mais c'est pas beau :

#!/bin/sh

## RESAMPLER TOUS LES FICHIERS AVANT FUSION
for flac in *.flac; do sox -S "${flac}" -r 44100 -b 16 "NEW${flac}" && rm "${flac}" ; done

## FUSION
sox *.flac output.flac

## SUPRESSION
rm NEW*.flac

## SUPPRESSION DES BLANCS ENTRE LES MORCEAUX
sox output.flac PLUS_DE_BLANC.flac silence -l 1 0.1 1% -1 2.0 1%

## SUPRESSION
rm output.flac



On peut améliorer ?

Hors ligne

#5 21-12-2016 11:18:27

golgot200
Membre
Distrib. : Arch Linux
Noyau : Linux 4.11.3-1-ARCH
(G)UI : Mate
Inscription : 05-08-2007

Re : Une commande vraiment sympa : enregistrement audio

Ha oui, si vous ne voulez pas du wav, mettez par exemple ogg .... c'est moins gros smile

Hors ligne

#6 21-12-2016 12:11:56

captnfab
Admin-Girafe
Lieu : /dev/random
Distrib. : Debian Jessie/Stretch/Buster/Sid/Rc-Buggy
Noyau : Linux (≥ 4.9)
(G)UI : i3-wm (≥ 4.13)
Inscription : 07-07-2008
Site Web

Re : Une commande vraiment sympa : enregistrement audio

Tu parles de la proprification du script ?
Pour ma part, je ferais probablement les choses comme ça, mais bon, y'a pas énormément de changements :

Je précise que ce code est non-testé, et que je ne me suis pas du tout préoccupé de la partie utilisation de sox, que je ne connais pas bien smile

#!/bin/sh
# On suppose que le premier argument est le nom du fichier à créer
# Et que les noms des fichiers à traiter ont été passés en argument au script
if [ $# -lt 2 ]
then
  echo "Erreur: utilisation: $0 output.flac input1.flac [input2.flac [input3.flac […]]]" 1>&2
  exit 1
fi

TMPDIR=$(mktemp "/tmp/fusion_XXXX")
OUTPUT=$1
shift

## Resampling et numérotation
i=0
for f in $@
do
  i=$((i+1))
  N=$(basename "$f")
  sox -S "${f}" -r 44100 -b 16 "${TMPDIR}/$(printf '%04g' ${i})_${N}"
done

## Fusion
sox "${TMPDIR}"/* "${TMPDIR}/00_fusion.flac"

## Suppression des blancs
sox "${TMPDIR}/00_fusion.flac"  "${OUTPUT}" silence -l 1 0.1 1% -1 2.0 1%

## Effacement des fichiers temporaires
rm -r "${TMPDIR}"



Exemple d'appel du script :

./monscript.sh ~/résultat.flac ~/Musique/Dossier/Compil/*.flac



Je précise que ce script ne supprime pas les fichiers d'entrée contrairement au tiens. Je trouve ça trop dangereux de l'inclure au script, normalement un script de conversion ne fait pas ça smile


captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.

Hors ligne

#7 21-12-2016 17:35:36

golgot200
Membre
Distrib. : Arch Linux
Noyau : Linux 4.11.3-1-ARCH
(G)UI : Mate
Inscription : 05-08-2007

Re : Une commande vraiment sympa : enregistrement audio

@captnfab

j'ai bien réception ton script et j'avoue qu'il m'a mis illico dans le coma  big_smile
J'ai eu beau le tourner dans tout les sens, mais impossible pour mon petit cerveau de refaire surface. Il a bloqué de suite à la première ligne.
Donc, j'ai passé 3 heures à essayer de faire dans ton optique pour le rm. C'est vrai que c'était pas beau et pas prudent. Mais je passais par un copie collé des mes fichiers d'origines. Donc je n'ai pas trop cherché. smile

J'ai réussi à sortir un truc qui fonctionne bien que je n'ai jamais réussi à utilisé le truc du style

exemple :

TMPDIR=$...
pour allèger les commandes suivantes.
J'ai fait "$TMPDIR" , $TMPDIR etc, je me tapais un truc du genre opération non permise tongue

Bon le script qui fonctionne bien :


#!/bin/sh

TMPDIR=/tmp/converted
OUTPUT=$HOME/Conversion

if [ ! -d $TMPDIR ]; then
mkdir  $TMPDIR
fi
for i in *.flac;
do sox -S "$i" -r 44100 -b 16 "$TMPDIR/$i"
done


#FUSION
sox "$TMPDIR/*.flac" "$TMPDIR/output.flac"

## Suppression des blancs
if [ ! -d $OUTPUT ]; then
mkdir  $OUTPUT
fi
sox "$TMPDIR/output.flac"  "$OUTPUT/PLUSDEBLANC.flac" silence -l 1 0.1 1% -1 2.0 1%


## Effacement des fichiers temporaires
rm -r  $TMPDIR
 

Dernière modification par golgot200 (21-12-2016 18:09:55)

Hors ligne

Pied de page des forums