Pergunta

Uma pergunta bastante simples para o qual eu tenho um palpite, mas não consigo encontrar uma resposta em qualquer lugar definitivo.

O fundo: Eu tenho um arquivo midi multi-track com controles TEMPO na primeira faixa. Eu preciso traduzir a contagem ABSOLUTE_TICK em outras faixas para "Segundos" (fracionários segundos deslocamento a partir do início do arquivo midi).

Eu tenho a fórmula para se relacionar ABSOLUTE_TICK para Segundos base no PulsePerQuarterNote (PPQN) para o arquivo para o tempo (MS por semínima).

A pergunta é: fazer TEMPO muda na primeira faixa (faixa 0) aplicam-se a todas as outras faixas

Se sim, então enquanto eu sou analisar outras faixas (p.ex. faixa 4, que tem mensagens NOTE_ON e NOTE_OFF Estou interessado em) I terá que manter um dedo apontando para o TEMPO muda na pista 0 em paralelo. Está certo?

Obrigado,

Mark

Foi útil?

Solução

Em suma, sim. A primeira faixa contém a informação tempo que será aplicada para todo o arranjo, para que você aplicar essas mensagens para cada uma das faixas com o mesmo absoluta tempo. Desde todos os eventos usam um deslocamento em carrapatos, você precisa primeiro extrair as mensagens mudança de tempo, convertê-los em tempo absoluto, e, em seguida, como você está lendo nas outras faixas você vai aplicar essas mensagens com base nessa linha de tempo.

A partir da MIDI do fanático técnico centro de lavagem cerebral :

Em um arquivo de formato 0, as mudanças de tempo estão espalhados por todo o MTRK. No formato 1, o primeiro MTRK deve consistir apenas o tempo (e assinatura de tempo) eventos para que pudesse ser lido por algum dispositivo capaz de gerar um "tempo mapa". É melhor não colocar eventos MIDI neste MTRK. No formato 2, cada MTRK deve começar com pelo menos um ritmo inicial (e tempo de assinatura) evento.

Dito isto, alguns sequenciadores que quebrar essa regra e colocar eventos MIDI reais na primeira faixa ao lado de informações de tempo, uma vez que a norma não é tão específica a este respeito. Seu programa deve lidar com ambos os casos, uma vez que é provável encontrar arquivos MIDI em estado selvagem, que são formatados desta forma.

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