Pergunta

Eu quero saber como converter ticks MIDI em segundos reais de reprodução.

Por exemplo, se o PPQ MIDI (pulsos por nota de trimestre) for 1120, como eu o converteria em segundos de reprodução do mundo real?

Foi útil?

Solução

A fórmula é 60000 / (BPM * PPQ) (milissegundos).

Onde o BPM é o ritmo da pista (batidas por minuto).

(ou seja, uma pista de 120 bpm teria um tempo médio de (60000 / (120 * 192)) ou 2.604 ms para 1 tick.

Se você não conhece o BPM, terá que determinar isso primeiro. O Midi Times depende inteiramente do ritmo da pista.

Outras dicas

Você precisa de duas informações:

  • Ppq (Pulsos por nota de trimestre), que é definido no cabeçalho de um arquivo MIDI, uma vez.
  • Tempo (em microssegundos por nota), que é definido por Meta eventos "set tempo" e pode mudar durante a peça musical.

Os carrapatos podem ser convertidos em segundos de reprodução da seguinte forma:

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

Observe que o PPQ também é chamado de "divisão" ou "ticks por bate -time" no documento ligado acima.

Observe que o ritmo é comumente representado no BPM (uma frequência), mas o MIDI bruto o representa em µs por trimestre (um período).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top