Differenze tra le versioni di "Unire due file WAV"
Da Gambas-it.org - Wikipedia.
Riga 8: | Riga 8: | ||
'''Public''' Sub Main() | '''Public''' Sub Main() | ||
− | Dim | + | Dim s1, s2, finale As String |
− | + | s1 = File.Load("''/percorso/del/primo/file.wav''") | |
+ | |||
+ | s2 = File.Load("''/percorso/del/secondo/file.wav''") | ||
− | <FONT color=gray>' ''Semplicemente azzeriamo i valori dei byte n. 4, 5, 6 e 7 | + | <FONT color=gray>' ''Semplicemente azzeriamo i valori dei byte n. 4, 5, 6 e 7 del primo file wav''</font> |
finale = Left(s, 4) | finale = Left(s, 4) | ||
finale &= String$(4, Chr(0)) | finale &= String$(4, Chr(0)) | ||
− | <FONT color=gray>' ''Semplicemente inseriamo i valori uguali a zero nei byte n. 40, 41, 42, 43 al posto dei precedenti:''</font> | + | <FONT color=gray>' ''Semplicemente inseriamo nel primo file wav i valori uguali a zero nei byte n. 40, 41, 42, 43 al posto dei precedenti:''</font> |
finale &= Mid(s, 9, 32) | finale &= Mid(s, 9, 32) | ||
finale &= String$(4, Chr(0)) | finale &= String$(4, Chr(0)) | ||
Riga 22: | Riga 24: | ||
<FONT color=gray>' ''Salviamo il nuovo file WAV unendo al primo file wav, come modificato, il secondo file wav privato del suo ''header'':''</font> | <FONT color=gray>' ''Salviamo il nuovo file WAV unendo al primo file wav, come modificato, il secondo file wav privato del suo ''header'':''</font> | ||
− | File.Save("/tmp/nuovo.wav", finale & Right( | + | File.Save("/tmp/nuovo.wav", finale & Right(s1, Len(s) - 44) & Right(s2, Len(s) - 44)) |
'''End''' | '''End''' |
Versione delle 13:09, 18 gen 2014
Per unire due file audio di formato WAV con le sole funzioni di Gambas, bisognerà prestare cure ad almeno i seguenti aspetti:
- i due file da unire devono avere uguale frequenza di campionamento ed uguale numero di canali;
- bisognerà eliminare l'intero primo blocco, ossia l'header, al secondo file (che sarà unito alla fine del primo file wav;
- bisognerà azzerare oppure impostare i nuovi corretti valori che indicano le dimensioni del file wav, presenti nei byte n. 4, 5, 6, 7 e nei byte n. 40, 41, 42, 43 dell'header del primo file.
Di seguito un possibile semplice codice:
Public Sub Main() Dim s1, s2, finale As String s1 = File.Load("/percorso/del/primo/file.wav") s2 = File.Load("/percorso/del/secondo/file.wav") ' Semplicemente azzeriamo i valori dei byte n. 4, 5, 6 e 7 del primo file wav finale = Left(s, 4) finale &= String$(4, Chr(0)) ' Semplicemente inseriamo nel primo file wav i valori uguali a zero nei byte n. 40, 41, 42, 43 al posto dei precedenti: finale &= Mid(s, 9, 32) finale &= String$(4, Chr(0)) ' Salviamo il nuovo file WAV unendo al primo file wav, come modificato, il secondo file wav privato del suo header: File.Save("/tmp/nuovo.wav", finale & Right(s1, Len(s) - 44) & Right(s2, Len(s) - 44)) End