Da Gambas-it.org - Wikipedia.
|
|
Riga 1: |
Riga 1: |
− | Per modificare il volume audio di un file wav, è necessario operare sui singoli campioni audio del file.
| + | # REDIRECT [[Modificare il volume audio di un file WAV mediante le sole risorse di Gambas]] |
− | <BR>Più in particolare:
| |
− | | |
− | - per aumentare il volume si deve moltiplicare il singolo campione per un valore (che può essere anche in virgola mobile).
| |
− | <BR>Esempio:
| |
− | campione_audio '''*''' 1.5
| |
− | | |
− | - per diminuire il volume si deve dividere il singolo campione per un determinato valore.
| |
− | <BR>Esempio:
| |
− | campione_audio '''/''' valore
| |
− | | |
− | 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 = "<FONT Color=gray>''/percorso/del/file.wav''</font>"
| |
− |
| |
− | fl = Open wav For Read
| |
− | cc = New Short[Lof(fl) / SizeOf(gb.Short)]
| |
− | cc.Read(fl, 0, cc.Count)
| |
− | 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>
| |
− | For i = 44 / SizeOf(gb.Short) To cc.Max
| |
− | cc[i] = <FONT Color=#B22222>cc[i] '''/''' 16</font>
| |
− | Next
| |
− |
| |
− | fl = Open "/tmp/finale.wav" For Create
| |
− | cc.Write(fl, 0, cc.Count)
| |
− | fl.Close
| |
− |
| |
− | '''End'''
| |
Versione delle 04:07, 19 set 2022
- REDIRECT Modificare il volume audio di un file WAV mediante le sole risorse di Gambas