Differenze tra le versioni di "Calcolare la quantità di dati audio grezzi di un file WAV necessari per eseguire un tot di millisecondi audio"
Riga 13: | Riga 13: | ||
Dim frequenza As Integer | Dim frequenza As Integer | ||
Dim bit, canali as Byte | Dim bit, canali as Byte | ||
− | Dim | + | Dim dati, durata As Single |
− | durata = 1969 <FONT Color=gray>' '' | + | durata = 1969 / 1000 <FONT Color=gray>' ''Millisecondi da eseguire''</font> |
frequenza = 44100 | frequenza = 44100 | ||
bit = 16 | bit = 16 | ||
canali = 2 | canali = 2 | ||
− | + | dati = (durata * frequenza * bit * canali) / 8 | |
− | <FONT Color=gray>' ''Mostra | + | <FONT Color=gray>' ''Mostra la quantità di dati audio grezzi necessari:''</font> |
− | Print | + | Print dati |
'''End''' | '''End''' | ||
Riga 31: | Riga 31: | ||
===2<SUP>a</sup> modalità=== | ===2<SUP>a</sup> modalità=== | ||
− | quantità_dati = durata * block_align * frequenza_campionamento | + | quantità_dati = (durata /1000) * block_align * frequenza_campionamento |
laddove la variabile ''block_align'' è data dal valore, espresso in ''little-endian'', del 33° e 34° byte (byte n. 32 e n. 33) del blocco di intestazione del file WAV. | laddove la variabile ''block_align'' è data dal valore, espresso in ''little-endian'', del 33° e 34° byte (byte n. 32 e n. 33) del blocco di intestazione del file WAV. | ||
Riga 37: | Riga 37: | ||
===3<SUP>a</sup> modalità=== | ===3<SUP>a</sup> modalità=== | ||
− | quantità_dati = durata * Byte_rate_per_secondo | + | quantità_dati = (durata / 1000) * Byte_rate_per_secondo |
laddove la variabile ''Byte_rate_per_secondo'' è data dal valore, espresso in ''little-endian'', del 29°, 30°, 31° e 32° byte (byte dal n. 28 e n. 31) del blocco di intestazione del file WAV. | laddove la variabile ''Byte_rate_per_secondo'' è data dal valore, espresso in ''little-endian'', del 29°, 30°, 31° e 32° byte (byte dal n. 28 e n. 31) del blocco di intestazione del file WAV. |
Versione delle 19:53, 28 apr 2018
Per sapere la quantità di dati audio grezzi di un file WAV necessari per eseguire un tot di millisecondi audio, è sufficiente far riferimento alle formule viste in questa pagina della WIKI.
In particolare potremo utilizzare almeno tre modalità.
1a modalità
quantità_dati = (durata * frequenza_campionamento * risoluzione_bit * numero_canali) / 8
Va precisato che la variabile "durata" esprime i secondi.
Esempio:
Public Sub Main() Dim frequenza As Integer Dim bit, canali as Byte Dim dati, durata As Single durata = 1969 / 1000 ' Millisecondi da eseguire frequenza = 44100 bit = 16 canali = 2 dati = (durata * frequenza * bit * canali) / 8 ' Mostra la quantità di dati audio grezzi necessari: Print dati End
Da sottolineare che il tipo di dato relativo alla quantità di dati audio necessari e quello relativo alla durata deve essere in virgola mobile (Float oppure Single).
2a modalità
quantità_dati = (durata /1000) * block_align * frequenza_campionamento
laddove la variabile block_align è data dal valore, espresso in little-endian, del 33° e 34° byte (byte n. 32 e n. 33) del blocco di intestazione del file WAV.
3a modalità
quantità_dati = (durata / 1000) * Byte_rate_per_secondo
laddove la variabile Byte_rate_per_secondo è data dal valore, espresso in little-endian, del 29°, 30°, 31° e 32° byte (byte dal n. 28 e n. 31) del blocco di intestazione del file WAV.