|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Nov 2007
Messaggi: 11
|
[C++] DIALOGARE CON SCHEDA AUDIO RME
Salve a tutti,
sono nuovo di questo forum, e scrivo per chiedere lumi...!!! Dovrei scrivere per ambiti universitari codice in [c++] che mi permetta di leggere a basso livello da una scheda di acquisizione Audio [RME] o meglio, dovrei dialogare con essa in ambiente Windows XP. Poichè non so da dove iniziare chiedo se qualcuno mi possa indicare la strada da percorrere (Tipo: Librerie C++ da cercare, codice simile già implementato, esempi, ecc..). Grazie. |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Io per l'audio ho sempre usato RtAudio |
|
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: Nov 2007
Messaggi: 11
|
A basso livello intendo che dovrei leggere lo stream in uscita di questa scheda (che magari sarà un formato tipo AES3) o cmq magari inizio ad interagire poi vediamo, ho letto pure che ci sono le (MSC) che dovrebbero supplire alle API ma, mai usate! Tu cosa mi consigli? Comunque grazie per la tua risposta immediata.
|
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Sinceramente non mi sono mai spinto così in basso, anche perchè quello è trattato dall'hardware e non so nemmeno se sia disponibile a livello software, oltretutto dovresti realizzare un parser del protocollo calcolare se il CRC è corretto ecc... A me sono sempre bastati i campioni PCM in esso contenuti. |
|
![]() |
![]() |
![]() |
#5 |
Junior Member
Iscritto dal: Nov 2007
Messaggi: 11
|
INFATTI CREDO PROPRIO CHE SI DEBBA REALIZZARE UN PARSER, SAI DOVE POSSO TROVARE QUALCOSA DI REALIZZATO? O CMQ DGESTIONE AES3 E C++?
GRAZIE PER LE TUE RISPOSTE. |
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Conoscendo il protocollo non è difficile tirare fuori un parser, ma più che altro sarebbe da capire come far arrivare l'AES fino al software, anche perchè l'AES transita su un segnale a 6MHz, sperando bene che l'hardware ti tolga la codifica biphase mark devi sempre lavorare con un segnale a 3MHz per un contenuto a 44100Hz. Ultima modifica di tomminno : 09-11-2007 alle 12:47. |
|
![]() |
![]() |
![]() |
#7 | |
Junior Member
Iscritto dal: Nov 2007
Messaggi: 11
|
Quote:
IN USCITA ALLA SCHEDA AUDIO HO I DATI IN FORMATO AES3 (CHE SE NN SBAGLIO è QUELLO COMUNE DEI LETTORI CD) QUINDI è QUEL TIPO DI FORMATO CHE DEVO POI MANIPOLARE.INNANZI TUTTO L'INIZIO è INTERFACCIARMI CON LA SCHEDA (E CREDO CHE CON LE API CHE MI HAI SUGG DOVREI RIUSCIRE) POI VEDIAMO COME FARE. GRAZIE! |
|
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
|
|
![]() |
![]() |
![]() |
#9 |
Junior Member
Iscritto dal: Nov 2007
Messaggi: 11
|
|
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Da lì dove?
I campioni PCM sono il contenuto musicale, organizzato in maniera interlacciata prima il canale sinistro e poi il destro esattamente come arrivano dall'esterno. La libreria RtAudio, così come tutte le altre, ti restituisce un array di valori che rispecchia questa struttura. Poi sta a te usarli come meglio credi. |
![]() |
![]() |
![]() |
#11 | |
Junior Member
Iscritto dal: Nov 2007
Messaggi: 11
|
Quote:
|
|
![]() |
![]() |
![]() |
#12 |
Junior Member
Iscritto dal: Dec 2006
Messaggi: 24
|
USO DELLE LIOB RTAUDIO
Ciao mi intrometto nella vostra discussione in quanto sono interessato anchio a fare una piccola applicazione di questo tipo e comunque premetto che con il c++ non sono un esperto ho incominciato da poco, per questo volevo chiedervi se gentilmente potete aiutarmi.
Ho scaricato la lib. rtaudio e subito ho provato a eseguire qualche riga di codice presentata nel sito ma non capisco perchè, il compilatore mi da sempre degli errori: // probe.cpp #include <iostream> #include "RtAudio.h" int main() { RtAudio audio; // Determine the number of devices available unsigned int devices = audio.getDeviceCount(); // Scan through devices for various capabilities RtAudio: ![]() for ( unsigned int i=1; i<=devices; i++ ) { info = audio.getDeviceInfo( i ); if ( info.probed == true ) { // Print, for example, the maximum number of output channels for each device std::cout << "device = " << i; std::cout << ": maximum output channels = " << info.outputChannels << "\n"; } } return 0; } ho eseguito lo script con devc++ e successivamento con visual studio c++ ma l'errore è sempre quello, eppure le librerie .h sono già incluse e il sorgente è originale. [Linker error] undefined reference to `RtAudio::RtAudio(RtAudio::Api)' [Linker error] undefined reference to `RtAudio::~RtAudio()' [Linker error] undefined reference to `RtAudio::~RtAudio()' ld returned 1 exit status [Build Error] [Project1.exe] Error 1 1>------ Inizio generazione: Progetto: AUDIO, Configurazione: Debug Win32 ------ 1>Compilazione in corso... 1>AUDIO.cpp 1>Collegamento in corso... 1>AUDIO.obj : error LNK2019: riferimento al simbolo esterno "public: __thiscall RtAudio::~RtAudio(void)" (??1RtAudio@@QAE@XZ) non risolto nella funzione _main 1>AUDIO.obj : error LNK2019: riferimento al simbolo esterno "public: __thiscall RtAudio::RtAudio(enum RtAudio::Api)" (??0RtAudio@@QAE@W4Api@0@@Z) non risolto nella funzione _main 1>D:\DIEGO\Visual Studio 2005\Projects\AUDIO\Debug\AUDIO.exe : fatal error LNK1120: 2 esterni non risolti 1>Il log di generazione è stato salvato in 'file://d:\DIEGO\Visual Studio 2005\Projects\AUDIO\AUDIO\Debug\BuildLog.htm' 1>AUDIO - 3 errore/i, 0 avviso/i ========== Generazione: 0 completate, 1 non riuscite, 0 aggiornate, 0 ignorate ========== sapete di cosa sitratta ? grazie ![]() |
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Sembrerebbe che non trovi l'header RTAudio.h, l'hai aggiunto al progetto?
|
![]() |
![]() |
![]() |
#14 |
Junior Member
Iscritto dal: Dec 2006
Messaggi: 24
|
#include
Be si oltre che averlo incluso con la direttiva #include file.h l'ho aggiunto al progetto con le procedure di devc++ infatti ne posso visualizzare le classi e i metodi, ma in ogni caso non mi spiego perchè non funziona.
|
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Scusa mi sono accorto ora di aver sbagliato a scrivere: manca RtAudio.cpp. Infatti legge la dichiarazione, ma poi il linker non trova il codice corrispondente.
|
![]() |
![]() |
![]() |
#16 |
Junior Member
Iscritto dal: Dec 2006
Messaggi: 24
|
in effetti ora riesco a compilarlo senza problemi grazie,
ma quindi quali file devo sempre caricare perchè funzioni tutto ? |
![]() |
![]() |
![]() |
#17 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
|
![]() |
![]() |
![]() |
#18 |
Junior Member
Iscritto dal: Dec 2006
Messaggi: 24
|
Sembra funzionare a parte un messaggio di errore
RtApiDummy: This class provides no functionality, che sto cercando di capire da dove deriva, comunque grazie. A proposito di ASIO ho scaricato i sorgenti direttamente dal sito della steimber ma anche con esso non riesco a cominciare, avresti qualche piccolo esempio da passarmi. Grazie. |
![]() |
![]() |
![]() |
#19 | |
Junior Member
Iscritto dal: Nov 2007
Messaggi: 11
|
Quote:
volevo chiederti come faccio a prendere questi valori e ad esempio organizzarmeli in qualche modo in un file di testo? Grazie! |
|
![]() |
![]() |
![]() |
#20 | |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
A questo punto con i dati ci fai quello che vuoi. |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:39.