MOD vers MP3, la scène Amiga représente grave !

Coup de nostalgie ! Bien avant MP3, bien avant GNU/Linux… il y avait des machines de rêve comme l’Amiga, le ST… et pour mal part le C64 (mais rien à voir). En ce temps là, il y avait un format : le MOD.

Pour faire revenir les sons du passé dans le présent, sur mon iPod Nano, il me fallait convertir ces MODs en MP3. Après 5mn de recherches infructueuses, j’ai décider d’utiliser la méthode bouts-de-ficelles :
#!/bin/bash
MIKMOD=/usr/bin/mikmod
LAME=/usr/bin/toolame
SOX=/usr/bin/sox
ID3V2=/usr/bin/id3v2
HEAD=/usr/bin/head

SONGNAME=`basename $1 .mod`

$MIKMOD  -p 0 $1
mv music.raw $SONGNAME.raw

$SOX -r 44100 -c 2 -w -s $SONGNAME.raw $SONGNAME.wav
rm $SONGNAME.raw

$LAME $SONGNAME.wav $SONGNAME.mp3
rm $SONGNAME.wav

$ID3V2 -t « `$HEAD -c 20 $1` » -A « MODFILES » -a « MODlovers » $SONGNAME.mp3
mikmod, par défaut produit un fichier RAW, stéréo, 16bits, 44100Hz. Sur la base de ces informations, on peut utiliser sox pour en faire un WAV qui sera, ensuite compresser en MP3 avec toolame.

Enfin, le format MOD permet d’inclure un titre au morceau sous la forme des 20 premiers octets du fichier (avec un padding avec des espaces). On peut donc utiliser head pour récupérer ces infos et en faire le tag « titre » ID3v2 du MP3 avec id3v2.

Samsung YP-K3 en mode disque dur UMS (USB Mass Storage)

Je vais le dire comme je le pense, le support du protocole MTP pour les lecteurs MP3 est une véritable bouse sous GNU/Linux. Applications multimédia, FUSE/MTPFS, etc… sux ! Pour moi, clairement, un bon balladeur MP3 c’est Mass Storage ou c’est pas. Et quand c’est pas… c’est quand même ! Comment passer un Samsung YP-K3 en mode Mass Storage (UMS) sans l’ombre d’un Windows ? Simple… suivez le guide…
Il existe un firmware (micro-programme) pour le YP-K3 permettant :

mode UMS USB Mass Storage, Yeah ! Mais Yeah quoi !!!!
plus besoin de tags id3
Navigateur de fichiers
Support Ogg
Lecture de texte
Egaliseur configurable
2 fonts en plus
Nouvelles animations en lecture
3 niveau de sensibilité FM
3 couleur d’affichage (red ici)
Plus de limitation de niveau de son

C’est un firmware coréen version 4.06. La procédure est la suivante (Attention, vous pouvez rendre inutilisable votre matériel, venez pas pleurer, chez moi ça a marché au poil, après quelques reset car le mode MTP était… beuaaarggg. Si vous tentez la procédure c’est à vos risques et périls. Je suis absolument pas responsable et je ne vous demande pas de faire ce qui suit. Ceci est donné à titre purement indicatif. Et non, je veux pas le faire pour vous non plus !) :

récupération du firmware koréen 4.06 (un par couleur d’interface) :
http://file-yepp.muz.co.kr/firmware/YP-K3%20V4.06%20BLUE_man.zip

http://file-yepp.muz.co.kr/firmware/YP-K3%20V4.06%20LIME_man.zip

http://file-yepp.muz.co.kr/firmware/YP-K3%20V4.06%20RED_man.zip
Dézipage. On récupère : YPK3.IMG et YPK3.rom
Montage mtpfs/fuse (bouseux)
sudo -s
aptitude install mtpfs
mkdir /mnt/K3
mtpfs -d -f /mnt/K3 # debug/foreground
copie des fichiers firmware et démontage
cp /tmp/YPK3.IMG /tmp/YPK3.rom /mnt/K3
sync
fusermount -u K3
débrancher le K3. Allumer. Message upgrade firmware puis message d’erreur « y’a pas de DB ». Normal y’a pas de FS initialisé
rebranchage du K3
usb-storage: device found at 17
usb-storage: waiting for device to settle before scanning
usb-storage: device scan complete
scsi 5:0:0:0: Direct-Access SAMSUNG YP-K3 1.00 PQ: 0 ANSI: 0
sd 5:0:0:0: [sda] 7880704 512-byte hardware sectors (4035 MB)
sd 5:0:0:0: [sda] Write Protect is off
sd 5:0:0:0: [sda] Mode Sense: 37 00 00 08
sd 5:0:0:0: [sda] Assuming drive cache: write through
sd 5:0:0:0: [sda] 7880704 512-byte hardware sectors (4035 MB)
sd 5:0:0:0: [sda] Write Protect is off
sd 5:0:0:0: [sda] Mode Sense: 37 00 00 08
sd 5:0:0:0: [sda] Assuming drive cache: write through
sda: unknown partition table
sd 5:0:0:0: [sda] Attached SCSI removable disk
création partition avec fdisk /dev/sda. Une partoche type b (W95 FAT32)
formatage : mkfs.vfat -F 32 /dev/sda1
mountage : mount /dev/sda1 /mnt/K3
copie une seconde fois des fichiers firmware
démontage et déconnexion
Allumage : upgrade firmware, allumage, upgrade image (interface)
Allumage : réglage francais (un peu coréen par défaut)
Done !!!!

