Differenze tra le versioni di "La struttura di un file Midi"

Da Gambas-it.org - Wikipedia.
Riga 21: Riga 21:
 
<BR>e) la risoluzione del Tempo Delta è 384 pulsazioni per nota da un quarto.
 
<BR>e) la risoluzione del Tempo Delta è 384 pulsazioni per nota da un quarto.
  
 +
===Il tipo di file Midi===
 +
Nel tempo il file Midi è stato modificato nella sua strutturazione interna. In particolare esso ha subito tre grandi modifiche, che si sono comunque conservate come "Tipi" del file Midi, identificandosi con i numeri 0, 1 e 2.
  
 +
Il tipo "0" di file Midi prevede il blocco d'Intestazione e <SPAN Style="text-decoration:underline">una sola</span> traccia contenente i dati degli eventi Midi secondo la loro sequenza temporale esecutiva, mescolandosi così i vari canali degli eventi Midi previsti.
 +
 +
Il tipo "1", il più comune, prevede il blocco d'Intestazione e <SPAN Style="text-decoration:underline">almeno</span> una traccia di dati degli eventi Midi. Poiché questo tipo può supportare molte tracce, <SPAN Style="text-decoration:underline">si è soliti</span> (seppur non obbligatorio) porre in ciascuna traccia di dati gli eventi Midi appartenenti al medesimo canale Midi.
 +
 +
Il tipo "2" è la più recente ed è usato rarissimamente.
  
  
  
 
<FONT Color=red size=4><B>Pagina in costruzione !</b></font>
 
<FONT Color=red size=4><B>Pagina in costruzione !</b></font>

Versione delle 18:18, 2 mag 2018

Il file Midi è strutturato in blocchi (chunk) coerenti di dati, ciascuno dei quali rappresenta una "Traccia" Midi (Midi Track).
In particolare il file Midi è composto da almeno due blocchi di dati.

Il blocco d'Intestazione

Il primo blocco di dati, costituente il file Midi, è sempre la cosidetta "Traccia Midi d'Intestazione", anche rappresentata nel file con l'acronimo MThd.
Questo blocco è sempre costituito complessivamente da 14 byte, così distinti:
a) i primi 4 byte individuano univocamente il blocco d'intestazione con i valori ASCII delle lettere "MThd";
b) seguono altri 4 byte che specificano in ordine Big-Endian la quantità di byte restanti del blocco d'Intestazione, ossia sempre 6 byte;
c) seguono altri 2 byte che specificano in ordine Big-Endian il tipo di file Midi (0, 1 oppure 2);
d) seguono altri 2 byte che specificano in ordine Big-Endian la quantità di tracce oltre quella d'Intestazione presenti nel file Midi;
e) seguono altri 2 byte che specificano in ordine Big-Endian la risoluzione del Tempo Delta (PPQN).

Mostriamo un esempio di blocco d'Intestazione:

4D 54 68 64  00 00 00 06  00 01  00 04  01 80
     a            b         c      d      e

Tali dati esemplificativi di blocco MThd ci dicono che:
a) intende essere un blocco d'intestazione, infatti i primi 4 byte corrispondono alla rappresentazione ASCII dei caratteri M T h d ;
b) dopo gli iniziali 8 byte del blocco restano soltanto altri 6 byte;
c) il file è di tipo 1;
d) oltre il blocco MThd sono presenti a seguire altre 4 tracce di dati Midi;
e) la risoluzione del Tempo Delta è 384 pulsazioni per nota da un quarto.

Il tipo di file Midi

Nel tempo il file Midi è stato modificato nella sua strutturazione interna. In particolare esso ha subito tre grandi modifiche, che si sono comunque conservate come "Tipi" del file Midi, identificandosi con i numeri 0, 1 e 2.

Il tipo "0" di file Midi prevede il blocco d'Intestazione e una sola traccia contenente i dati degli eventi Midi secondo la loro sequenza temporale esecutiva, mescolandosi così i vari canali degli eventi Midi previsti.

Il tipo "1", il più comune, prevede il blocco d'Intestazione e almeno una traccia di dati degli eventi Midi. Poiché questo tipo può supportare molte tracce, si è soliti (seppur non obbligatorio) porre in ciascuna traccia di dati gli eventi Midi appartenenti al medesimo canale Midi.

Il tipo "2" è la più recente ed è usato rarissimamente.


Pagina in costruzione !