Differenze tra le versioni di "Fondere insieme due file MIDI"
Da Gambas-it.org - Wikipedia.
Riga 1: | Riga 1: | ||
Mostriamo di seguito un codice, sufficientemente commentato, per fondere (mischiare) due file Midi con le sole funzioni di Gambas. | Mostriamo di seguito un codice, sufficientemente commentato, per fondere (mischiare) due file Midi con le sole funzioni di Gambas. | ||
− | Va precisato che <SPAN Style="text-decoration:underline>la dinamica e modalità dell'esecuzione di un file Midi potrà essere influenzata da diversa risoluzione del Tempo-Delta e dagli eventuali ''Meta-eventi'' contenuti nell'altro file Midi</span>. Pertanto si suggerisce di usare il seguente codice con due file Midi che | + | Va precisato che <SPAN Style="text-decoration:underline>la dinamica e modalità dell'esecuzione di un file Midi potrà essere influenzata in modo particolare da diverso [https://www.gambas-it.org/wiki/index.php/La_struttura_di_un_file_Midi#Il_tipo_di_file_Midi tipo di file Midi], da da diversa [https://www.gambas-it.org/wiki/index.php/La_struttura_di_un_file_Midi#La_risoluzione_del_Tempo_Delta risoluzione del Tempo-Delta] e dagli eventuali ''[https://www.gambas-it.org/wiki/index.php/La_struttura_di_un_file_Midi#I_Meta-eventi Meta-eventi]'' contenuti nell'altro file Midi</span>. Pertanto si suggerisce di usare il seguente codice con due file Midi che appartengano al tipo '''1''' di file Midi e posseggano medesima risoluzione del Tempo-Delta, nonché medesimo valore del ''Meta-evento'' relativo al Tempo metronomico. |
'''Public''' Sub Main() | '''Public''' Sub Main() | ||
Versione delle 19:29, 19 set 2022
Mostriamo di seguito un codice, sufficientemente commentato, per fondere (mischiare) due file Midi con le sole funzioni di Gambas.
Va precisato che la dinamica e modalità dell'esecuzione di un file Midi potrà essere influenzata in modo particolare da diverso tipo di file Midi, da da diversa risoluzione del Tempo-Delta e dagli eventuali Meta-eventi contenuti nell'altro file Midi. Pertanto si suggerisce di usare il seguente codice con due file Midi che appartengano al tipo 1 di file Midi e posseggano medesima risoluzione del Tempo-Delta, nonché medesimo valore del Meta-evento relativo al Tempo metronomico.
Public Sub Main() Dim s1, s2, mtrk1, mtrk2, file_finale As String Dim nt1, nt2 As Byte s1 = File.Load("/percorso/del/primo/file.mid") s2 = File.Load("/percorso/del/secondo/file.mid") ' Individua il numero di tracce presenti nel primo file: nt1 = Asc(s1[11, 1]) ' Individua il numero di tracce presenti nel secondo file: nt2 = Asc(s2[11, 1]) ' Raccoglie del 1° file Midi solo il valore della risoluzione del Tempo-Delta e la parte delle tracce "MTrk": mtrk1 = s1[12, s1.Len] ' Raccoglie del 2° file Midi solo la parte delle tracce "MTrk": mtrk2 = s2[14, s2.Len] file_finale = s1[0, 11] & MkByte(nt1 + nt2) & mtrk1 & mtrk2 File.Save("/tmp/nuovo.mid", file_finale) End