Pages : 1
#1 Le 28/01/2011, à 17:49
- soupaloignon
MultiScript : Audio
Bonjour à tous,
Dans la même idée que "MultiScript : Fichiers photos" ( http://forum.ubuntu-fr.org/viewtopic.php?pid=3371321 ) je me suis bricolé pour des besoins personnels un script pour effectuer certaines actions sur des fichiers audio.
Je vous le laisse ici, si ça peut vous être utile. n'hésitez pas à faire des retours
Description rapide : Script permettant de renommer des fichier audio suivant plusieurs paramètres / Conversion de formats audio. Formats supportés : flac, ogg, wav, mp3
Utilisation : Se placer dans le répertoire contenant les fichiers audio à traiter, lancer le script. Inutile de sélectionner les fichiers, le script va travailler sur toutes les fichiers contenus dans le répertoire (et uniquement dans le répertoire, il n'est pas récursif)
Important : Ne travaillez pas dans des dossiers qui contiennent un mélange de fichiers avec ces différents formats audio, le script n'est pas prévu pour cela et vous auriez des erreurs.
Fonctionnalités (Testé sous Mint 9 (Lucid), Debian Squeeze):
Global : Renommera les fichiers avec un intitulé à saisir, suivi d'une incrémentation sur 2 chiffres (départ 01)
Changer la casse : transformera la casse de l'extension en minuscule\n
Rajouter un intitulé devant le nom du fichier : Le nom du fichier est conservé, un intitulé à saisir est rajouté devant
Rajouter un intitulé à la fin du nom du fichier : Le nom du fichier est conservé, un intitulé à saisir est rajouté derrière
Renommer en masse sur X chiffres : Renomme les fichiers (en gardant l'ordre initial) sur un nombre de X chiffres. X étant une valeur à saisir
Conversion : Convertir des formats audio. Les originaux sont préservés, un dossier est créé dans le répertoire en cours d'utilisation.
Travaillant nativement sur des extensions en minuscules, ce script changera automatiquement la casse des extensions s'il rencontre des majuscules dans les extensions des fichiers avant traitement.
Nouvelle version 0.2 : http://forum.ubuntu-fr.org/viewtopic.ph … 2#p4062742
#!/bin/bash
####################################################################################
#
# MultiScript : Audio
# Permet de travailler sur des fichiers audio : Conversion de formats / Renommage
#
# Dépendances :
# A voir ;)
#
# Version :
# 0.1 : 2011/01/28
#
# Utilisation :
# Se placer dans le répertoire contenant les fichiers audio à traiter, lancer le script.
# Inutile de sélectionner les fichiers, le script va travailler sur toutes les fichiers
# contenus dans le répertoire (et uniquement dans le répertoire, il n'est pas récursif)
#
# Le script travaille en modifiant la casse des extensions des fichiers (majuscule en minuscule), c'est voulu
# si ce comportement ne vous convient pas, n'utilisez pas ce script, ou modifiez-le ;)
#
# Le fil de discussion sur le forum d'Ubuntu fr :
#
# L'historique du script :
#
#
# Testé sous Mint 9 (Lucid)
#
# www.soupaloignon.net
####################################################################################
####################################################################################
###### Mettre tout le script dans une boucle #######################################
while [ "$fin_du_script" != "oui" ]
do
####################################################################################
####################################################################################
###### Variable(s) générale(s) #####################################################
# Titre des fenêtres zenity
title="MultiScript : Audio (V 0.1)"
####################################################################################
####################################################################################
###### Function(s) #################################################################
function Casse-Extension-Wav
{
# Transforme l'extension en minuscules
ls -d *.WAV | sed 's/\(.*\).WAV$/mv "&" "\1.wav"/' | sh
}
function Casse-Extension-Mp3
{
# Transforme l'extension en minuscules
ls -d *.MP3 | sed 's/\(.*\).MP3$/mv "&" "\1.mp3"/' | sh
}
function Casse-Extension-Flac
{
# Transforme l'extension en minuscules
ls -d *.FLAC | sed 's/\(.*\).FLAC$/mv "&" "\1.flac"/' | sh
}
function Casse-Extension-Ogg
{
# Transforme l'extension en minuscules
ls -d *.OGG | sed 's/\(.*\).OGG$/mv "&" "\1.ogg"/' | sh
}
####################################################################################
####################################################################################
###### Afficher le menu ############################################################
menu=`zenity --width=750 --height=500 \
--title "$title" --text="Choisir l'action à effectuer sur des fichiers : wav / mp3 / ogg / flac" --list --hide-column 1 --column "" --column "" \
0 "QUITTER LE SCRIPT" \
1 "" \
2 "Global : Intitulé / 2 chiffres" \
3 "Changer la casse de l'extension : WAV => wav / MP3 => mp3 etc" \
31 "" \
4 "Rajouter un intitulé devant le nom du fichier" \
41 "Rajouter un intitulé à la fin du nom du fichier" \
5 "Renommer en masse sur X chiffres au choix" \
10 "" \
11 "conversion : Ogg => Wav" \
12 "conversion : Flac => Wav" \
13 "conversion : Mp3 => Wav" \
14 "conversion : Wav => Flac" \
15 "conversion : Flac => ogg" \
10 "" \
20 "A LIRE" \
| sed 's/ max//g' `
# Pour quitter
if [ "$menu" = 0 ] ; then
fin_du_script="oui"
fi
# Vérifier qu'un choix a été fait
if [ ! "$menu" ]; then
zenity --error --title="Erreur" --text="Choisissez une action"
fi
####################################################################################
####################################################################################
###### Global #######
# Choix du menu
if [ "$menu" = 2 ] ; then
TEXTE=$(zenity --entry --width=500 --height=150 --title="$title : Intitulé devant le nom de fichier" --entry-text="" --text="Entrez le nom à rajouter devant vos fichiers :")
# Eviter les problèmes avec des noms de fichiers comportants des espaces
IFS=$'\n'
let "indice=1"
for fichier in *.mp3 *.wav *.flac *.ogg
do
if [ -f "$fichier" ]; then
extension=${fichier##*.}
echo "$fichier" "=>" "$indice.$extension"
mv "$fichier" `printf "%0"2"d" $indice`".$extension"
let "indice+=1"
fi
done
for fichier in *.mp3 *.wav *.flac *.ogg
do
rename 's/^/'$TEXTE'/' $fichier
done
fi
####################################################################################
####################################################################################
###### Changer la casse WAV et Mp3 ############################################################
# Choix du menu
if [ "$menu" = 3 ] ; then
# Function Transforme l'extension en minuscules
Casse-Extension-Wav
Casse-Extension-Mp3
Casse-Extension-Flac
Casse-Extension-Ogg
fi
####################################################################################
####################################################################################
###### Rajouter un intitulé devant le nom du fichier ###############################
# Choix du menu
if [ "$menu" = 4 ] ; then
# Eviter les problemes avec des noms comportant des espaces
IFS=$'\n'
# Function Transforme la casse et ou l'extension en jpg/png
#Casse-Extension
## Texte à rajouter devant le nom du fichier
TEXTE=$(zenity --entry --width=500 --height=150 --title="$title : Intitulé devant le nom de fichier" --entry-text="" --text="Entrez le nom à rajouter devant vos fichiers :")
if [ "${PIPESTATUS[0]}" != "0" ]; then
exit
fi
# Boucle d'insertion
for fichier in *.mp3 *.wav *.flac *.ogg
do
rename 's/^/'$TEXTE'/' $fichier
done
fi
####################################################################################
####################################################################################
###### Rajouter un intitulé à la fin du nom du fichier ###############################
# Choix du menu
if [ "$menu" = 41 ] ; then
# Eviter les problemes avec des noms comportant des espaces
IFS=$'\n'
# Function Transforme la casse et ou l'extension en jpg/png
# Casse-Extension
## Texte à rajouter à la fin du nom du fichier
TEXTEFIN=$(zenity --entry --width=500 --height=150 --title="$title : Intitulé à la fin du nom du fichier" --entry-text="" --text="Entrez l'intitulé à rajouter à la fin de chaque nom de fichier :")
if [ "${PIPESTATUS[0]}" != "0" ]; then
exit
fi
for file in *.mp3 *.wav *.flac *.ogg
do
base=`basename $file`
mv $file ${base%.*}$TEXTEFIN.${base##*.}
done
fi
####################################################################################
####################################################################################
###### Renomme en masse sur X chiffres #############################################
# Choix du menu
if [ "$menu" = 5 ] ; then
# Choix du nombre de caracteres
nombre=$(zenity --entry --width=500 --height=150 --title="$title : Nombre de chiffres" --entry-text="2" --text="Choisir sur quel nombre de chiffres seront renommés vos fichiers :" )
if [ "${PIPESTATUS[0]}" != "0" ]; then
exit
fi
# Function Transforme la casse et ou l'extension en jpg/png
Casse-Extension
# Boucle
let "indice=1"
for fichier in *.mp3 *.wav *.flac *.ogg
do
if [ -f "$fichier" ]; then
extension=${fichier##*.}
echo "$fichier" "=>" "$indice.$extension"
mv "$fichier" `printf "%0"$nombre"d" $indice`".$extension"
let "indice+=1"
fi
done
fi
####################################################################################
####################################################################################
###### conversion de formats #############################################
####################################################################################
################################# Ogg/Wav
if [ $menu -eq 11 ]; then
for i in *.ogg; do
j="${i%.ogg}"
sox "$j.ogg" "$j.wav"
echo $j.ogg
done
mkdir wav
mv *.wav wav
zenity --info --text="L'encodage en Wav est terminé"
fi
################################# flac/wav
if [ $menu -eq 12 ]; then
flac --decode *.flac
mkdir wav
mv *.wav wav
zenity --info --text="L'encodage Flac => Wav est terminé"
fi
################################# mp3/wav
if [ $menu -eq 13 ]; then
for fichier in *.mp3; do
lame --verbose --decode "$fichier" "${fichier/%.mp3/.wav}";
done
mkdir wav
mv *.wav wav
zenity --info --text="L'encodage Mp3 => Wav est terminé"
fi
################################# Wav/flac
if [ $menu -eq 14 ]; then
flac --best *.wav
mkdir flac
mv *.flac flac
zenity --info --text="L'encodage Wav => Flac est terminé"
fi
################################# Flac/Ogg
if [ $menu -eq 15 ]; then
oggenc -q9 *.flac
mkdir ogg
mv *.ogg ogg
zenity --info --text="L'encodage Flac => Ogg est terminé"
fi
####################################################################################
###### A LIRE ######################################################################
# Choix du menu
if [ "$menu" = 20 ] ; then
zenity --info --title="$title : Informations" --text="J'ai fait ce script pour mon usage personnel. S'il peut vous être utile, tant mieux.\n\nUtilisation :\n\nSe placer dans le répertoire contenant les fichiers audio à traiter, lancer le script. Inutile de sélectionner les fichiers, le script va travailler sur toutes les fichiers contenus dans le répertoire (et uniquement dans le répertoire, il n'est pas récursif)\n\nCe script travaille uniquement sur des fichiers aux formats : flac, ogg, wav, mp3\n\nImportant : Ne travaillez pas dans des dossiers qui contiennent un mélange de fichiers avec différents formats, le script n'est pas prévu pour cela et vous auriez des erreurs.\n\n\nFonctionnalités (Testé uniquement sous Mint 9 (Lucid)):\n
Global : Renommera les fichiers avec un intitulé à saisir, suivi d'une incrémentation sur 2 chiffres (départ 01)\n\nChanger la casse : transformera la casse de l'extension en minuscule\n
Rajouter un intitulé devant le nom du fichier : Le nom du fichier est conservé, un intitulé à saisir est rajouté devant\n\nRajouter un intitulé à la fin du nom du fichier : Le nom du fichier est conservé, un intitulé à saisir est rajouté derrière\n\nRenommer en masse sur X chiffres : Renomme les fichiers (en gardant l'ordre initial) sur un nombre de X chiffres. X étant une valeur à saisir\n\nTravaillant nativement sur des extensions en minuscules, ce script changera automatiquement la casse des extensions s'il rencontre des majuscules dans les extensions des fichiers à traiter.\n\nconversion : Convertir les formats audio. Les originaux sont préservés, un dossier est créé dans le repertoire en cours d'utilisation.
www.soupaloignon.net"
fi
########################################################################
done
exit 0
Dernière modification par soupaloignon (Le 01/04/2011, à 08:03)
==> Libérez les huitres du bassin d'Arcachon <==
Hors ligne
#2 Le 28/01/2011, à 19:55
- b52
Re : MultiScript : Audio
Je viens de placer ton script [ soupaloignon.sh ] dans mon [ $HOME/.gnome2/nautilus-scripts/ ] pour pouvoir l'utiliser depuis nautilus et ... pour une version 0.1, ça fonctionne sans problème.
Chapeau
Dernière modification par b52 (Le 28/01/2011, à 20:01)
Les grands bonheurs viennent du ciel, ...
Xcfa, Linux on the root, Normalisation, Ogg Vorbis
Hors ligne
#3 Le 28/01/2011, à 20:17
- soupaloignon
Re : MultiScript : Audio
Merci Claude pour ton test... et pour ton retour Si tu as des idées d'amélioration du code existant, n'hésite pas.
Tu as testé le script avec quel distribution ? (que je puisse l'indiquer dans la "doc")
La version 0.2 est sur les rails. En fait elle est déjà en utilisation sur ma machine. Elle rajoute la gravure (sans fronted) des fichiers wav du répertoire courant
==> Libérez les huitres du bassin d'Arcachon <==
Hors ligne
#4 Le 28/01/2011, à 20:35
- b52
Re : MultiScript : Audio
Je suis sous Debian Squeeze très fraîchement installée.
Juste deux trucs:
1) Un test du contenu de la variable [ $menu ] est apparemment nécessaire du genre:
if [ -n "$menu" ]
# Teste si un argument est non vide.
then
echo "menu NON VIDE"
else
echo "menu EST VIDE="
fi
Histoire d'éviter une erreur comme:
$ ./soupaloignon.sh: line 270: [: -eq : opérateur unaire attendu
2) La fenêtre d'action génère une erreur suite a un click sur Annule :
$ ./soupaloignon.sh: command substitution: line 102: Erreur de syntaxe près du symbole inattendu « | »
$ ./soupaloignon.sh: command substitution: line 102: ` | sed 's/ max//g' '
Je ne sais pas à quoi sert la variable [ $max ] et j'ai donc modifié (chez moi) le menu ainsi :
menu=`zenity --width=750 --height=500 \
--title "$title" --text="Choisir l'action à effectuer sur des fichiers : wav / mp3 / ogg / flac" --list --hide-column 1 --column "" --column "" \
0 "QUITTER LE SCRIPT" \
1 "" \
2 "Global : Intitulé / 2 chiffres" \
3 "Changer la casse de l'extension : WAV => wav / MP3 => mp3 etc" \
31 "" \
4 "Rajouter un intitulé devant le nom du fichier" \
41 "Rajouter un intitulé à la fin du nom du fichier" \
5 "Renommer en masse sur X chiffres au choix" \
10 "" \
11 "conversion : Ogg => Wav" \
12 "conversion : Flac => Wav" \
13 "conversion : Mp3 => Wav" \
14 "conversion : Wav => Flac" \
15 "conversion : Flac => ogg" \
10 "" \
20 "A LIRE"`
PS:
Au fait, ta page est inaccessible
Dernière modification par b52 (Le 28/01/2011, à 20:37)
Les grands bonheurs viennent du ciel, ...
Xcfa, Linux on the root, Normalisation, Ogg Vorbis
Hors ligne
#5 Le 29/01/2011, à 02:52
- soupaloignon
Re : MultiScript : Audio
Je suis sous Debian Squeeze très fraîchement installée.
Ok, je vais le rajouter dans les distrib testées
Juste deux trucs:
1) Un test du contenu de la variable [ $menu ] est apparemment nécessaire du genre:
2) La fenêtre d'action génère une erreur suite a un click sur Annule :
Je ne sais pas à quoi sert la variable [ $max ] et j'ai donc modifié (chez moi) le menu ainsi :
Vu l'heure... je regarderai ça pendant le we. En tout cas merci pour le retour
PS:
Au fait, ta page est inaccessible
Mouarfff...c'est de ma faute, j'ai zappé la date de renouvellement du nom de domaine. Je m'en suis aperçu il y a quelques jours, et normalement tout devrait revenir à la normale prochainement
==> Libérez les huitres du bassin d'Arcachon <==
Hors ligne
#6 Le 01/02/2011, à 00:03
- soupaloignon
Re : MultiScript : Audio
Salut Claude,
Désolé pour le retard de réponse, mais cela a été un we travaux/platre...
Je ne sais pas à quoi sert la variable [ $max ]
Ce menu date de pas mal de temps, je l'utilise pour un autre script. Je me souviens absolument plus pourquoi j'avais mis ça à l'époque, même s'il devait y avoir une raison. Ceci dit cela fonctionne bien sans cela effectivement, je l'ai donc enlevé pour la prochaine version.
La fenêtre d'action génère une erreur suite a un click sur Annuler
Oui, je n'ai jamais réussi à le faire fonctionner. En même temps je n'ai pas trop cherché car pour fermer le script il y a la 1ere ligne "Quitter le script". Mais ceci dit, si tu as une idée la dessus, je suis preneur
Un test du contenu de la variable [ $menu ] est apparemment nécessaire du genre:
if [ -n "$menu" ] # Teste si un argument est non vide. then echo "menu NON VIDE" else echo "menu EST VIDE=" fi
Là je ne vois pas de quoi tu veux parler. Tu proposes de tester si un choix a été fait lorsque l'on clique sur le bouton Valider ? Parce que si c'est ça, et sous réserve que j'ai bien compris ce que tu disais, cela existe déjà :
# Vérifier qu'un choix a été fait
if [ ! "$menu" ]; then
zenity --error --title="Erreur" --text="Choisissez une action"
fi
Dernière modification par soupaloignon (Le 01/02/2011, à 00:09)
==> Libérez les huitres du bassin d'Arcachon <==
Hors ligne
#7 Le 01/02/2011, à 17:00
- b52
Re : MultiScript : Audio
Dans ce morceau de code:
# Vérifier qu'un choix a été fait
if [ ! "$menu" ]; then
zenity --error --title="Erreur" --text="Choisissez une action"
fi
Il manque les conditions :
# Si le menu est vide
if [ ! -n "$menu" ]; then
zenity --error --title="Erreur" --text="Choisissez une action"
echo "menu EST VIDE"
# Sinon
elif [ $menu -eq "11" ]; then
etc ...
pour ne pas générer ce type d'erreur:
./soupaloignon.sh: line 270: [: -eq : opérateur unaire attendu
./soupaloignon.sh: line 288: [: -eq : opérateur unaire attendu
...
Mais ce code n'a aucune incidence sur le fonctionnement
PS:
Cette forme génère une erreur:
if [ $menu -eq 11 ]; then
et cette forme non:
if [ "$menu" = 11 ]; then
Dernière modification par b52 (Le 01/02/2011, à 17:13)
Les grands bonheurs viennent du ciel, ...
Xcfa, Linux on the root, Normalisation, Ogg Vorbis
Hors ligne
#8 Le 28/02/2011, à 20:59
- b52
Re : MultiScript : Audio
Toc toc toc ...
Tu as abandonné le projet
Les grands bonheurs viennent du ciel, ...
Xcfa, Linux on the root, Normalisation, Ogg Vorbis
Hors ligne
#9 Le 01/03/2011, à 02:51
- soupaloignon
Re : MultiScript : Audio
Non, rassure toi, je suis vraiment pas du genre à abandonner un projet que j'initie (ni un projet auquel j'ai décidé de participer).... C'est juste qu'avec ma compagne on est en plein travaux d'aménagement de maison, et qu'il faut faire des priorités. Car malheureusement le temps n'est pas extensible. Mais je suis toujours dessus, même si cela ne se traduit pas forcément par des interventions, en tout cas sur ce post. Mais il y a d'autres post, en rapport avec ce script : http://forum.ubuntu-fr.org/viewtopic.php?id=444784
L'idée c'est de poster une prochaine version du script qui tienne compte des remarques que tu as faite, et qui règle le problème évoqué dans le post cité précédemment.
Merci en tout cas de l'intérêt que tu y portes, c'est précieux pour moi (merde, c quand même le dev de Xcfa qui s'intéresse à mes quelques lignes de code. Je trouve cela stimulant
)
==> Libérez les huitres du bassin d'Arcachon <==
Hors ligne
#10 Le 14/03/2011, à 22:07
- b52
Re : MultiScript : Audio
oh mince, je te dérange pendant une gâchée de plâtre et je vais être maudit par ta compagne
PS:
Prends ton temps, y a pas le feu au lac hein
Les grands bonheurs viennent du ciel, ...
Xcfa, Linux on the root, Normalisation, Ogg Vorbis
Hors ligne
#11 Le 01/04/2011, à 08:01
- soupaloignon
Re : MultiScript : Audio
Nouvelle version du scrpt : MultiScript : Audio (V 0.2)
Les nouveautés :
- Ajout d'une fonction pour lancer la gravure des fichiers wav contenus dans un répertoire
- Modifications suite aux retours de b52 (Le platre est sec, c'est bon )
- Optimisation du code
#!/bin/bash
####################################################################################
#
# MultiScript : Audio
# Permet de travailler sur des fichiers audio : Conversion de formats / Renommage
# Travaille sur les formats : wav / mp3 / ogg / flac
#
# Dépendances :
# A voir ;)
#
# Version :
# 0.2 : 2011/04/01
# 0.1 : 2011/01/28
#
# Utilisation :
# Se placer dans le répertoire contenant les fichiers audio à traiter, lancer le script.
# Inutile de sélectionner les fichiers, le script va travailler sur toutes les fichiers
# contenus dans le répertoire (et uniquement dans le répertoire, il n'est pas récursif)
#
# Le script travaille en modifiant la casse des extensions des fichiers (majuscule en minuscule), c'est voulu
# si ce comportement ne vous convient pas, n'utilisez pas ce script, ou modifiez-le ;)
#
# Le fil de discussion sur le forum d'Ubuntu fr :
#
# Infos et historique du script : http://forum.ubuntu-fr.org/viewtopic.php?id=440377
#
# Version 0.2 testée Testé sous Mint 9 (Lucid)
# Version 0.1 testée sous Mint 9 (Lucid) / Debian Squeeze
#
#
# www.soupaloignon.net
####################################################################################
####################################################################################
###### Mettre tout le script dans une boucle #######################################
while [ "$fin_du_script" != "oui" ]
do
####################################################################################
####################################################################################
###### Variable(s) générale(s) #####################################################
# Titre des fenêtres zenity
title="MultiScript : Audio (V 0.2)"
####################################################################################
####################################################################################
###### Function(s) #################################################################
function Casse-Extension
{
# Transforme l'extension en minuscules
ls -d *.WAV | sed 's/\(.*\).WAV$/mv "&" "\1.wav"/' | sh
ls -d *.MP3 | sed 's/\(.*\).MP3$/mv "&" "\1.mp3"/' | sh
ls -d *.FLAC | sed 's/\(.*\).FLAC$/mv "&" "\1.flac"/' | sh
ls -d *.OGG | sed 's/\(.*\).OGG$/mv "&" "\1.ogg"/' | sh
}
####################################################################################
####################################################################################
###### Afficher le menu ############################################################
menu=`zenity --width=750 --height=500 \
--title "$title" --text="Choisir l'action à effectuer sur des fichiers : wav / mp3 / ogg / flac" --list --hide-column 1 --column "" --column "" \
0 "QUITTER LE SCRIPT" \
1 "" \
2 "Global : Intitulé / 2 chiffres" \
3 "Changer la casse de l'extension : WAV => wav / MP3 => mp3 etc" \
31 "" \
4 "Rajouter un intitulé devant le nom du fichier" \
41 "Rajouter un intitulé à la fin du nom du fichier" \
5 "Renommer en masse sur X chiffres au choix" \
10 "" \
11 "conversion : Ogg => Wav" \
12 "conversion : Flac => Wav" \
13 "conversion : Mp3 => Wav" \
14 "conversion : Wav => Flac" \
15 "conversion : Flac => ogg" \
16 "" \
17 "Graver les fichiers wav" \
18 "" \
21 "A LIRE"`
# Pour quitter
if [ "$menu" = 0 ] ; then
fin_du_script="oui"
fi
# Vérifier qu'un choix a été fait
if [ ! "$menu" ]; then
zenity --error --title="Erreur" --text="Choisissez une action"
echo "menu EST VIDE"
fi
####################################################################################
####################################################################################
###### Global #######
# Choix du menu
if [ "$menu" = 2 ] ; then
TEXTE=$(zenity --entry --width=500 --height=150 --title="$title : Intitulé devant le nom de fichier" --entry-text="" --text="Entrez le nom à rajouter devant vos fichiers :")
# Eviter les problèmes avec des noms de fichiers comportants des espaces
IFS=$'\n'
let "indice=1"
for fichier in *.mp3 *.wav *.flac *.ogg
do
if [ -f "$fichier" ]; then
extension=${fichier##*.}
echo "$fichier" "=>" "$indice.$extension"
mv "$fichier" `printf "%0"2"d" $indice`".$extension"
let "indice+=1"
fi
done
for fichier in *.mp3 *.wav *.flac *.ogg
do
rename 's/^/'$TEXTE'/' $fichier
done
fi
####################################################################################
####################################################################################
###### Changer la casse ############################################################
# Choix du menu
if [ "$menu" = 3 ] ; then
# Function Transforme l'extension en minuscules
Casse-Extension
fi
####################################################################################
####################################################################################
###### Rajouter un intitulé devant le nom du fichier ###############################
# Choix du menu
if [ "$menu" = 4 ] ; then
# Eviter les problemes avec des noms comportant des espaces
IFS=$'\n'
# Function Transforme la casse et ou l'extension en jpg/png
#Casse-Extension
## Texte à rajouter devant le nom du fichier
TEXTE=$(zenity --entry --width=500 --height=150 --title="$title : Intitulé devant le nom de fichier" --entry-text="" --text="Entrez le nom à rajouter devant vos fichiers :")
if [ "${PIPESTATUS[0]}" != "0" ]; then
exit
fi
# Boucle d'insertion
for fichier in *.mp3 *.wav *.flac *.ogg
do
rename 's/^/'$TEXTE'/' $fichier
done
fi
####################################################################################
####################################################################################
###### Rajouter un intitulé à la fin du nom du fichier ###############################
# Choix du menu
if [ "$menu" = 41 ] ; then
# Eviter les problemes avec des noms comportant des espaces
IFS=$'\n'
# Function Transforme la casse
Casse-Extension
## Texte à rajouter à la fin du nom du fichier
TEXTEFIN=$(zenity --entry --width=500 --height=150 --title="$title : Intitulé à la fin du nom du fichier" --entry-text="" --text="Entrez l'intitulé à rajouter à la fin de chaque nom de fichier :")
if [ "${PIPESTATUS[0]}" != "0" ]; then
exit
fi
for file in *.mp3 *.wav *.flac *.ogg
do
base=`basename $file`
mv $file ${base%.*}$TEXTEFIN.${base##*.}
done
fi
####################################################################################
####################################################################################
###### Renomme en masse sur X chiffres #############################################
# Choix du menu
if [ "$menu" = 5 ] ; then
# Choix du nombre de caracteres
nombre=$(zenity --entry --width=500 --height=150 --title="$title : Nombre de chiffres" --entry-text="2" --text="Choisir sur quel nombre de chiffres seront renommés vos fichiers :" )
if [ "${PIPESTATUS[0]}" != "0" ]; then
exit
fi
# Function Transforme la casse
Casse-Extension
# Boucle
let "indice=1"
for fichier in *.mp3 *.wav *.flac *.ogg
do
if [ -f "$fichier" ]; then
extension=${fichier##*.}
echo "$fichier" "=>" "$indice.$extension"
mv "$fichier" `printf "%0"$nombre"d" $indice`".$extension"
let "indice+=1"
fi
done
fi
####################################################################################
####################################################################################
###### conversion de formats #############################################
####################################################################################
################################# Ogg/Wav
if [ "$menu" = 11 ]; then
for i in *.ogg; do
j="${i%.ogg}"
sox "$j.ogg" "$j.wav"
echo $j.ogg
done
mkdir wav
mv *.wav wav
zenity --info --text="L'encodage en Wav est terminé"
fi
################################# flac/wav
if [ "$menu" = 12 ]; then
flac --decode *.flac
mkdir wav
mv *.wav wav
zenity --info --text="L'encodage Flac => Wav est terminé"
fi
################################# mp3/wav
if [ "$menu" = 13 ]; then
for fichier in *.mp3; do
lame --verbose --decode "$fichier" "${fichier/%.mp3/.wav}";
done
mkdir wav
mv *.wav wav
zenity --info --text="L'encodage Mp3 => Wav est terminé"
fi
################################# Wav/flac
if [ "$menu" = 14 ]; then
flac --best *.wav
mkdir flac
mv *.flac flac
zenity --info --text="L'encodage Wav => Flac est terminé"
fi
################################# Flac/Ogg
if [ "$menu" = 15 ]; then
oggenc -q9 *.flac
mkdir ogg
mv *.ogg ogg
zenity --info --text="L'encodage Flac => Ogg est terminé"
fi
################################# gravure des wav
if [ "$menu" = 17 ]; then
wodim -v -pad -dev=/dev/cdrw -dao -audio -eject *.wav
zenity --info --text="La gravure est terminée"
fi
####################################################################################
###### A LIRE ######################################################################
# Choix du menu
if [ "$menu" = 21 ] ; then
zenity --info --title="$title : Informations" --text="J'ai fait ce script pour mon usage personnel. S'il peut vous être utile, tant mieux.\n\nUtilisation :\n\nSe placer dans le répertoire contenant les fichiers audio à traiter, lancer le script. Inutile de sélectionner les fichiers, le script va travailler sur toutes les fichiers contenus dans le répertoire (et uniquement dans le répertoire, il n'est pas récursif)\n\nCe script travaille uniquement sur des fichiers aux formats : flac, ogg, wav, mp3\n\nImportant : Ne travaillez pas dans des dossiers qui contiennent un mélange de fichiers avec différents formats, le script n'est pas prévu pour cela et vous auriez des erreurs.\n\n\nFonctionnalités (Testé uniquement sous Mint 9 (Lucid)):\n
Global : Renommera les fichiers avec un intitulé à saisir, suivi d'une incrémentation sur 2 chiffres (départ 01)\n\nChanger la casse : transformera la casse de l'extension en minuscule\n
Rajouter un intitulé devant le nom du fichier : Le nom du fichier est conservé, un intitulé à saisir est rajouté devant\n\nRajouter un intitulé à la fin du nom du fichier : Le nom du fichier est conservé, un intitulé à saisir est rajouté derrière\n\nRenommer en masse sur X chiffres : Renomme les fichiers (en gardant l'ordre initial) sur un nombre de X chiffres. X étant une valeur à saisir\n\nTravaillant nativement sur des extensions en minuscules, ce script changera automatiquement la casse des extensions s'il rencontre des majuscules dans les extensions des fichiers à traiter.\n\nconversion : Convertir les formats audio. Les originaux sont préservés, un dossier est créé dans le repertoire en cours d'utilisation.\n
\nGraver les fichiers wav : Grave un Cd audio des fichiers wav du répertoire. Le script présupose qu'un Cd vierge est dans le graveur.
www.soupaloignon.net"
fi
########################################################################
done
exit 0
==> Libérez les huitres du bassin d'Arcachon <==
Hors ligne
#12 Le 01/04/2011, à 20:12
- b52
Re : MultiScript : Audio
Salut @soupaloignon,
Génial ton script
Je me suis permis d'y apporter quelques modifs pour une meilleure lisibilité du code:
- Ajout indentations
- Utilisation de case .. esac
http://download.tuxfamily.org/xcfaudio/ … ReadMe.txt
http://download.tuxfamily.org/xcfaudio/Soupaloignon/
Merci pour l'info, j'ai regardé, mais sans vraiment comprendre comment utiliser ça dans un script bash.
J'essaye de voir avec metaflac et la ligne "--import-tags-from=FILE" (sans succès jusqu'à présent d'ailleurs wink)
Faudrait que je jette un oeil à l'occasion !
PS:
Je n'ai pas testé la gravure wav mais tout le reste pour moi sous Squeeze, est ok
Dernière modification par b52 (Le 01/04/2011, à 20:24)
Les grands bonheurs viennent du ciel, ...
Xcfa, Linux on the root, Normalisation, Ogg Vorbis
Hors ligne
#13 Le 02/04/2011, à 10:40
- soupaloignon
Re : MultiScript : Audio
Hello
Génial ton script
Génial je sais pas, mais extrêmement pratique en tout cas
Je me suis permis d'y apporter quelques modifs pour une meilleure lisibilité du code:
- Ajout indentations
- Utilisation de case .. esac
http://download.tuxfamily.org/xcfaudio/ … ReadMe.txt
http://download.tuxfamily.org/xcfaudio/Soupaloignon/
Permet toi, au contraire. Par contre qu'apporte l'utilisation de case .. esac par rapport à ce qu'il y avait avant ?
Excellent l'en tête du ReadMe
Merci pour l'info, j'ai regardé, mais sans vraiment comprendre comment utiliser ça dans un script bash.
J'essaye de voir avec metaflac et la ligne "--import-tags-from=FILE" (sans succès jusqu'à présent d'ailleurs wink)
En fait cette partie là appartient à un autre script (utilisé conjointement avec celui-ci). Et l'ensemble me permet de réaliser un projet dont j'avais déjà parlé sur le fil de discussion de Xcfa, le transfert de tous mes Cd audio en numérique sous 2 formats. Le flac et ses tags que j'utiliserai avec un serveur son (mpd + client175), et un archivage en wav.
http://forum.ubuntu-fr.org/viewtopic.php?id=448319
PS:
Je n'ai pas testé la gravure wav mais tout le reste pour moi sous Squeeze, est ok
Super, je vais l'indiquer sur le script. Pour la gravure c'est avec wodim, donc ça m'étonnerai que cela ne fonctionne pas avec une Debien
==> Libérez les huitres du bassin d'Arcachon <==
Hors ligne
#14 Le 02/04/2011, à 12:47
- b52
Re : MultiScript : Audio
Par contre qu'apporte l'utilisation de case .. esac par rapport à ce qu'il y avait avant ?
Outre une meilleure vue de l'ensemble de ton code surtout si tu en refais une lecture dans 6 mois, cela m'a permis de voir de suite que les deux premières options de case:
case $menu in
"")
zenity --error --title="Erreur" --text="Choisissez une action"
echo "menu EST VIDE"
;;
0)
fin_du_script="oui"
;;
... pourraient ne faire qu'un.
La première option étant uniquement activée par un click sur la fermeture de la fenêtre.
Mais tu es le Maître à bord
Excellent l'en tête du ReadMe
C'est l'excellent figlet qui fait tout
Une démo est possible (en fenêtre shell) avec:
$ showfigfonts
PS:
Au fait, je n'ai point vu de référence pour ton script sur tes pages
Dernière modification par b52 (Le 02/04/2011, à 13:00)
Les grands bonheurs viennent du ciel, ...
Xcfa, Linux on the root, Normalisation, Ogg Vorbis
Hors ligne
Pages : 1