[EN/IT] DAAP! DA..what?? / DAAP! DA..che cosa??

[English version]

1. Introduction
As you noticed if you read the other posts of this blog, I’m very involved in topics like: music sharing/streaming on LANs/WLANs, centralized media storage, home entertainment setups, server/client architectures applied to media contents distribution inside a house or other kinds of buildings, “silent festival” experiments (where every people who takes part in listen to music via a pair of wi-fi headphone provided by festival managment) etc..
One of the most beautiful thing about nowadays technology is that with relatively few money you can set up in your house or whatever else a nice wi-fi/cabled media contents (music, movies, podcasts, photos etc) management and distribution system, where, for example, an old recycled Pentium III-based computer with some big hard disks attached to it acts like a “(media) server”, while all the others computers of the house, both desktops and laptops, act like “clients”. Imagine to own 2 Terabytes of music, nicely archived on a 4x 500GB (or 2x 1TB) RAID system, available for listening to your laptop via wi-fi -without- having any single byte wasted for mp3s on its tiny internal 2.5′ drive =) Everybody in your house, including your nerdy grannie, could start listening to months of non-stop music in some seconds and with a minimal effort.

Doing some speedy conversions:

2TB = 2000GB = 2.000.000MB; 4 minutes = 4MB (128kbits mp3); 60 min = 1 h -> 24 h = 1 day; 30 days = 1 month;

2.000.000MB = 500.000 minutes of music in mp3 format = 8333 ca. hours = 347 ca. days = 11 ca. months!!

Yeah, you got it! 2TB of music is like 11 months of non-stop music! That should be enough for your daily music needs, doesn’t it? =) But this is not the point of this article.

2. iTunes and the DAAP protocol: benefits and problems
What I’d like to point your attention to is DAAP, formally known as
“Digital Audio Access Protocol”. If you are a regular iTunes user, you surely noticed its “Shared libraries” feature, that permits you to share your music library into your LAN (Local Area Network) and browse your buddies libraries as well in a breeze. What i really like about this feature is that:
a) it works:
b) it’s easy: you need just to activate the appropriate option inside iTunes Preferences for every client and you have done: all the copies of iTunes in the same LAN will start seeing them each others automagically and you will be able to listen to your buddies music, sort it by artist/album/genre etc.

Obviously, your LAN firewall, if any, has to be set to allow iTunes to do this =)
What’s DAAP then? DAAP is what makes iTunes sharing possible so easily. Let’s go a bit technical:

“DAAP is the iTunes Digital Audio Access Protocol, and is essentially an HTTP-like mechanism to serve music files over TCP/IP on TCP port 3689. DAAP servers usually advertise themselves using Rendezvous [..]” (from “Tao of Mac”, see Webography)
“A DAAP server is a specialized HTTP server, which performs two functions. It sends a list of songs and it streams requested songs to clients. [..] Early versions of iTunes allowed users to connect to shares across the Internet, however, in recent versions only computers on the same subnet can share music [..]. It is widely believed that Apple made this move in response to pressure from the record labels. More recent versions of iTunes also limit the number of clients to 5 unique IP addresses within a 24 hour period.”
(from “Wikipedia”, see Webography)

The first problem with DAAP, or at least with the original Apple version of it, is the 5 unique IP addresses thing. In fact, it means that If a sixth buddy comes to you house and wants to join your music-sharing LAN, he will not able to do so because of that limit. That’s why iTunes sharing is intended for personal needs only, and for that it works great, because usually in your house there aren’t more than 4-5 persons with a personal computer. In the software that uses a reverse-engineered version of DAAP (Firefly Media Server, Banshee, Tangerine etc) this limit seems to not exist (I didn’t test it myself, because I just own 3 computers).

The second problem is related to iTunes 7.0+. As reported by Wikipedia:

“With iTunes 7.0, a new ‘Client-DAAP-Validation’ header hash is needed when connecting to an iTunes 7.0 server. This does not affect 3rd party DAAP servers, but all current DAAP clients (including official iTunes before iTunes 7.0) will fail to connect to an iTunes 7.0 server, receiving a ‘403 Forbidden’ HTTP error”.

This means that if you runs iTunes 7.0+ but your buddies are stuck with iTunes 6.0 (or earlier) or they prefere a thirdy-party DAAP-compatible player (like the good Banshee for Linux), you will be able to stream music from their libraries but they will not be able to listen from your computer, because of the different autenthication method. This problem can be partially solved by upgrading your copy of iTunes to the latest available: version 7.0 brings the nice Coverflow feature in it and supports multiple libraries, so the upgrade is well worth i think.
But If your buddies doesn’t run Windows or Mac operating systems or they don’t want/can use iTunes or they can’t upgrade (iTunes 7.0 eats a bit more of resources compared to iTunes 6.0), they are out of the game.
If the music is the centralized on an unique machine (like the 2TB beast I imagined in the first paragraph), the problem can be solved in a breeze: just share music using iTunes 6.0 (or earlier) or a thirdy-party DAAP-server, like the wonderful Firefly Media Server (open source and multi-platform).

3. My experience
I use iTunes since version 4.7 or 4.9 and I always appreciated its sharing abilities. As every Apple product or technology, DAAP works always, everywhere and you don’t need to read a 128+ manual just to configure it.
When I hadn’t a router, I used DAAP many times on ad-hoc wlans (an “ad-hoc wlan” is a wifi network between 2+ computers without using an access point or a router) and via cross-patch cables. All always worked greatly. The streaming quality is amazing and also on a modest 802.11b wlan audio never lags.
Recently, I got a Linksys WRT54GL router and I’m testing the features of Firefly Media Server in a multiplatform enviroment (Mac/Windows/Linux). I put some music into my desktop computer (an old but glorious AMD Athlon 1400 with 256MB of RAM, running Windows XP Professional SP2) and I installed Firefly on it. Then I connected it to my router via Ethernet and I set up a WLAN. Both from my Apple iBook G4 laptop (running Mac OS X 10.4.9 and iTunes 7.2) and from my Toshiba Satellite M30 (running Windows XP Home SP2 and iTunes 7.1) I have had any problem into streaming music from Firefly. All works great and sounds good. The only problem I had is that iTunes for Mac doesn’t show me covers of streamed songs, while iTunes for Windows do. I have to investigate more about this problem. When I will fix some Mandriva problems, I will test Banshee with this setup as well and eventually I will write some lines about the experience =)

[Versione Italiana]

1. Introduzione
Come avrete notato leggendo gli altri post di questo blog, mi stanno particolarmente a cuore tematiche quali: la condivisione e lo streaming di musica all’interno di LAN e WLAN, l’archiviazione centralizzata di contenuti multimediali, sistemi di intrattenimento casalingo, architetture server/client applicate alla distribuzione di contenuti multimediali all’interno di una casa o di altre tipologie di edifici, esperimenti di “festival silenziosi” (festival in cui ogni partecipante ascolta la musica tramite un paio di cuffie wi-fi) etc..
Una delle caratteristiche più belle delle tecnologie odierne è che con una spesa relativamente contenuta tu possa creare in casa tua o in qualsiasi altro posto un bel sistemino wireless e/o cablato di gestione e distribuzione di contenuti multimediali (musica, filmati, podcast, foto etc), in cui, ad esempio, un vecchio computer con processore Pentium III con qualche capiente hard disk all’interno si comporti da “(media) server” mentre tutti gli altri computer di casa, sia desktop che portatili, si comportino da client. Immaginate di avere 2 terabyte di musica, simpaticamente archiviata su un sistema RAID di 4 hard disk da 500GB (o 2 da 1TB), che possa essere disponibile per l’ascolto dal tuo portatile via wireless -senza- sprecare un singolo byte in file mp3 sul suo piccolo hard disk da 2.5 pollici =)
Chiunque in casa tua, inclusa la tua nonnina informatica, potrebbe iniziare ad ascoltare mesi di musica non-stop in pochi secondi e con uno sforzo minimo. Facendo due conversioni veloci:

2TB = 2000GB = 2.000.000MB; 4 minuti = 4MB (128kbits mp3); 60 min = 1 h -> 24 h = 1 giorno; 30 giorni = 1 mese;

2.000.000MB = 500.000 minuti di musica in formato mp3 = 8333 ore circa = 347 giorni circa = 11 mesi circa!!

Sì, hai capito bene! 2TB di musica sono tipo 11 mesi di musica non-stop! Dovrebbero essere abbastanza per il tuo bisogno giornaliero di musica, no? =) Ma questo non è l’argomento di questo articolo.

