Informações de tempo
As informações de tempo de um evento MIDI são armazenadas no membro dwDeltaTime da estrutura MIDIEVENT . O tempo é dado em tiques, conforme definido na especificação Standard MIDI Files 1.0 . O comprimento de um tique é definido pelo formato de tempo e, possivelmente, pelo tempo associado ao fluxo. Para obter mais informações sobre fluxos, consulte Fluxos MIDI.
Um tique é expresso como microssegundos por anotação trimestral ou como tiques de tempo SMPTE (Sociedade de Engenheiros de Cinema e Televisão). Aplicativos que enviam mensagens MIDI individualmente ou usam mensagens MIDI não processadas usam informações de tempo de anotação e tempo de trimestre para determinar a duração de um tique. Aplicativos que pré-processam mensagens MIDI podem armazenar o tempo decorrido como uma contagem das unidades SMPTE que estão sendo usadas.
O tempo de anotação do trimestre é indicado com um zero no bit de palavra alta (bit 15) da palavra divisão de tempo. O restante da palavra contém as tiques por anotação trimestral. Um tempo associado a um fluxo de dados MIDI é mantido em unidades (microssegundos por anotação trimestral) consistente com a especificação Standard MIDI Files 1.0 . Por exemplo, uma nota de trimestre em 4/4 que usa um tempo de 500.000 microssegundos por trimestre é reproduzida à taxa de 120 batidas por minuto.
Os formatos de divisão de tempo SMPTE especificam completamente o comprimento de um tique sem a necessidade de informações de tempo. Ao usar formatos de tempo SMPTE, as sequências MIDI podem ser sincronizadas com outros eventos SMPTE, como vídeo ou áudio distribuído. O tempo de SMPTE é indicado com um 1 no bit de alta ordem (bit 15) da palavra divisão de tempo. O restante do byte mais significativo especifica o formato SMPTE em uso como valores negativos. Os formatos SMPTE com suporte e seus valores correspondentes (entre parênteses) são 24 (-24), 25 (-25), 30 (-30) e 30 drop (-29). O byte baixo da palavra divisão de tempo especifica o número de tiques por quadro SMPTE.