ONSONG CHARTS AVAILABLE NOW! LEARN MORE HERE
Manual do Usuário
Sintaxe MIDI
O OnSong utiliza 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
Em primeiro lugar, vários comandos MIDI podem ser separados por diversos 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 será enviado. Como os canais em MIDI começam no zero, o canal um seria um zero (0), o canal dois um (1), e assim por diante.
Se nenhum símbolo @ for usado, o comando será enviado ou recebido em todos os canais.
Prefixos
Cada entrada na 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.
- NRPN é um número de parâmetro não registrado.
- 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.
- WAIT aguarda um período de tempo específico antes de enviar mais eventos.
- F0 prefacia uma mensagem SysEx.
- @ prefacia uma etiqueta global MIDI.
Valores
O valor do comando aparece logo antes do símbolo @ ou no final da entrada se nenhum @ for fornecido. 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 a velocidade dos valores de controle podem ser enviados desta forma. Isso é expresso através da adição de dois pontos na porção de valor. O subvalor tem um 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 ponto com o MSB à esquerda e o LSB à direita.
- Mudança de Controle tem o valor do controle definido usando isso. O número pode estar entre 0 e 127. Se omitido, o valor de 127 é inferido. Você também pode separar vários valores com um hífen para percorrer valores. Por exemplo, 127-0 fixará o valor de 127 entre os estados ligado e desligado.
- Evento de Nota tem um subvalor relacionado à velocidade na qual a nota deve ser reproduzida. Isso pode ser definido para um valor numérico entre 0 e 127. Você pode percorrer várias velocidades de nota separando-as com um hífen.
Exemplos
Vamos começar com uma simples mudança de programa. 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 disso e remove a seleção de banco e o canal para se tornar mais amplo:
PC3.1:7@0, 3.1:7@0, 3:7@0, 3:7, 7@0, 7
As mudanças de controle são semelhantes, exceto que o lado esquerdo da sintaxe é o número de 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 analisar os eventos de nota. Queremos tocar C4 no canal 8 com velocidade de 75%, entraríamos com o seguinte porque OnSong começa a contar MIDI C0 como 0 na escala de notas MIDI:
N60:95@7, N60@7, N60:95, N60
Novamente, é importante lembrar que conforme os valores são removidos da sintaxe MIDI, a instrução MIDI se torna mais ampla e menos específica. Por exemplo, a última versão do evento de nota enviará C4 com velocidade de 100% em todos os canais.
Também podemos atrasar MIDI adicionando um comando WAIT. O seguinte atrasará o MIDI por 2 segundos bem como 500 ms (meio segundo). Você pode especificar segundos de 1-10 segundos ou em milissegundos.
WAIT2, WAIT500
Por fim, podemos referenciar globais MIDI, que são listas pré-configuradas de eventos MIDI que podem ser referenciadas. Se você tiver um global MIDI com "on" como a etiqueta (sem aspas), então você pode referenciar esse global com o seguinte:
@on