2. iTunes e il protocollo DAAP: vantaggi e svantaggi
Ciò su cui gradirei focalizzare la vostra attenzione è il protocollo DAAP, meglio conosciuto come “Protocollo di Accesso all’Audio Digitale“. Se siete utenti abituali di iTunes, avrete sicuramente notato la sua funzione “Condivisione Libreria”, che vi permette di mettere in condivisione la vostra libreria musicale nella vostra LAN (Local Area Network) e di navigare all’interno delle librerie dei vostri amici in un lampo. Ciò che realmente mi piace di questa funzione è che:
a) funziona!;
b) è semplice: dovete solo attivare l’opzione appropriata all’interno delle Preferenze di iTunes per ogni client e avete finito: tutte le copie di iTunes all’interno della stessa LAN inizieranno a vedersi a vicenda automaticamente and sarete in grado di ascoltare la musica dei vostri amici, ordinarla per artista/album/genere etc..

Ovviamente, il firewall della tua LAN, se presente, deve essere settato in modo da permette ad iTunes di fare ciò =)
Cos’è il DAAP quindi? Il protocollo DAAP è ciò che rende la condivisione tramite iTunes così semplice. Andiamo sul tecnico:

“Il DAAP è il “Protocollo di Accesso all’Audio Digitale di iTunes” ed è essenzialmente un meccanismo simile al protocollo HTTP ideato per distribuire dei files attraverso TCP/IP sulla porta TCP 3689. I server DAAP di solito comunicano tra loro tramite la tecnologia “Rendezvous” [..]” (tratto dal sito “Tao of Mac”, vedi Webbografia)

“Un server DAAP è un server HTTP specializzato, che svolge due funzioni. Invia una lista di canzoni ed effettua lo streaming delle canzoni richieste ai client. [..] Le prime versioni di iTunes permettevano agli utenti ti connettersi a condivisioni disponibili su Internet, ma putroppo, nelle versioni recenti, solo i computer all’interno della stessa subnet possono condividere musica [..]. E’ plausibile credere che Apple abbia fatto questa mossa in risposta alle pressioni delle case discografiche. Le versioni più recenti di iTunes, inoltre, limitano il numero di clients a 5 indirizzi IP unici in un periodo di 24 ore.” (tratto dal sito “Wikipedia”, vedi Webbografia)

Il primo problema con il protocollo DAAP, o perlomeno con la sua versione originale sviluppata da Apple, è il fatto dei 5 indirizzi IP unici. Infatti, ciò significa che se un sesto amico viene a casa vostra e vuole partecipare alla vostra LAN di musica condivisa, non potrà farlo a causa di tale limite.
Questo perchè la condivisione tramite iTunes è intesa solo per uso personale, e per tale scopo funziona alla grande, perchè di solito in casa vostra non ci sono più di 4-5 persone con un computer personale. Nei programmi che fanno uso di una versione “reverse-engineered” del protocollo DAAP (tipo Firefly Media Server, Banshee, Tangerine etc) questo limite sembra non esistere (non ho testato di persona perchè posseggo solo 3 computer).

Il secondo problema riguarda le versioni 7.0 o successive di iTunes. Come riportato da Wikipedia:

“Con il rilascio di iTunes 7.0, un nuovo tipo di validazione lato-client è necessaria per connettersi ad un server iTunes 7.0. Ciò non riguarda i server DAAP di terze parti, ma tutti i client DAAP attuali (incluse le versioni precedenti di iTunes) falliranno nel connettersi ad un server iTunes 7.0, ricevendo un errore 403”.

Questo significa che se usi iTunes 7.0+ ma i tuoi amici sono fermi ad iTunes 6.0 (o versioni precedenti) o preferiscono un lettore DAAP-compatibile di terze parti (come il buon Banshee per Linux), tu sarai in grado di “streammare” la musica dalle loro librerie, ma loro non saranno capaci di fare lo stesso, per via del metodo di autenticazione differente. Questo problema può essere parzialmente risolto aggiornando la tua copia di iTunes all’ultima versiona disponibile: la versione 7.0 sfoggia la graziosa funzione Coverflow e supporta le librerie multiple, quindi penso che valga la pena aggiornarsi).
Ma se i tuoi amici non sono nè utenti Windows nè utenti Mac, o se non vogliono/possono usare iTunes o se non possono aggiornarlo (iTunes 7.0 richiede più risorse rispetto ad iTunes 6.0), sono fuori gioco.
Se la musica è centralizzata su un unica macchina (come la “bestia” da 2 TB che citavo prima), il problema può essere risolto in un attimo: basta condividere la musica usando iTunes 6.0 (o precedenti) o un server DAAP di terze parti, come il magnifico Firefly Media Server (open source e multi-piattaforma).

