ciao a tutti
sto facendo un programma che legge lo stream audio che passa nella scheda audio (deve leggere in continuazione.. deve funzionare in real time..)
- leggo inizialmente 16896 (=16384+512) campioni e su questi il programma deve farci delle cose e tirare fuori una sequenza di bit (questa parte l'ho gia' fatta e funziona, pero' partendo da un file wav presente sul disco fisso.. percio' non in real time)
- finita l'elaborazione, i primi 512 campioni non vanno piu' considerati e dovrebbero essere cancellati; ne considero altri 512 (cosi' da considerarne sempre in totale 16896) e faccio la stessa elaborazione per avere un 'altra sequenza di bit..
in pratica deve fare una cosa del genere:
leggo:
|< 16384 >|< 512 >|
elaboro la sequenza di bit h1:
|< h1 >|
ma nel frattempo continuo a leggere altri 512:
|< 512 >|
finita l'elaborazione di h1 cancello i primi 512 e faccio quella di h2:
|< ... >|< h2 >|
ma nel frattempo ho letto altri 512:
|< 512 >|
e cosi', ricavato h2, cancello i primi 512 ed elaboro h3:
|< ... >|< h3 >|
etc...
spero che la formattazione renda il concetto..
il mio problema e' che non capisco come far fare queste due cose contemporaneamente (la lettura e l'elaborazione)..
..lo vedrei facilmente in questo modo, con 2 programmi:
- il primo legge in continuazione quello che passa sulla scheda audio e mette ogni sequenza di 512 campioni letti in un record di un database
- il secondo legge i record del database; inizialmente finche' non ha letto 16896 campioni non fa nulla; poi inizia l'elaborazione. Elabora h1, cancella il primo record e legge il primo record non ancora letto e sul totale elabora h2.. e cosi' via..
ci sono metodi piu' intelligenti, vero??
avete capito cosa intendo vista la mia indubbia (?!?) chiarezza??..
ciao e grazie