[c++] gestire microfono con linux

Se avete problemi con l'installazione e la configurazione di Slackware postate qui. Non usate questo forum per argomenti generali... per quelli usate Gnu/Linux in genere.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware, se l'argomento è generale usate il forum Gnu/Linux in genere.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
nik600
Linux 2.x
Linux 2.x
Messaggi: 450
Iscritto il: lun 15 mar 2004, 0:00
Contatta:

[c++] gestire microfono con linux

Messaggio da nik600 »

ciao a tutti...vorrei fare un programma che "ascolta" il microfono del pc...non so molto in fatto di audio..in pratica vorrei un programma che sia in grado di identificare i cambiamenti di audio...tipo contare i battiti x minuto o cose di questo tipo so programmare abbastanza in c++ ma non ho la minima idea di come interfacciarmi con la periferica audio...e soprattutto con il microfono!
<BR>
<BR>avete suggerimenti?
<BR>
<BR>grazie nik<br>

meritil
Master
Master
Messaggi: 1651
Iscritto il: mar 24 ago 2004, 0:00
Slackware: bluewhite64
Contatta:

[c++] gestire microfono con linux

Messaggio da meritil »

Guarda anch´io sono un caprone multimediale però posso dirti che Linux mappa ogni dispositivo come fosse un file... quindi l´interfaccia è quella classica dell´I/O su file.
<BR>Una volta individuato tale file devi aprirlo in lettura e leggere da lì.. non so però qual´è la semantica di quello che leggerai.. cioè non so dirti come interpretarlo...
<BR>Da un occhiata dentro /dev/sound li ci sono i dispositivi audio.. se scopro altro ti faccio sapere.. e tienimi aggiornato please mi interessa la faccenda^^
<BR>
<BR>Ciao<br>

Avatar utente
useless
Staff
Staff
Messaggi: 3896
Iscritto il: dom 12 ott 2003, 0:00
Località: A place where the streets have no name
Contatta:

[c++] gestire microfono con linux

Messaggio da useless »

dai anche un occhio a cosa ti mettono a disposizione i vari header in /usr/include/alsa/.<br>

nik600
Linux 2.x
Linux 2.x
Messaggi: 450
Iscritto il: lun 15 mar 2004, 0:00
Contatta:

[c++] gestire microfono con linux

Messaggio da nik600 »

ciao
<BR>
<BR>io mi sono scaricato questo
<BR>
<BR>http://prdownloads.sourceforge.net/xmms ... z?download
<BR>
<BR>è un plugin di xmms x registrare...domani sera do un occhio al codice e vedo cosa si può capirne!!
<BR>
<BR>
<BR>ti faccio sapere ora devo strudiare x un esame merdosissimo :-)
<BR>
<BR>(IBM Rational Rose)
<BR>
<BR><br>

nik600
Linux 2.x
Linux 2.x
Messaggi: 450
Iscritto il: lun 15 mar 2004, 0:00
Contatta:

[c++] gestire microfono con linux

Messaggio da nik600 »

ciao!
<BR>
<BR>è possibile lavorare ad un livello molto più basso!
<BR>
<BR>come ben saprai in linux quasi tutto è un file...la periferica audio scrive sul file
<BR>
<BR>/dev/audio
<BR>
<BR>x una dimostrazione pratica ti basta fare
<BR>
<BR>cp /dev/audio ~/prova_audio
<BR>
<BR>e aspetti una decina di secondi, poi killi il processo con un CTRL+C
<BR>(altrimenti continuerebbe all´infinito, perchè la scheda audio continua ad inviare info)
<BR>
<BR>poi fai il processo inverso...
<BR>
<BR>cp /~prova_audio /dev/audio
<BR>
<BR>se stavi ascoltando musica sentirai quello che veniva riprodotto in quel momento! se hai un microfono e hai parlato mentre copiavi sentirai quello che ha registrato il microfono!
<BR>
<BR>ora dovrei capire come analizzare quel file...se lo apro con emacs non ci si capisce niente...bisognerà fare una fread()...io vorrei tagliare la frequenza e capire solo quando viene sorpassata la frequenza dei bassi!
<BR>
<BR><br>

Avatar utente
useless
Staff
Staff
Messaggi: 3896
Iscritto il: dom 12 ott 2003, 0:00
Località: A place where the streets have no name
Contatta:

[c++] gestire microfono con linux

Messaggio da useless »

<!-- BBCode Quote Start --><TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD><font size=-1>Quote:</font><HR></TD></TR><TR><TD><FONT SIZE=-1><BLOCKQUOTE>
<BR> 22-12-2004 alle ore 11:20, nik600 :
<BR>io vorrei tagliare la frequenza e capire solo quando viene sorpassata la frequenza dei bassi!
<BR></BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE><!-- BBCode Quote End -->
<BR>
<BR>giù di analisi di fourier ;).<br>

nik600
Linux 2.x
Linux 2.x
Messaggi: 450
Iscritto il: lun 15 mar 2004, 0:00
Contatta:

[c++] gestire microfono con linux

Messaggio da nik600 »

AHIA!
<BR>
<BR>mi sono fatto male!
<BR>
<BR>ma prima di partire con fourier...come interpreto quei dati?
<BR>
<BR>cosa contengono?
<BR>
<BR>cioè è un ammasso di bit e non so come sono organizzati?
<BR>
<BR>è un vettore? di cosa? <br>

meritil
Master
Master
Messaggi: 1651
Iscritto il: mar 24 ago 2004, 0:00
Slackware: bluewhite64
Contatta:

[c++] gestire microfono con linux

Messaggio da meritil »

Prova a leggere l´output a blocchi da 16 (o 32 bit) , printali come interi e vedi se cambia qualcosa quando il volume si alza ...magari ti inventi una puzzonata in questo modo...
<BR>
<BR>Ciao
<BR>
<BR>ps: E´ un consiglio di m... lo so! :-] Non si sà mai....<br>

Avatar utente
useless
Staff
Staff
Messaggi: 3896
Iscritto il: dom 12 ott 2003, 0:00
Località: A place where the streets have no name
Contatta:

[c++] gestire microfono con linux

Messaggio da useless »

premetto che quanto sto per dire è una pura supposizione:
<BR>potrebbero semplicemente essere i valori dei campioni nel tempo. dovresti provare a disegnarne un paio consecutivi su un grafico e vedere se esce una qualche forma d´onda sensata.<br>

nik600
Linux 2.x
Linux 2.x
Messaggi: 450
Iscritto il: lun 15 mar 2004, 0:00
Contatta:

[c++] gestire microfono con linux

Messaggio da nik600 »

infatti..più o meno è cosi...il problema è che per fare in modo che il grafico che esce sia sensato sono necessari almeno un paio di litri di birra!
<BR>
<BR>scherzi a parte se non altro ora c´è una base su cui lavorare...appena ho un attimo vi posto gli scrrensho dei grafinci
<BR>
<BR>comunque sostanzialmente i punti sono concentrati in due zone...tra
<BR>
<BR>+ 1 500 000 000 e 2 400 000 000 000
<BR>
<BR>e
<BR>
<BR>- 1 500 000 000 e - 2 400 000 000 000
<BR>
<BR>+ o meno i valori positivi corrispondono al volume...ma si aggiornano con un paio di secondi rispetto alla realtà<br>

Avatar utente
useless
Staff
Staff
Messaggi: 3896
Iscritto il: dom 12 ott 2003, 0:00
Località: A place where the streets have no name
Contatta:

[c++] gestire microfono con linux

Messaggio da useless »

uhm, i valori penso siano su interi signed da 16bit, quindi compresi tra -65536 e 65535, sicuro di averli letti bene? credo che ti convenga usare short int.<br>

nik600
Linux 2.x
Linux 2.x
Messaggi: 450
Iscritto il: lun 15 mar 2004, 0:00
Contatta:

[c++] gestire microfono con linux

Messaggio da nik600 »

grazie mille della risposta!
<BR>
<BR>ora ha già molto + senso!
<BR>
<BR>se traccio un grafico dei punti ottengo + o - l´andamento del volume...e questo mi va bene!
<BR>
<BR>ma come posso fare ora a tirare fuori la frequenza dei bassi?<br>

Avatar utente
useless
Staff
Staff
Messaggi: 3896
Iscritto il: dom 12 ott 2003, 0:00
Località: A place where the streets have no name
Contatta:

[c++] gestire microfono con linux

Messaggio da useless »

non capisco cosa intendi x "frequenza dei bassi"!<br>

nik600
Linux 2.x
Linux 2.x
Messaggi: 450
Iscritto il: lun 15 mar 2004, 0:00
Contatta:

[c++] gestire microfono con linux

Messaggio da nik600 »

a questo punto vorrei fare un filtro , tipo equalizzatore, in modo da poter fare dei controlli sulla frequenza...ad esempio
<BR>
<BR>se ho una canzone dance potrei contare i battiti x minuto...una cosa di questo tipo...
<BR>
<BR>posso già farlo con il volume...ma non è completamente corretto..<br>

Avatar utente
useless
Staff
Staff
Messaggi: 3896
Iscritto il: dom 12 ott 2003, 0:00
Località: A place where the streets have no name
Contatta:

[c++] gestire microfono con linux

Messaggio da useless »

erm, non ho una grande idea di come si faccia, xò se passi dal dominio del tempo a quello della frequenza (w fourier), probabilmente il tutto è + semplice. dai un occhio ai sorgenti di xmms et similia vah ;).<br>

Rispondi