3. La mia esperienza
Uso iTunes dalla versione 4.7 o 4.9 e ho sempre apprezzato le sue capacità di condivisione. Come ogni prodotto o tecnologia Apple, il protocollo DAAP funziona sempre, ovunque e non hai bisogno di un manuale di 128+ pagine solo per configurarlo. Quando non avevo un router, ho usato il protocollo DAAP molte volte in reti wireless ad-hoc (cioè tra 2+ computer senza router o access-point) e tramite cavi cross. Tutto ha sempre funzionato alla grande.
La qualità dello streaming è superiore e anche se connessi tramite una modesta wlan 802.11b l’audio non salta mai.
Di recente, ho ricevuto un router Linksys WRT54GL e sto testando le caratteristiche del Firefly Media Server in un ambiente multipiattaforma (Mac/Windows/Linux). Ho messo un po’ di musica nel mio computer desktop (un vecchio ma glorioso AMD Athlon 1400 con 256MB di RAM, su cui gira Windows XP Professional SP2) e c’ho istallato Firefly. Poi, l’ho connesso al mio router via Ethernet e ho settato una WLAN. Sia dal mio Apple iBook G4 (su cui gira Mac OS X 10.4.9 e iTunes 7.2) che dal mio Toshiba Satellite M30 (su cui gira Windows XP Home SP2 e iTunes 7.1) non ho avuto nessuno problema nel streammare la musica da Firefly. Tutto funziona e suona alla grande. L’unico problema che ho avuto è che iTunes per Mac non mostra le copertine delle canzoni streammate, mentre iTunes per Windows lo fa. Devo investigare con più attenzione su questo problema. Quando sistemerò alcuni problemi che sto avendo con Mandriva, testerò Banshee con questo setup e scriverò eventualmente qualche linea a proposito =)ù


“DAAP on Wikipedia”: http://en.wikipedia.org/wiki/Digital_Audio_Access_Protocol
“List of Software using DAAP”: http://en.wikipedia.org/wiki/List_of_software_using_Digital_Audio_Access_Protocol
“DAAP”: http://the.taoofmac.com/space/DAAP
“DAAP Protocol documentation v0.2”: http://tapjam.net/daap/
“OpenDAAP”: http://www.opendaap.org/
“Network your music with DAAP for Linux”: http://www.linux.com/article.pl?sid=06/03/28/1738207
“Wifi Tunes for Pocket PC”: http://www.aspecto-software.com/rw/applications/wifitunes/
“Licenses, Daap and md5”: http://jerakeen.org/blog/2007/03/licenses-daap-and-md5/
“MyTunes and OurTunes software page”: http://www.saveourtunes.com
“Hacking the Linksys NSLU2: Adding an iTunes server”: http://www.smallnetbuilder.com/content/view/24299/77/
“Firefly Media Server for Linux and Windows”: http://www.fireflymediaserver.org/
“Firefly Media Server for Mac”: http://www.rokulabs.com/firefly

3 Responses to [EN/IT] DAAP! DA..what?? / DAAP! DA..che cosa??

  1. […] Questo prodotto sfrutta il protocollo DAAP, costruito su HTTP, che non è rilasciato liberamente ma è stato ottenuto facilmente per reverse-engineering (per altre info vi rimando al blog di eldino). […]

  2. […] musica copyleft da jamendo, il supporto al servizio DAAP [per ulteriori informazioni chiedere a eldino – per approfondimenti qui ] e la meglio integrazione di alcuni servizi web2.0 come Last.fm, mentre […]

  3. […] station on which you can save your music and from which you can stream your tunes using the great DAAP Protocol to your LAN-attached and DAAP-friendly devices (such as your computer, your wife’s computer, […]


Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: