Campionatura di un segnale audio

Salve a tutti,

È programmabile un modulo Arduino per ricevere un segnale audio e campionarlo ad una frequenza ad esempio di 96khz e ad una ampiezza di 36 bit per registrarlo su di una memoria esterna e rileggerlo a richiesta?

non ho imparato a usare il forum. Mi spiace se faccio errori

Buonasera e benvenuto, :slight_smile:
essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con molta attenzione tutto il succitato REGOLAMENTO ... Grazie. :slight_smile:

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposito thread, nel rispetto del suddetto regolamento nessuno ti risponderà, quindi ti consiglio di farla al più presto. :wink:

non avevo capito che dovevo rispondere ad un tread anziché crearne uno nuovo, ora ho risposto anche se non ho molto da dire, non ho poi questa grande conoscienza di elettronica o programmazione

Puoi anche dimenticarti una cosa del genere con i classici Arduino AVR (Uno, mega, leonardo, ...) e la vedo difficile anche con i nuovi MKR che usano il SAMD21 con clock a 48MHz con i quali comunque NON ti avvicini nemmeno ai 96KHz e sicuramente NON con 36 bit di risoluzione.

Forse e ribadisco forse, puoi provare a guardare la Teensy 4.0 o 4.1 (cambia solo il form factor, ma la MCU ed il clock sono gli stessi) che sono oggetti il cui clock è di base 600MHz (ma può essere portato, raffreddando bene la MCU, anche al 1GHz) e che sono dotate di un'ottima libreria per la manipolazione audio.

Guglielmo

Non so bene cosa sia questa libreria per la manipolazione audio, comunque mi sembra di capire che avere risultati di un certo tipo non si potrebbe..

Ma non è possibile utilizzare un modulo Arduino per programmare o pilotare chip di altra natura come quelli usati nei computer per esempio?

Mi chiedo che senso ha campionare un segnale monofonico a 96Khz@36 bit con un sistema fai-da-te usando schede Arduino like (36 ???* ti sei fatto i conti di quanti Mbyte di dati al secondo dovresti "muovere" tra ADC e MCU?)
Per un buon sistema ADC è già difficile realizzare un PCB fatto come si deve usando sistemi professionali e componenti di qualità, figuriamoci con le break-out board e i cavetti dupont svolazzanti.

Con tutto il rumore di fondo che avresti, se arrivi ad apprezzare la differenza tra 10 e 12 bit secondo me è già troppo.

Mi unisco a cotestatnt per dire in sostanza che la risposta è "NO".
Primo, Arduino è un piccolo microcontrollore, non ha capacità di elaborazione sufficienti.
Secondo, non so se hai "sparato" dei numeri a caso o se sia realmente la tua esigenza, i CD audio lavorano a 44.1 kHz a 16 bit, e la qualità è più che accettabile, tu parli di HDA (High Definition Audio) che non è supportato neanche dalle migliori schede audio per PC (tranne solo alcune, specifiche, per uso professionale) figuriamoci su un piccolo microcontrollore da pochi Euro.
Terzo, anche se fatta "solo" a 32 bit di risoluzione, ossia 4 byte, a 96kHz sono un flusso di 384 k byte al secondo, cosa che richiede un ADC con quella risoluzione e frequenza ed un processore in grado di spostare questo flusso continuo di dati, che poi forse vorresti pure codificarlo magari in mp3, cosa che richede ulteriore potenza di calcolo in tempo reale.
Quarto, in fondo la risposta alla domanda è "NO" soprattutto perché in sostanza stai chiedendo se con un'Ape Piaggio si possa trainare una betoniera carica di cemento. :wink:

Insomma ho capito in sostanza non è sufficientemente potente, diciamo che può essere ancora utile fino a 44.1 khz e 24 bit in formato wav (non compresso) ma mi sembra di capire che neanche si avvicina come potenza.

Quello che non ho capito è se il rumore di fondo a cui vi riferite è dovuto alla schermatura dei cavi e del modulo o agli errori del chip che non c'è la fa

Arduino ha un ADC interno che però lavora a 10 bit (infatti analogRead va da 0 a 1023), e non può campionare a più di 10 kHz per via del tempo necessario alla conversione (100 microsecondi).
Quindi hai bisogno di un integrato ADC che faccia lui la conversione da analogico a digitale e magari ti fornisca già i dati in PCM (da salvare su file wav quindi), ma non ne conosco con quelle caratteristiche, superiori anche ai CD audio, anche perché non li ho mai usati.

Ad esempio un convertitore basato su MCP3201 che lavora su SPI (I2C è troppo lento) può probabilmente supportare quella frequenza di campionamento (credo possa arrivare anche fino a 100) ma ha una risoluzione di "soli" 12 bit. In ogni caso poi devi anche scrivere su scheda SD, cosa che porta via del tempo che devi mettere in conto per la frequenza finale effettiva di campionamento.

Ma in sostanza, qual è la tua esigenza esattamente? Dato che ci sono in commercio schede audio o anche registratori audio che ti permettono di acquisire segnali con varie modalità e magari registrano direttamente su scheda SD, perché cercare di farlo con Arduino? Ripeto, se devi trainare un carico pesante non usi un'Ape, usi un camion. :wink:

Come ho già indicato, con la Teensy 4.x e l'ottima libreria per la gestione dell'audio si arriva ad acquisire con qualità CD (16 bits, 44.1 kHz) ... ma non certo a 96KHz e 36 bit ... :crazy_face: :crazy_face: :crazy_face:

Guglielmo

si appunto la mia esigenza corrisponde a quella dei registratori in commercio ma in essi non ritrovo per ora la semplicità e la versatilità di un semplice mangisnastri a otto piste il che rende impossibile progettare un banco da lavoro adatto alle mie esigenze.

A me basterebbero alcuni canali con le funzioni base ma queste sono inaccessibili o vincolate a architetture eccessive

Mi chiedo, mi scuso se non è strettamente correlato all'argomento Arduino, è possibile programmare un processore per PC per svolgere questi compiti?

Se l'esigenza è quella, parliamo di cose come i classici Tascam, che una volta erano a cassetta poi a MiniDisc, ed ormai con il ben più semplice ed economico supporto SD.
Per cui temo che metterti a progettare, costruire e mettere a punto con Arduino un sistema per registrare 8 tracce sia non solo al di sopra delle possibilità tecniche tue e di Arduino, ma anche più costoso di cose come questa o questa, giusto per i primi risultati che ho trovato, pur non conoscendo comunque esattamente la tua esigenza (registrazione live? In studio? Cosa?).

Ma in ogni caso temo che l'argomento ormai prescinda da Arduino...

poche entrate e poche uscite. Guarda che 400 euro nel mondo della registrazione in studio sono bazzecole, appena cerchi un risultato superiore a quello amatoriale devi andare su banchi dai 20 ai 40 mila euro e ti parlo di un miglioramento minimo.

Ok, ormai mi sembra chiaro che con Arduino NON si possa fare e che, quindi ... il thread non ha più senso. Chiudo qui.

Guglielmo