Pages: [1] 2   Go Down
Author Topic: Audio in streaming  (Read 1380 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 28
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salve ragazzi io avrei la necessita di ascoltare da remoto quindi magari via adsl una sorgente audio. Ovviamente la sorgente audio la vorrei collegare con arduino che con l'ethernet shield va in rete. Dall'altra parte non so ancora cosa utilizare, magari semplicemente un browser.
Qualcuno può darmi qualche idea?
Logged

Fidenza, Parma
Offline Offline
God Member
*****
Karma: 9
Posts: 783
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non penso che l'arduino abbia abbastanza ram (2kb) e processore per fare quello che chiedi!!
Fa fatica a fornire le pagine HTML!!
Logged

ArduMAP: Mappa degli utenti che utilizzano Arduino.
http://www.guglio.net/ArduMAP

0
Online Online
Shannon Member
****
Karma: 130
Posts: 10466
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

l'audio è normalmente campionato a 44100Hz pari a 44.1KHz, pari a 0.0441MHz quindi arduino (che lavora a 16MHz) dovrebbe farcela. certo, mancano i tempi di fetch del dato, inserimento nel pacchetto e invio, ma credo che ce la faccia alla grande per un client solo, soprattutto se usa il wiznet che si occupa del (pesantissimo) protocollo ISO/OSI.
per un server multiclient dovrebbe farcela usando uno streaming multicast UDP.

Allora, makky, quali sono le tue competenze informatiche? sai programmare? hai mai programmato giocando con l'audio? e con la rete? sai la differenza tra un firewall e una nat? insomma, sicuro di aver le competenze per portare avanti un progetto del genere, o è meglio se prima aggiusti la mira?

insomma io partirei così: lettura di un file TXT da microSD
lettura di un mp3 da microSD
stream di un dato via TCP e programma a PC che lo salvi su disco (magari in java così lo puoi anche inserire nelle pagine html come applet)
stream dell'mp3 e uso del precedente programma, giusto per controllare che l'mp3 venga inviato e ricevuto correttamente
modifica del programma lato PC per riprodurre lo stream.

Molto programmi come VLC, media player, etc... supportano vari tipi di streaming, però sono protocolli che dovresti implementare seguendo le RFC, il che complica un poco la storia perchè dubito che siano stati pensati per risparmiare risorse lato cpu/memoria, ma solo a lato network

l'UDP è migliore per queste cose del TCP, ma devi lottare con il problema che non c'è sicurezza che i dati arrrivino, o siano corretti, o i provider bloccano i multicast.
Devi fare anche i conti con MTU, banda disponibile (in upload a lato server, il dowload a lato client di solito è molto alto).
Se ti tocca fare un sistema multiclient senza sfruttare il multicast, allora forse ti conviene usare 3 arduino: uno si occupa del layer ISO/OSI, invia le richieste di connessione al secondo arduino, che le gestisce, mentre il trzo arduino si occupa solo del recupero del file mp3 e della sua pacchetizzazione.
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Monselice PD Italy
Offline Offline
Faraday Member
**
Karma: 26
Posts: 5496
фон Крыса
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

L'argomento era stato affrontato qualche topic fa e dopo varie valutazioni tutti d'accordo abbiamo lasciato "morire" la cosa non perchè a livello matematico non ce la faccia ma perchè il convertitore A/D contenuto nell'ATmega non ce la fà..... essendo troppo lento .....
Logged

Se corri veloce come un fulmine, ti schianterai come un tuono.

0
Online Online
Shannon Member
****
Karma: 130
Posts: 10466
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ratto non ti seguo. Stai tirando in mezzo l'ADC, che assolutamente non serve per fare streaming di un mp3 salvato su di una smart card.
Non puoi campionare musica, o riprodurla, (forse i MIDI) ma stiamo parlando di altre cose.
« Last Edit: June 26, 2011, 01:45:08 pm by lesto » Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Monselice PD Italy
Offline Offline
Faraday Member
**
Karma: 26
Posts: 5496
фон Крыса
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ratto non ti seguo. Stai tirando in mezzo l'ADC, che assolutamente non serve per fare streaming di un mp3 salvato su di una smart card.
Non puoi campionare musica, o riprodurla, (forse i MIDI) ma stiamo parlando di altre cose.
Ops... perdonatemi...  mi devo essere confuso io con qulache vecchio topic.... sorry.... smiley-red
Logged

Se corri veloce come un fulmine, ti schianterai come un tuono.

Fidenza, Parma
Offline Offline
God Member
*****
Karma: 9
Posts: 783
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Ovviamente la sorgente audio la vorrei collegare con arduino
Io ho inteso la fonte come un microfono...
Magari è come dice @lesto ed intende una SD!
Logged

ArduMAP: Mappa degli utenti che utilizzano Arduino.
http://www.guglio.net/ArduMAP

0
Online Online
Shannon Member
****
Karma: 130
Posts: 10466
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

comunque anche con un microfono (e qualche componente hw in più come un amplificatore) si può fare..
http://lab.robomotic.com/index.php?option=com_content&view=article&id=52:audio-beacon-part-1&catid=37:beginners&Itemid=28

questi hanno fatto esattamente ciò che ti serve fino al punto 3 del mio primo post però con stream attraverso la seriale
carto, campiona a 8KHz, ma è la stessa frequenza dei telefoni di casa... http://it.wikipedia.org/wiki/Frequenza_di_campionamento
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 258
Posts: 21502
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Ovviamente la sorgente audio la vorrei collegare con arduino
Io ho inteso la fonte come un microfono...
Magari è come dice @lesto ed intende una SD!

Comunque anch io capirei some sorgente un microfono o un altra fonte analogica.

Vediamo cosa dice makky

Ciao Uwe
« Last Edit: June 27, 2011, 11:00:21 am by uwefed » Logged

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 125
Posts: 9334
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Anche parlando di uno strem audio basato su un file mp3 letto da SD avrei qualche dubbio sul fatto che Arduino sia in grado di gestire il flusso dati in real time.
Non scordiamoci che la SD e l'Ethernet shield condividono il bus SPI e che sia leggere la SD, blocchi di 512 byte per volta, che inviare i dati su Ethernet, con relativa gestione dello stream non sono operazioni leggere dal punto di vista elaborazione.
Logged

0
Online Online
Shannon Member
****
Karma: 130
Posts: 10466
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

non sapevo che l'ethernet usava la SPI... Non ho mai usato la SPI, può gestire contemporaneamente 2 host? io sapevo che lòa SD la puoi leggere in i2c..
con 1,5MB al minuto (media degli mp3 che ho) son ~26300 Byte al secondo... ovvero 50 letture al secondo..
Quanto è la velocità in byte di i2c e SPI?
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Monselice PD Italy
Offline Offline
Faraday Member
**
Karma: 26
Posts: 5496
фон Крыса
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ratto non ti seguo. Stai tirando in mezzo l'ADC, che assolutamente non serve per fare streaming di un mp3 salvato su di una smart card.
Non puoi campionare musica, o riprodurla, (forse i MIDI) ma stiamo parlando di altre cose.
Ops... perdonatemi...  mi devo essere confuso io con qulache vecchio topic.... sorry.... smiley-red
Beh se non altro non solo io avevo capito che si voleva usare un microfono.....
Logged

Se corri veloce come un fulmine, ti schianterai come un tuono.

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 125
Posts: 9334
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

non sapevo che l'ethernet usava la SPI... Non ho mai usato la SPI, può gestire contemporaneamente 2 host? io sapevo che lòa SD la puoi leggere in i2c..

La SPI è un bus multidrop, cioè più device possono coesistere in parallelo, però richiede un pin aggiuntivo di controllo, il CS, per ogni dispositivo collegato al master.
Le SD usano la SPI.

Quote
con 1,5MB al minuto (media degli mp3 che ho) son ~26300 Byte al secondo... ovvero 50 letture al secondo..
Quanto è la velocità in byte di i2c e SPI?

I2C su Arduino al massimo 400 kbps, la SPI non credo arrivi olte 2 Mbps.
Però quello che conta non è tanto la velocità di trasferimento dei dati quanto tutti i passaggi intermedi e il fatto che prima devi leggere il blocco dati, 512 byte per volta, dalla SD e poi inviarlo alla Ethernet shield, gestendo il relativo protocollo, il tutto più velocemente del tempo necessario per riprodurre i dati, altrimenti lo stream audio comincia ad andare a singhiozzo.
Se poi ci mettiamo di mezzo pure wiring con tutti i colli di bottiglia che, per ovvi motivi, crea ecco che non riesci ad inviare in modo continuo il flusso dati.
Da varie prove che ho fatto con la ethernet shield in modalità server ho visto che si fa fatica ad aggiornare più di poche volte al secondo una semplicissima pagina web, figuriamoci ad inviare oltre 26 kBytes al secondo costantemente usando un protocollo dedicato per lo streaming che non mi pare sia gestito direttamente dal WIZ.

Logged

0
Online Online
Shannon Member
****
Karma: 130
Posts: 10466
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

il wix supporterà l'upd, credo, che va più che bene. Poi come ho detto prima per una cosa professionale 3 atmega, unio per gestire i flussi, uno per gestire le connessioni(non serve con multicast) e uno per leggere la SD o campionare il microfono

edit se l'i2c va a 50kB/s forze è un poco al limite. La SPI non dovrebbe aver problemi, capisco che il problema sia la richiesta dei dati, ma il fatto che la SPI sia gestita via hardware dovrebbe semplificare le cose no? oppure la SPI è una virtualizzazione di Wiring/arduino?

ps. ogni aggiornamento di pagina HTML è una creazione di connesione, distruzione della stessa, e invio di molti pacchetti che probabilmente non raggiungono nemmeno metà MTU... cosa che invece nello streaming si tende a riempire, creando così un buffer.
« Last Edit: June 27, 2011, 11:00:34 am by lesto » Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Offline Offline
Newbie
*
Karma: 0
Posts: 28
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ragazzi scusatemi se rispondo solo ora, ma sono stato fuori tutta la giornata. Innanzitutto grazie mille per il vostro interessamento.
Per prima cosa vorrei precisare forse perchè non l'ho spiegato esplicitamente che a me interessa ascoltare in streaming una sorgente audio collegata magari ad arduino quindi possiamo intenderlo come microfono che poi potrebbe essere un ingresso RCA. Il campionamento a me va bene anche a 8Khz e mi va bene anche il collegamento con un unico client. Io sinceramente pensavo di fare una shield con l'hardware appositamente studiato che fa tutto il lavoro di campionamento e quant'altro da usare ovviamente con un arduino e una shield ethernet.
Lesto ho buone basi per cominciare differenze tra nat e firewall le conosco, come conosco C e conosco l'elettronica.
Arduino lo conosco da poco, da qualche mese giusto il tempo di provarlo un po' con qualche applicazione abbastanza semplice. Prima programmavo le FoxBoard.
Spero di farcela a farlo con Arduino (ovviamente anche con il vostro aiuto) perchè mi piace molto come scheda.
Grazie
Logged

Pages: [1] 2   Go Up
Jump to: