Facciamo il punto sui di versi metodi di interconnessione digitale?
Quote:
Originariamente inviato da
marcoc1712
Qualcuno ha provato con un PI o ODROID?
sarebbe da provare con un BBB in unione ad una delle interfacce I2S dirette dedicate, con clock esterno:
http://bbb.ieero.com/
https://hifiduino.wordpress.com/2014...ack-for-audio/
(l'interfaccia di TP è attualmente "out of stock"... non vorrei abbiano deciso di abbandonarla).
Ci sono però anche altre soluzioni, tra cui quella di "ACKO":
https://hifiduino.wordpress.com/2015...-developments/
http://www.diyaudio.com/forums/group...ml#post3995427
https://sites.google.com/site/ackodac/home
Facciamo il punto sui di versi metodi di interconnessione digitale?
Abbiamo approciato il punto più volte:
http://www.nexthardware.com/forum/pc...tml#post944308
http://www.nexthardware.com/forum/pc...tml#post968921
e certamente anche in molte altre occasioni, ma - almeno a me - alcuni aspetti rimangono oscuri, mentre a competenza di Paolo/Unixman (e certamente di altri nel forum) potrebbe permetterci di costituire una base dcomune di conoscenze minime che possa consentire non certo di progettare (e nel mio caso nemmeno di assemblare) soluzioni, ma quantomeno di capire meglio i termini della questione.
Grazie a Paolo ed alle sue chiarissime risposte ho finalmente capito qual'è il vero problema che porta a scartare il Rasperry PI (e la maggioranza di altri SOB) e preferire il Beagle Bone Black ad uso audio:
Solo quest'ultima 'ammette' di ricevere il master clock dall'esterno, così da potersi 'sincronizzare' al DAC, in tutti gli altri casi si realizza un collegamento 'Asincrono' e questo - in tempi più o meno lunghi - porta inevitabilmente a problemi di XRUN.
Oltre a questo, come per tutti i collegamenti asincroni (compreso USB/I2S), si ha un cambio - pur minimo - di frequenza e di conseguenza una variazione del 'significato' dei bit (che rimangono gli stessi) per il DAC. Gli stessi bit interpredati a frequenza maggiore producono un pitch più alto e viceversa.
Dopo questo breve riassunto di quanto ho capito fino ad ora, passo a nuove domande sperando che Paolo non perda la pazienza e continui a fornire le risposte:
a. Il canadese dice in effetti la stessa cosa qui, mentre lo schema allegato subodora la presenza di un qualche meccanismo di controllo (asincrono) del flusso, che però temo si limiti a quello che evidenzi tu: in caso di underrun produrrà un buco (o ripete il campione) in caso di overflow scarterà un campione (o più).
Concettualmente è un punto criitico, ma considerando un dirft tra i due clock di qualche decina (diciamo 100, condizione abnorme) di ppm, un buffer di 8 Mbit che inizi a trasmettere alla condizione di 'mezzo pieno' con stream a 44100/16 andrà in condizione di errore dopo circa 135 ORE di funzionamento, a 384/32 8 Ore.
EDIT: qui viene spiegato come viene ripristinato il livello del Fifo sfruttando i periodi di silenzio.
b. Parli di Resampling asincrono, ma in questo caso non mi pare che si abbia un vero e proprio resampling con ricostruzione dello stream di dati, quello che avviene è che cambia il 'pitch', cioè il come la serie di bit (uguale a se stessa) verrà interpretata dal DAC in ragione del nuovo clock, producendo certamente una diversa forma d'onda analogica, ma rimanendo pur sempre 'bit perfect', no?
Ancora una volta non mi pare diverso da quanto avviene con USB, al netto del fatto che lo stream in USB viaggia a velocità talmente superiori da scongiurare l'underrun, mentre il meccanismo di controllo insito in USB consente di 'mettere in pausa' il trasferimento quando il buffer è 'mezzo pieno' per riprenderlo non appena scende sotto tale livello.
c. (ovviamente ha senso solo se ho capito bene A e B) A parità dei cristali, c'è un vantaggio REALE nell'averlo nelle immediate vicinanze del DAC chip e quindi usarlo come master rendendo 'schiavo' il fifo (o l'interfaccia USB)?
d. Se c, avrebbe senso costruire tutto questo 'nel' dac (o almeno sulla stessa scheda) ? Nel qual caso qualsiasi soluzione DIY risulterebbe penalizzata rispetto a network players integrati come lo SB? In che misura?
Grazie.