Differenze tra le versioni di "Modificare il volume audio di un file WAV mediante le sole risorse di Gambas"
Da Gambas-it.org - Wikipedia.
(Creata pagina con "Per modificare il volume audio di un file wav, è necessario operare sui singoli campioni audio del file. <BR>Più in particolare: - per aumentare il volume si deve moltiplic...") |
|||
(2 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 1: | Riga 1: | ||
− | Per modificare il volume audio di un file wav, è necessario operare sui singoli campioni audio del file. | + | Per modificare il volume audio (Ampiezza dell'onda sonora) di un file wav, è necessario operare sui singoli campioni audio del file. |
<BR>Più in particolare: | <BR>Più in particolare: | ||
Riga 8: | Riga 8: | ||
- per diminuire il volume si deve dividere il singolo campione per un determinato valore. | - per diminuire il volume si deve dividere il singolo campione per un determinato valore. | ||
<BR>Esempio: | <BR>Esempio: | ||
− | campione_audio '''/''' | + | campione_audio '''/''' 8 |
Di seguito mostriamo un esempio, con il quale saranno modificati i campioni audio di un file wav con risoluzione a 16-bit, ottenendo alla fine un nuovo file wav, la cui esecuzione avrà un volume audio inferiore a quello del file wav originario. | Di seguito mostriamo un esempio, con il quale saranno modificati i campioni audio di un file wav con risoluzione a 16-bit, ottenendo alla fine un nuovo file wav, la cui esecuzione avrà un volume audio inferiore a quello del file wav originario. | ||
Riga 25: | Riga 25: | ||
fl.Close | fl.Close | ||
− | <FONT Color=gray>' ''Comincia dal primo campione dopo il blocco d'intestazione del file wav, tenendo conto che il vettore, contenente i dati del file, è di tipo "Short":''</font> | + | <FONT Color=gray>' ''Comincia dal primo campione dopo il blocco d'intestazione del file wav, tenendo conto che il vettore, contenente i dati del file, è di tipo "Short[]":''</font> |
For i = 44 / SizeOf(gb.Short) To cc.Max | For i = 44 / SizeOf(gb.Short) To cc.Max | ||
cc[i] = <FONT Color=#B22222>cc[i] '''/''' 16</font> | cc[i] = <FONT Color=#B22222>cc[i] '''/''' 16</font> |
Versione attuale delle 04:26, 19 set 2022
Per modificare il volume audio (Ampiezza dell'onda sonora) di un file wav, è necessario operare sui singoli campioni audio del file.
Più in particolare:
- per aumentare il volume si deve moltiplicare il singolo campione per un valore (che può essere anche in virgola mobile).
Esempio:
campione_audio * 1.5
- per diminuire il volume si deve dividere il singolo campione per un determinato valore.
Esempio:
campione_audio / 8
Di seguito mostriamo un esempio, con il quale saranno modificati i campioni audio di un file wav con risoluzione a 16-bit, ottenendo alla fine un nuovo file wav, la cui esecuzione avrà un volume audio inferiore a quello del file wav originario.
Public Sub Main() Dim wav As String Dim cc As Short[] Dim i As Integer Dim fl As File wav = "/percorso/del/file.wav" fl = Open wav For Read cc = New Short[Lof(fl) / SizeOf(gb.Short)] cc.Read(fl, 0, cc.Count) fl.Close ' Comincia dal primo campione dopo il blocco d'intestazione del file wav, tenendo conto che il vettore, contenente i dati del file, è di tipo "Short[]": For i = 44 / SizeOf(gb.Short) To cc.Max cc[i] = cc[i] / 16 Next fl = Open "/tmp/finale.wav" For Create cc.Write(fl, 0, cc.Count) fl.Close End