en.wikipedia.org/wiki/Iriver_e100
Je ne souhaite pas forcément faire de la pub pour ce baladeur mais ayant ayant acquit récemment ce lecteur voici un résumé des recherches pour ce lecteur.
-> Les tags
- J’utilise easytag pour taguer mes fichiers audio mais easytag doit être configuré ainsi:
- Pas de tag v1
- J’utilise les tags id3v2.4 (et non 2.3) car fapg et eyeD3 avaient des problèmes pour lire les tags id3v2.3
Configurer easytag comme ceci
Personnellement je tag mes fichiers audio sur mon disque dur en utf8 et je fais la conversion en latin1 lors de la copies du fichier audio avec le script de copie ci dessous et easytag est configuré comme ceci
Il faut bien penser à décocher l’option Écrire des tags ID3 dans les fichiers FLAC (en plus du tag FLAC)
- Pour enlever les tag id3v1 on peut utiliser eyeD3 avec:
$ find ./dossier/audio -name “.mp3" -name ".ogg” -exec eyeD3 --remove-v1 {} ;
-> avoir la lectures des fichiers audios dans l’ordre
Effectivement lorsque l’on copie les fichiers audio avec cp, le 1° fichier copié est le 1° lu par le lecteur.
J’ai fait deux programmes pour réaliser la copie des fichiers audios.
** La première solution est d’avoir les fichiers audio sous la forme numero-cequelonveut.mp3 (avec easytag par exemple c’est assez simple de renommer les fichier audio) et d’utiliser mon script copy-iriver-alpha.sh ci-dessous qui utilise rsyn, eye3d, imagemagick et zenity.
Il copie les fichiers audio dans l’ordre alphabétique d’où la necessité de renommer les fichiers audios.
Pensez aussi à configurer convenablement la ligne mount="/media/usbdisk" pour votre baladeur.
[code]#!/bin/bash
mount="/media/usbdisk" # à changer éventuellement
dosini=$1 # pour dossier initial
if [ $(expr “$dosini” : “(.)”) != “/” ]; then dosini="$PWD/$dosini" ; fi # si le 1° caractère n’est pas / on met le lien relatif en lien absolu
if [ ${dosini: -1} = “/” ]; then # si le dernier caractère est / (ce n’est pas le cas quand je clic droit avec rox)
dosini="$(expr “$dosini” : “(.)/")" # on enlève le dernier /
fi
nom="$(expr “$dosini” : "./(.*)”)" #on ne garde que le nom du dossier
if [ ! -r $mount ] # si le lecteur n’est pas monté
then
zenity --info --text “il faut avant monter le lecteur” --timeout=4
exit
fi
cd $mount/
#on demande ou il faut copier la musique
dosfin=$(zenity --file-selection --directory --filename=Music --title=“Sélectionnez un fichier pour copier le dossier” )
case $? in
0)
echo “”$dosfin" est sélectionné." ;;
1)
exit ;;
-1)
exit ;;
esac
#On synchronise les dossiers ATTENTION à l’option --delete-before
rsync --verbose --recursive --times --whole-file --delay-updates --include “/" --include ".mp3” --include “.ogg" --include ".flac” --include “.jpg" --include ".png” --include “.lrc" --exclude "” --modify-window=1 --delete-before “$dosini/” “$dosfin/$nom/” | zenity --progress --text=“copie des fichiers en cours…” --pulsate --auto-close
#On réduit la taille de la couverture avec convert (du paquet image magick) à voir si cela convient
find “$dosfin/$nom/” ( -name “.jpg" -o -name ".png” ) -exec convert -size 200x200 -resize 200x200 +profile “*” {} {} ;
on converti les tag de utf8 en latin1, on enlève les tag v1, à vérifer si cela fonctionne tout le temps
find “$dosfin/$nom/” ( -name “.mp3" -o -name ".ogg” -o -name “*.flac” ) -exec eyeD3 --set-encoding=latin1 --to-v2.4 --remove-comments --force-update {} ; | zenity --progress --text=“changement des tags en cours…” --pulsate --auto-close
zenity --info --text “copie terminée” --timeout=5[/code]
On peut utiliser ce script en console $ copy-iriver-alpha.sh ledossier_audio_a_copier/ -> je choisis le dossier_final -> ok
J’ai intégré ce script à mon bureau (rox-filer) sur les dossiers par clic droit -> copy-irivers.sh -> je choisis le dossier_final -> ok
** La deuxième solution est d’utiliser les numéros des pistes (track) des fichiers audio dans les tags et le script copy-iriver-num.sh suivant.
#!/bin/bash
mount="/media/usbdisk" # à changer éventuellement
###############################################################################################################
###################### La fonction qui copie les fichisers audios qu'il y a dans un dossier #################
###############################################################################################################
function copy {
#$1 contient le dossier initial
# $2 le dossier final
nom="$(expr "$1" : ".*/\(.*\)")" #on ne garde que le nom du dossier
if [ ! -r "$2/$nom/" ] ; then #si le dossier finale n'existe pas il faut le créer
mkdir -p "$2/$nom/"
fi
find "$1/" -maxdepth 1 \( -name "*.png" -o -name "*.jpg" \) -exec cp {} "$2$nom/" \; #On copie les images
declare -a tab #tableau de la liste des fichiers audio classé dans l'odre du résultat de ls
declare -a tabclas #tableau de la liste des fichiers audio classé dans l'odre des numeros de chansons
####################### pour les fichiers oggvorbis ########################
tab=($(find "$1" -maxdepth 1 -name "*.ogg" ) ) # on classe le résultat dans un tableau
#tab=($(ls "$1/*.ogg" ) ) # on classe le résultat dans un tableau
if [[ ${#tab[*]} != 0 ]]; then # s'il y a des fichiers ogg
for i in ${!tab[*]} ;do
j=$(vorbiscomment ${tab[$i]} | grep TRACKNUMBER) # on cherche la ligne du numero
j="$(expr "$j" : ".*=0*\(.*\)")" #on ne garde que le numero
tabclas[$j]=${tab[$i]} # on place le chemin du fichier audio dans le tableau dans la case numero
done
for i in ${!tabclas[*]} ; do
cp -f ${tabclas[$i]} $2/$nom/ # On copie
done
unset tab # on efface
unset tabclas
fi
####################### pour les fichiers flac ########################
tab=($(find "$1" -maxdepth 1 -name "*.flac" ) ) # on classe le résultat dans un tableau
#tab=($(ls "$1/*.flac" ) ) # on classe le résultat dans un tableau
if [[ ${#tab[*]} != 0 ]]; then # s'il y a des fichiers flac
for i in ${!tab[*]} ;do
j=$(metaflac --show-tag=TRACKNUMBER ${tab[$i]}) # on cherche la ligne du numero
j="$(expr "$j" : ".*=0*\(.*\)")" #on ne garde que le numero
tabclas[$j]=${tab[$i]} # on place le chemin du fichier audio dans le tableau dans la case numero
done
for i in ${!tabclas[*]} ; do
cp -f ${tabclas[$i]} $2/$nom/ # On copie
k=${tabclas[$i]}
k=${k##*/} #On garde le nom du fichier audio
chgtagflac "$2/$nom/$k" # On change le tag
done
unset tab # on efface
unset tabclas
fi
####################### pour les fichiers mp3 ########################
tab=($(find "$1" -maxdepth 1 -name "*.mp3" ) )
#tab=($(ls "$1/*.mp3" ) ) # on classe le résultat dans un tableau
if [[ ${#tab[*]} != 0 ]]; then # s'il y a des fichiers flac
for i in ${!tab[*]} ; do
j=$(eyeD3 "${tab[$i]}" | grep track) #on cherche la ligne où il y a le numero de la chanson
j="$( expr "$j" : "^[^:]*:[^0-9]*\([0-9]*\).*" )" #on ne garde que le numero
tabclas[$j]=${tab[$i]} # on place le chemin du fichier audio dans le tableau dans la case numero
done
for i in ${!tabclas[*]}; do
cp -f ${tabclas[$i]} $2/$nom/ # On copie
eyeD3 --set-encoding=latin1 --to-v2.4 --remove-comments --force-update "$2/$nom/${tabclas[$i]##*/}" # on transforme le tag
done
unset tab # on efface
unset tabclas
fi
} # fin de la fonction
###############################################################################################################
########################" Fonction qui change les tags pour les fichiers flac ##############################
###############################################################################################################
function chgtagflac {
#$1 contient le dossier initial
declare -a id3tab #tableau des nom de tag id3v4 que je veux garder
declare -a id3tab2 #tableau nom + valeur des tags
id3tab=(ALBUM GENRE TITLE ARTIST TRACKNUMBER TOTALTRACKS CHANNELS DATE DISCNUMBER)
for i in ${!id3tab[*]} ;do # on lit le tag du nom Artist=Kate Bush et on enregistre dans id3tab2
id3tab2[i]=$(metaflac --show-tag=${id3tab[i]} "$1"| head -n 1) # head au cas il y aurait plusieurs tags
done
metaflac --remove-all-tags "$1" #on efface les tags
metaflac --remove-all "$1" #on efface les tags
for i in ${!id3tab2[*]}
do
if [[ ${id3tab2[i]} != "" ]]
then
j=${id3tab2[i]}
j=${id3tab[i]}"="${j#*=} #ARTIST=Kate Bush
#echo $(echo ${j%%=*} | tr 'a-z' 'A-Z')"="${j#*=}
metaflac --set-tag="$j" "$1" #on écrit le tag
fi
done
}
###############################################################################################################
##################################### fin des fonctions #################################################
###############################################################################################################
############################### debut du programme #####################################################
dosini=$1 # pour dossier initial
if [ $(expr "$dosini" : "\(.\)") != "/" ]; then dosini="$PWD/$dosini" ; fi # si le 1° caractère n'est pas / on met le lien relatif en lien absolu
if [ ${dosini: -1} = "/" ]; then # si le dernier caractère est / (ce n'est pas le cas quand je clic droit avec rox)
dosini="$(expr "$dosini" : "\(.*\)/")" # on enlève le dernier /
fi
nomdos="$(expr "$dosini" : ".*/\(.*\)")" #on ne garde que le nom du dossier
#nomdos="$(expr "$1" : ".*/\(.*\)")"
if [ ! -r $mount ] # si le lecteur n'est pas monté
then
zenity --info --text "il faut avant monter le lecteur" --timeout=4
exit
fi
cd "$mount/"
if [[ $2 = "" ]] ; then # s'il n'y a pas de deuxième paramètres on demande ou il faut copier la musique
dosfin=$(zenity --file-selection --directory --filename=Music --title="Sélectionnez un fichier pour copier le dossier" )
case $? in
0) echo "\"$dosfin\" est sélectionné." ;;
1) exit ;;
-1) exit ;;
esac
else
dosfin="$2"
fi
{ #parenthèse pour zenity
IFS=$'\n\t'
####################### pour les dossiers ########################
tab=($(find "$dosini" -type d ) ) # on classe le résultat dans un tableau
if [[ ${#tab[*]} != 0 ]]; then # s'il y a des dossiers
tab[0]="$( expr "${tab[0]}" : "\(.*\)/")" # on enlève pour le 1° élément le dernier caractère qui est /
for i in ${!tab[*]} ; do #pour chacun des dossiers
if [[ $i == 0 ]]; then
copy "${tab[$i]}/$nomdos" "$dosfin"
else
sousdos="$(expr "${tab[i]}" : "${tab[0]}\(.*\)/.*")"
copy "${tab[$i]}" "$dosfin$sousdos"
fi
done
fi
}| zenity --progress --text="copie des fichiers en cours..." --pulsate --auto-close
if [ "$?" = 1 ] ; then
appli="$(expr "$0" : ".*/\(.*\)")" # de l'aplication
i=$(ps -e | grep appli)
#à terminer pour
zenity --error \
--text="Mise à jour annulée."
fi
Il se lance de la même manière que le précédent copy-iriver-num.sh ledossieraudio/ ou mieux intégré à votre gestionnaire de fichier par clic droit sur ls dossiers.
-> Les listes de lecture
Je les places dans Playlists mais elles ont un format spécial .pla
Pour créer les listes au format m3u j’utilise fapg et pour les convertir au format pla j’utilise m3u2pla que l’on peux télécharger ici personal.inet.fi/koti/petterih/iriver-t50.html
Normalement fapg peut convertir directement les listes au format .pla mais ca n’a pas fonctionné.
$ cd mount="/media/usbdisk/Playlists/
$ fapg --format=m3u …/Music/mondossieraudio/ | m3u2pla > mondossieraudio.pla
edit: j’ai enlevé mon script pour créer automatiquement les listes de tous les dossiers.
Ce script est desormé obsolète puisque le script ci-dessus permet d’écouter la musique dans l’odre.
-> Les videos
- j’utilise mencoder pour la conversion des videos par exemple:
- Il existe aussi un gui iRiverter iriverter.sourceforge.net/index.shtml
pour le compiler
$ ./configure --with-swt=/usr/lib/java/swt.jar
$ make
make install
Perso je préfère la ligne de commande.
-> Upgarder le firmware
Il est possible d’upgrader le firmware sous linux en mode ums.
Vous devez récupérer le dernier firmware ici nyaochi.sakura.ne.jp/iriverupdate/
fre c’est pour french, kor pour coréen et EN pour english bien sur, UM pour ums. J’ai téléchargé le firmware E100_FRE_UM_OK.zip
Il faut alors monter le lecteur mp3 et déziper le firware à sa racine (/media/usbdisk/ pour moi)
Démontez le lecteur et débranchez le, la mise à jour se fait alors.
-> karaoke
Il faut les télécharger ou les créer. Ce sont des fichiers textes qui portent l’extension .lrc
Ils doivent avoir le même nom que le fichier audio et être placé dans le même dossier.
Voici un exemple que j’ai fait (mais c’est pénible à faire)
[code][artist:Peter Gabriel]
[title:Games Without Frontiers]
[album:Peter Gabriel 2]
[0:16.800]Jeux sans frontières
[0:36.200]Hans plays with Lotte, Lotte plays with Jane
[0:41.200]Jane plays with Willi, Willi is happy again
[0:46.000]Suki plays with Leo, Sacha plays with Britt
[0:51.200]Adolf builts a bonfire, Enrico plays with it
[1:01.200]Whistling tunes we hide in the dunes by the seaside
[1:11.200]Whistling tunes we’re kissing baboons in the jungle
[1:15.600]It’s a knockout
[1:18.400]If looks could kill, they probably will
[1:21.200]In games without frontiers-war without tears
[1:28.400]If looks could kill, they probably will
[1:31.000]In games without frontiers-war without tears
[1:36.250]Games without frontiers-war without tears
[1:45.300]Jeux sans frontières
[1:59.800]Andre has a red flag, Chiang Ching’s is blue
[2:04.700]They all have hills to fly them on except for Lin Tai Yu
[2:09.900]Dressing up in costumes, playing silly games
[2:14.900]Hiding out in tree-tops shouting out rude names
[2:24.800]Whistling tunes we hide in the dunes by the seaside
[2:34.800]Whistling tunes we piss on the goons in the jungle
[2:39.200]It’s a knockout
[2:42.000]If looks could kill they probably will
[2:44.700]In games without frontiers-wars without tears
[2:52.000]If looks could kill they probably will
[2:54.500]In games without frontiers-war without tears
[2:59.800]Games without frontiers-war without tears
[3:09.100]Jeux sans frontières[/code]
Si vous avez des liens pour télécharger ce type de fichiers n’hésitez pas.
edit: mes scripts ne sont pas compatible avec dash alors j’ai changé /bin/sh par /bin/bash