Cerca nel blog

Loading

12 gennaio 2011

[Guida] Da mp3 a m4r: fare suonerie per l'iPhone con linux

Dite la verità, quante volte vi siete chiesti perché se l'iPhone può suonare gli mp3, allora perché non si possono usare gli stessi brani direttamente anche come suoneria per le chiamate in ingresso? Purtroppo non è così: gli mp3 non possono essere utilizzati direttamente come suonerie, ma devono necessariamente essere convertiti in un formato differente (AAC), avere una durata massima di 30 secondi e aver m4r come estensione del file.

Se siete utenti windows e iTunes allora state leggendo la guida sbagliata e non vi faccio perdere ulteriormente tempo. Qui facciamo le cose con linux, se volete sapere come fare con windows allora vi consiglio di prendere visione di quest'altra guida.

La presente guida si basa su Ubuntu 10.10, ma può essere adattata da un utente mediamente esperto a qualunque altra distribuzione. Iniziamo con il sommario:

  1. Credits
  2. Preparativi
  3. Prepariamo il file mp3 
  4. Convertiamo da mp3 a m4r
  5. Trasferiamo sull'iPhone e modifichiamo Ringtones.plist
  6. Riavviamo l'iPhone e selezioniamo la suoneria



Credits

L'idea dietro a questa guida non è mia e ci tengo a dirlo. L'ho presa in prestito, leggermente modificata e, ovviamente tradotta in italiano, da questo meraviglioso How2s

Cosa ci serve e cosa dobbiamo installare

Prima di cominciare diamo un'occhiata a quello che ci serve, tralasciando le cose ovvie tipo un computer con linux, un iPhone (va bene anche NON jailbreak) e il file mp3 che vogliamo trasformare in suoneria. Tutti questi software esistono già impacchettati quindi non dobbiamo compilare nulla.
  • Libreria di comunicazione con l'iPhone. [libimobiledevice] E' una libreria che ci permette di comunicare con il nostro iPhone.  Se volete maggiori dettagli su come installarla li trovate in una guida precedente.
  • Editor di file musicali. [Audacity] Ce ne sono svariati, io mi trovo bene con Audacity che, oltre ad essere Open Source, è anche multipiattaforma. Scegliete voi quello che preferite. 
  • Librerie per la manipolazione dei file audio. In particolare mplayer, libmp3lame, ffmpeg, faac e id3v2
  • Un editor di testo. Lo so è una banalità, scegliete voi quale usare (emacs, kate, gedit...)

Prepariamo il file mp3

Una volta finito di installare tutto possiamo cominciare e il nostro primo passo sarà estrarre dal file mp3 che vogliamo trasformare in suoneria un segmento lungo al più 30 secondi. Per fare questo utilizziamo Audacity.

Nonostante la sua grafica non sia esattamente all'ultima moda, il suo utilizzo è estremamente intuitivo. Come prima cosa apriamo il file mp3, se volete potete usare questo come esempio, che ci apparirà come una traccia stereo, come nell'immagine qui sotto.

Selezionate al più 30 secondi della traccia originale
Non sto a spiegarvi nel dettaglio cosa dovete fare, anche perché ognuno ha il suo stile e il suo approccio, fate un po' di prove per vedere quali sono i 30 secondi migliori. Quando avete individuato la sezione che volete tenere, cliccate sul punto di inizio e trascinate fino alla fine; quindi premete ctrl+t per eliminare tutto il resto. Ora vi consiglio di selezionare il primo secondo circa di brano e quindi di applicarvi l'effetto "Fade in", che trovate ovviamente nel menu Effetti. Ripetete l'operazione sugli ultimi due o tre secondi di traccia applicando però l'effetto "Fade out", così facendo eviterete di avere o un inizio o una fine troppo brusca. Se la vostra selezione non è all'inizio del brano, dovrete trascinarla utilizzando il puntatore di traslazione temporale, quello che è fatto come una doppia freccia orizzontale.