Rha comme je l’ai soumis ce YP-K3 !!!!!!

Sources :

http://gentoo-wiki.com/HARDWARE_Samsung_K3
http://forums.gentoo.org/viewtopic-p-4955759.html?sid=2c23ec866d6564ca2f2185c780a139e9

Programmer l'enregistrement d'un flux MP3

Les Webradio c’est bien, surtout lorsqu’il s’agit également de radios libres hertziennes. Cependant, toutes ne proposent pas de podcasts ou d’enregistrements Ogg ou MP3 des émissions. Il faut donc se rabattre sur l’enregistrement et l’encodage du flux. Comme cela ne suffit pas, il faut, bien sûr, le faire alors que l’on ne dispose pas d’une machine connectée sous la main.

Pour réussir cette recette, vous aurez besoin :

d’Mplayer ou de n’importe quel lecteur capable d’envoyer le flux audio dans un fichier de type WAV
d’un peu de place (dépendant de la durée d’enregistrement)
d’un encodeur Ogg ou MP3 comme lame

Le reste est dans n’importe quel Unix digne de ce nom. Enregistrer le flux dans un fichier est relativement simple avec Mplayer :
% mplayer -cache 128 -ao
pcm:waveheader:file=/tmp/audio.wav
-vc dummy -vo null
http://url/du/flux.mp3
On pourra interrompre l’opération avec un petit CTRL+C. Reste ensuite à encoder le fichier audio.wav avec lame par exemple :
% lame tmp/audio.wav
/tmp/MonFichier-`date +’%d_%B-%Hh%Mm%Ss’`.mp3
Comme nous sommes des gens intelligents, on utilise directement la chaîne formatée retournée par la command date pour nommer le fichier. Ceci nous évitera tout écrasement de fichiers et facilitera le classement.

Pour automatiser, on place tout cela dans un script Shell :
#!/bin/sh
# mplayer détaché du terminal
mplayer -cache 128 -ao
pcm:waveheader:file=/mnt/WDext/audio.wav
-vc dummy -vo null
http://live.radio-gresivaudan.org:8000/RadioSaintAffrique &

# durée de l’enregistrement
sleep $1
# arrêt mplayer
killall mplayer
#encodage
lame /mnt/WDext/audio.wav
/mnt/WDext/MonFichier-`date +’%d_%B-%Hh%Mm%Ss’`.mp3
# ménage
rm -rf /mnt/WDext/audio.wav
Maintenant, le script peut être lancé avec en argument le nombre de secondes correspondant à la durée de l’enregistrement. Comme nous ne sommes pas là, nous faisons appel à la commande at :
% at 17h55
> ~/le_script 2400
>^D
Et c’est fini. Notez qu’il est possible de se passer de la commande killall qui fait un peu tache en utilisant l’option -endpos 00:00:14 de la commande mplayer. Celle-ci permet de spécifier directement une durée d’enregistrement. La méthode killall présente l’avantage de fonctionner avec n’importe quel outil d’enregistrement.

Complément de dernière minute : mplayer peut avoir des difficultés à fonctionner depuis un job at ou un script d’init. Cela vient du fait qu’il cherche à détecter le type de terminal et à réagir en conséquence (Terminal type unknown is not defined.). La méthode la plus simple pour corriger le problème est tout simplement d’utiliser </dev/null en fin de ligne. Exemple :
% echo « /usr/bin/mplayer -cache 128 -ao pcm:waveheader »
« :file=/mnt/WDext/tmp/j3/audio19.wav -vc »
 » dummy -vo null -endpos 00:35:00″
 » http://live.radio-gresivaudan.org:8000/RadioSaintAffrique »
 » < /dev/null » | at 20h00