Domanda

Voglio sapere come convertire i tick MIDI in secondi di riproduzione effettivi.

Ad esempio, se il MIDI PPQ (impulsi per nota da un quarto) è 1120, come posso convertirlo in secondi di riproduzione reali?

È stato utile?

Soluzione

La formula è 60000 / (BPM * PPQ) (millisecondi).

Dove BPM è il tempo della traccia (battiti al minuto).

(cioè.una traccia da 120 BPM avrebbe un tempo MIDI di (60000 / (120 * 192)) o 2.604 ms per 1 tick.

Se non conosci il BPM, dovrai prima determinarlo.I tempi MIDI dipendono interamente dal tempo della traccia.

Altri suggerimenti

Hai bisogno di due pezzi di informazioni:

  • PPQ (impulsi per nota), che è definita nell'intestazione di un file midi, una volta.
  • Tempo (in microsecondi per nota), che è definito da "Imposta ritmo" meta eventi e possono cambiare nel corso del brano musicale.

Le zecche possono essere convertiti per la riproduzione secondi come segue:

ticks_per_quarter = <PPQ from the header>
µs_per_quarter = <Tempo in latest Set Tempo event>
µs_per_tick = µs_per_quarter / ticks_per_quarter
seconds_per_tick = µs_per_tick / 1.000.000
seconds = ticks * seconds_per_tick

Si noti che PPQ è anche chiamato "divisione" o "zecche per quarto di nota" nel documento legato sopra.

Si noti che Tempo è comunemente rappresentato in BPM (frequenza) ma cruda MIDI rappresenta in microsecondo per trimestre (periodo).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top