Differenze tra le versioni di "Calcolare la quantità di dati audio grezzi di un file WAV necessari per eseguire un tot di millisecondi audio"

Da Gambas-it.org - Wikipedia.
Riga 13: Riga 13:
 
   Dim frequenza As Integer
 
   Dim frequenza As Integer
 
   Dim bit, canali as Byte
 
   Dim bit, canali as Byte
   Dim quantitas, durata As Single
+
   Dim dati, durata As Single
 
    
 
    
   durata = 1969    <FONT Color=gray>' ''Secondi trascorsi''</font>
+
   durata = 1969 / 1000   <FONT Color=gray>' ''Millisecondi da eseguire''</font>
 
   frequenza = 44100
 
   frequenza = 44100
 
   bit = 16
 
   bit = 16
 
   canali = 2
 
   canali = 2
 
    
 
    
   quantitas = (durata * frequenza * bit * canali) / 8
+
   dati = (durata * frequenza * bit * canali) / 8
 
    
 
    
  <FONT Color=gray>' ''Mostra i Millisecondi:''</font>
+
  <FONT Color=gray>' ''Mostra la quantità di dati audio grezzi necessari:''</font>
   Print quantitas * 1000
+
   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.