Fondere insieme due file MIDI: differenze tra le versioni

Da Gambas-it.org - Wikipedia.
Vai alla navigazione Vai alla ricerca
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 6: Riga 6:
   Dim nt1, nt2 As Byte
   Dim nt1, nt2 As Byte
    
    
    
   s1 = File.Load("<FONT color=gray>''/percorso/del/'''primo'''/file.mid''</font>")
  s1 = File.Load("''/percorso/del/primo/file.mid''")
  s2 = File.Load("<FONT color=gray>''/percorso/del/'''secondo'''/file.mid''</font>")
  s2 = File.Load("''/percorso/del/secondo/file.mid''")
      
      
  <FONT color=gray>' ''Individua il numero di tracce presenti nel primo file:''</font>
  <FONT color=gray>' ''Individua il numero di tracce presenti nel primo file:''</font>
  nt1 = Asc(Mid(s1, 12, 1))
  nt1 = Asc(Mid(s1, 12, 1))
   
   
  <FONT color=gray>' ''Individua il numero di tracce presenti nel secondo file:''</font>
  <FONT color=gray>' ''Individua il numero di tracce presenti nel secondo file:''</font>
  nt2 = Asc(Mid(s2, 12, 1))
  nt2 = Asc(Mid(s2, 12, 1))
   
   
  nt$ = CStr(nt1 + nt2)
  nt$ = CStr(nt1 + nt2)
   
   
  <FONT color=gray>' ''Raccoglie solo la parte delle tracce "MTrk" del secondo file:''</font>
  <FONT color=gray>' ''Raccoglie solo la parte delle tracce "MTrk" del secondo file:''</font>
  ss2 = Right(s2, Len(s2) - 14)
  ss2 = Right(s2, Len(s2) - 14)
      
      
  file_finale = Left(s1, 11) & Chr(nt$) & Right(s1, Len(s1) - 12) & ss2
  file_finale = Left(s1, 11) & Chr(nt$) & Right(s1, Len(s1) - 12) & ss2
      
      
  File.Save("/tmp/nuovo.mid", file_finale)
  File.Save("/tmp/nuovo.mid", file_finale)
   
   
  '''End'''
  '''End'''

Versione delle 18:58, 19 set 2022

Mostriamo di seguito un codice per fondere (mischiare) due file Midi con le sole funzioni di Gambas.
Va precisato che la dinamica dell'esecuzione, ed in particolare il Tempo metronomico, di un file Midi potrà essere influenzata dagli eventuali Meta-eventi contenuti nell'altro file Midi.

Public Sub Main()

 Dim s1, s2, ss2, nt$, 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(Mid(s1, 12, 1))

' Individua il numero di tracce presenti nel secondo file:
 nt2 = Asc(Mid(s2, 12, 1))

 nt$ = CStr(nt1 + nt2)

' Raccoglie solo la parte delle tracce "MTrk" del secondo file:
 ss2 = Right(s2, Len(s2) - 14)
   
 file_finale = Left(s1, 11) & Chr(nt$) & Right(s1, Len(s1) - 12) & ss2
   
 File.Save("/tmp/nuovo.mid", file_finale)

End