Abbiamo quasi finito con Audacity, non ci resta che selezionare tutto il brano e andare a vedere la sua lunghezza totale. Per farlo utilizziamo il pannello in basso, selezioniamo l'opzione lunghezza (length in inglese) e ci assicuriamo che il display sia settato in "hh:mm:ss + milliseconds". Dovremmo trovare un numero inferiore a 30000 (ovvero 30 secondi) che dovete appuntarvi da qualche parte perché ci servirà in seguito.

Prendiamo nota della durata complessiva dello
spezzone. Nel caso dell'immagine qui sopra è
di 29912 ms


Ora non ci resta che salvare, anzi esportare il nostro lavoro. Prima di farlo dobbiamo verificare che Audacity abbia trovato le librerie di codifica mp3; clicchiamo su Modifica -> Preferenze, dalla colonna di sinistra scegliamo librerie. Se ci dice che la libreria Lame 3 non è stata trovata, cliccate con fede su "trova" e vedrete che la troverà all'istante.

Assicuratevi che la libreria LAME sia stata
rilevata correttamente
Procediamo con l'esportazione cliccando su File -> Esporta e scegliamo come formato (MP3) Lame. Se vogliamo possiamo aggiungere dei tag per identificare titolo, autore eccetera. Non preoccupatevi se l'esportazione impiega un po' di tempo!

Convertiamo da mp3 a m4r

Adesso dobbiamo passare da mp3 a m4r. Per farlo potremmo utilizzare direttamente ffmpeg, ma purtroppo questo codec è ancora sperimentale, quindi facciamo un doppio salto: da mp3 a wave e quindi in aac. Sembra molto difficile, ma il seguente script lo eseguira in solo colpo.


#!/bin/bash
# Current version by Hilbert 2011
# Original version by Azakus 2007
# Modified to take input and output file names
# Requires mplayer, faac and id3v2
echo "Dumping mp3 to wav"

mp3file=$1
m4afile=$2

tmpwave="temp.wav"

mplayer -vo null -vc null -ao pcm:fast:file=$tmpwave $mp3file
echo "Converting id3v1 tags to id3v2 for easier transition to m4a tags" 
id3v2 -C $mp3file
#"Coverting id3 tag from mp3 to m4a tag" --requires id3v2 tags.
TITLE="`id3v2 -l $OUT | grep TIT2 | awk '{ORS=" "}  \
       {for (i = 4; i <= NF; i++) print $i}'`"
ARTIST="`id3v2 -l $OUT | grep TPE1 | awk '{ORS=" "} \
       {for (i = 4; i <= NF; i++) print $i}'`"
ALBUM="`id3v2 -l $OUT | grep TALB | awk '{ORS=" "} \
       {for (i = 4; i <= NF; i++) print $i}'`"
TRACK="`id3v2 -l $OUT | grep TRCK | awk '{ORS=" "} \
       {for (i = 6; i <= NF; i++) print $i}'`"
YEAR="`id3v2 -l $OUT | grep TYER | awk '{ORS=" "} \
       {for (i = 3; i <= NF; i++) print $i}'`"

#Converting from wave to aac and adding the tags
faac -b 128 -c 44100 -w --title "$TITLE" --artist "$ARTIST"  \
            --year "$YEAR" --album "$ALBUM" --track "$TRACK" \
            -o $m4afile $tmpwave 

#Remove temporary wave file
rm $tmpwave
echo "AAC transcode complete!"

Lo script potete scaricarlo direttamente da qui. Una volta scaricato aprite un terminale ed eseguite i comandi seguenti:


cd dir_dove_ho_scaricato_mp32aac
chmod +x mp32aac
sudo mv mp32aac /usr/local
mp32aac percorso/file.mp3 percorso/file.m4r

  1. Il primo comando serve per spostarsi nella directory dove avete salvato lo script che avete scaricato da qui
  2. Il secondo rende lo script eseguibile
  3. Il terzo copia lo script in una cartella di sistema contenuta nel path degli eseguibili. Vi verrà chiesta la vostra password.
  4. Il quarto finalmente esegue la conversione. Notate che dovete passare due parametri, ovvero il nome del file mp3 contente la vostra selezione e il nome che volete dare al file di uscita. Notate inoltre che abbiamo già impostato l'estensione a m4r esattamente come voluta dall'iPhone.

Trasferiamo sull'iPhone e modifichiamo il plist

Il prossimo passo è trasferire la nostra suoneria in m4r sull'amato iPhone. Colleghiamolo e sfogliamolo da Nautilus. Entriamo nella directory iTunes_Controls/Ringtones e copiamoci il file che chiameremo suoneria.m4r.

Siamo quasi alla fine, adesso andiamo nella directory iTunes_Controls/iTunes e apriamo in file Ringtones.plist. Questo contiene chiavi xml e se non avete altre suonerie ad hoc, dovrebbe essere più o meno così:


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
 <key>Ringtones</key>
 <dict>
 </dict>
</dict>
</plist>

Quello che dovete fare è editarlo aggiungendo alcune righe di xml subito dopo la linea 6. Il file finale dovrebbe risultare come il seguente:


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Ringtones</key>
    <dict>
        <key>suoneria.m4r</key>
        <dict>
            <key>GUID</key><string>148F52CB21CF093B</string>
            <key>Name</key><string>La mia prima suoneria</string>
            <key>Total Time</key><integer>29912</integer>
        </dict>
    </dict>
</dict>
</plist>


Ovviamente dovete personalizzare il contenuto di queste righe aggiuntive secondo lo schema seguente
  • suoneria.m4r E' il nome del file che avete caricato in iTunes_Controls/Ringtones
  • 148F52CB21CF093B. E' una stringa esadecimale (quindi può contenere i numeri dallo 0 al 9 e le lettere dalla A alla F). Rappresenta un codice di identificazione specifica di quella suoneria, quindi non ci possono essere due suonerie con lo stesso codice. Se quella che state mettendo è la prima suoneria, potete lasciare questo numero, altrimenti cambiatene uno a caso.
  • La mia prima suoneria. E' il nome con cui l'iPhone chiamerà la vostra suoneria ad hoc. Scegliete quello che vi sembra più opportuno.
  • 29912. E' la durata totale in millisecondi del brano. Vi ricordate che vi avevo detto di annotare questo numero prima di uscire da Audacity? Ecco ora è arrivato il momento di usarlo.
Se volete aggiungere un'altra suoneria, copiate queste righe che avete aggiunto sempre subito dopo la riga 6.

Riavviamo l'iPhone e selezioniamo la suoneria

Mi raccomando, questo è l'ultimo passaggio, non dimenticatevi di farlo, altrimenti la vostra non sarà utilizzabile. Dopo averlo riavviato, toccate Impostazioni, quindi Suoni, Suonerie. Vedrete con vostro grande giubilo, la vostra nuova e fiammante suoneria. Capisco che, specialmente quest'ultimo passaggio, potrebbe risultare piuttosto laborioso e macchinoso, ma come dice il proverbio: no pain, no gain!

Ps. Se volete, potete scaricare cliccando qui la suoneria che ho creato mentre stavo preparando questa guida, oppure potete ascoltare l'mp3 da cui l'ho generata.

Chiunque può lasciare commenti su questo blog, ammesso che vengano rispettate due regole fondamentali: la buona educazione e il rispetto per gli altri.

Per commentare potete utilizzare diversi modi di autenticazione, da Google a Facebook e Twitter se non volete farvi un account su Disqus che resta sempre la nostra scelta consigliata.

Potete utilizzare tag HTML <b>, <i> e <a> per mettere in grassetto, in corsivo il testo ed inserire link ipertestuali come spiegato in questo tutorial. Per aggiungere un'immagine potete trascinarla dal vostro pc sopra lo spazio commenti.

A questo indirizzo trovate indicazioni su come ricevere notifiche via email sui nuovi commenti pubblicati.

Related Posts Plugin for WordPress, Blogger...