Sto provando a disegnare una forma d'onda da un file audio grezzo. Ho demedito/decodificato un file audio usando FFmpeg e ho queste informazioni: buffer dei campioni, dimensione del buffer dei campioni, durata del file audio (in secondi), frequenza di campionamento (44100, 48000, ecc.), Dimensione del campione, campione format (uint8, int16, int32, float, double) e i dati audio originali.Algoritmo per disegnare forme d'onda dall'audio
Scavando su Internet ho trovato questo algoritmo (più here):
White Noise:
L'algoritmo
Tutto quello che dovete fare è casuale ogni campione da -amplitude a ampiezza. Nella maggior parte dei casi non ci interessa il numero di canali, quindi riempiamo semplicemente ogni campione con un nuovo numero casuale.
Random rnd = new Random();
short randomValue = 0;
for (int i = 0; i < numSamples; i++)
{
randomValue = Convert.ToInt16(rnd.Next(-amplitude, amplitude));
data.shortArray[i] = randomValue;
}
E 'davvero buono, ma non voglio disegnare in quel modo, ma in questo modo:
Esiste un algoritmo o idea di come posso essere disegno utilizzando il informazioni che ho?
Sembra che tu stia cercando di utilizzare la forma d'onda ** generando ** algoritmi quando hai già la forma d'onda. Quindi mi sembra che tu non debba fare nulla. – Galik
@Galik - Cosa intendi con "hai già la forma d'onda"? L'unica cosa che ho sono le informazioni sul file raw sopra elencato, ora sto cercando un algoritmo per disegnare la forma d'onda usando quelle informazioni. – yayuj
Beh, gli algoritmi che hai collegato non hanno nulla a che fare con il disegno dell'onda. Generano l'onda. Hai generato la tua onda usando ffmpeg per convertire i dati audio grezzi. Quindi non hai bisogno di un generatore. Penso che forse quello di cui hai bisogno è una specie di framework GUI che ti permetta di disegnare cose sullo schermo. – Galik