Manual do Usuário

Sintaxe MIDI

OnSong usa uma sintaxe baseada em texto para expressar comandos MIDI. Embora você possa usar os Eventos MIDI no Editor de Metadados, você também pode expressar comandos MIDI em texto.

Valores Delimitados

Primeiro e acima de tudo, vários comandos MIDI podem ser separados por vários caracteres incluindo: um caractere de tabulação, vírgula, ponto e vírgula, barra vertical ou nova linha. A vírgula é o delimitador mais comum. Por exemplo:

1.2:0@0, PC1.2:3@0, N67@1, START, SS8

Canal

Cada entrada pode conter um símbolo @. O valor numérico após o símbolo é o canal no qual o comando deve ser enviado. Como os canais em MIDI começam no zero, o canal um seria um zero (0), o canal dois um (1), etc.

Se nenhum símbolo @ for usado, o comando é enviado ou recebido em todos os canais.

Prefixos

Cada entrada da lista contém um prefixo. Este prefixo determina que tipo de comando MIDI enviar. Estes incluem:

  • PC ou Sem Prefixo é um evento de mudança de programa.
  • N é um evento de nota
  • CC é um evento de mudança de controle.
  • SS é um evento de seleção de música.
  • START é um comando de início.
  • STOP é um comando de parada.
  • CONTINUE é um comando de continuação.
  • F0 prefixo de uma mensagem SysEx.
  • WAIT implementa um atraso.

Valores

O valor do comando aparece logo antes do símbolo @ ou no final da entrada se nenhum @ for dado. Este é o valor da mudança de programa, mudança de controle, nota ou seleção de música com base no prefixo. No caso de entradas SysEx, o valor hexadecimal do SysEx é fornecido diretamente após o prefixo F0 que é usado como cabeçalho para todos os comandos SysEx.

Subvalores

Em alguns casos, informações adicionais são transmitidas no comando MIDI como subvalores. Por exemplo, MSB e LSB, bem como velocidade de valores de controle podem ser enviados desta forma. Isto é expresso através da adição de dois pontos na porção de valor. O subvalor tem contexto diferente dependendo do tipo de comando MIDI enviado:

  • Mudança de Programa tem subvalores alinhados com o MSB/LSB da mudança de programa. Estes valores são separados por um período com o MSB à esquerda e o LSB à direita.
  • Mudança de Controle tem o valor do controle definido usando isto. O número pode estar entre 0 e 127. Se omitido, o valor de 127 é inferido.
  • Evento de Nota tem um subvalor relacionado à velocidade em que a nota deve ser tocada. Isto pode ser definido para um valor numérico entre 0 e 127.

Exemplos

Vamos começar com uma mudança de programa simples. Neste cenário, usamos a mudança de programa 8 que também envia um MSB de 4 e um LSB de 2 no canal 1. O exemplo começa com a variação mais complexa e remove a seleção de banco e o canal para se tornar mais abrangente:

PC3.1:7@0, 3.1:7@0, 3:7@0, 3:7, 7@0, 7

Mudanças de controle são semelhantes, exceto que o lado esquerdo da sintaxe é o número da mudança de controle e o lado direito é um valor opcional. Se o valor não for fornecido, 127 será enviado. Enviaremos a Mudança de Controle 106 com um valor de 64 no canal 3.

CC105:63@2, CC105:63. CC105@2, CC105

Agora vamos dar uma olhada em eventos de nota. Queremos tocar C4 no canal 8 com velocidade de 75%, devemos inserir o seguinte porque OnSong começa a contar o MIDI C0 como 0 na escala de notas MIDI:

N60:95@7, N60@7, N60:95, N60

Novamente, é importante lembrar que à medida que os valores são removidos da sintaxe MIDI, a instrução MIDI se torna mais abrangente e menos específica. Por exemplo, a última versão do evento de nota enviará C4 com velocidade de 100% em todos os canais.

Para implementar um atraso entre outros eventos MIDI, use o comando WAIT com um número. O número pode ser um valor inteiro. Você pode definir segundos para aguardar como 1-10, ou definir em milissegundos. O seguinte mostra como aguardar 2 segundos, 10 segundos e meio segundo.

WAIT2, WAIT10, WAIT500
OnSong 2023 — Última atualização em January 17, 2018