Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

MIDI para órgãos digitais

Componentes e suprimentos

Arduino Mega 2560
× 1
Plug DIN Midi
× 1
Resistor 220 ohm
× 1
Cabo USB-A para B
× 1
Cabo AWM
× 1
Cabeçalho masculino 40 posição 1 linha (0,1 ")
× 1
Potenciômetro, slide
10K linear
× 1
IDC Socket
(Opcional)
× 1
Jumper Macho / Macho
(Opcional)
× 1

Ferramentas e máquinas necessárias

Ferro de soldar (genérico)
Arame de solda, sem chumbo
Fluxo de solda, solda
Decapador de fio, bico de alicate serrilhado
Alicate, corte lateral
Alicate, nariz chato

Aplicativos e serviços online

Arduino IDE

Sobre este projeto


Este projeto mostra como converter um console de órgão antigo para que ele possa ser usado para enviar mensagens MIDI de hardware dos manuais e pedais usando um único Arduino Mega.

O projeto começou como uma tentativa de enviar mensagens midi enquanto a geração de som original ainda estava intacta, no entanto, os circuitos originais provaram ser bastante difíceis de fazer engenharia reversa. Depois de passar algum tempo com o código, desenvolvi código para os manuais do tipo barrado e os do tipo matricial.

Notas:
  • Este projeto modifica o órgão para que a troca de teclado original não funcione mais.
  • Dentro de um órgão antigo, existem componentes elétricos que podem ser perigosos. Sempre trabalhe com o órgão desconectado e certifique-se de ter a experiência e as habilidades para trabalhar neste projeto com segurança. Em caso de dúvida, consulte um técnico em eletrônica local qualificado antes de tentar este projeto.
  • Os componentes dentro de órgãos antigos são geralmente muito antigos e à beira do mau funcionamento, portanto, qualquer modificação pode resultar em danos ao órgão. Seguir as instruções fornecidas aqui é feito por conta e risco do usuário, e o autor deste artigo não assume qualquer responsabilidade por qualquer dano que ocorra a um órgão, qualquer equipamento ou pessoas como resultado da tentativa de seguir essas instruções.





Etapa 1:examinar o órgão

  • Meu primeiro código postado assumiu que o órgão que você deseja modificar já tem um teclado matricial, com interruptores discretos e diodos já instalados. Desde a publicação dessa primeira versão, também desenvolvi um código que funcionará com designs de teclado de barramento. Simplesmente siga as instruções e use o código para a versão que se aplica a você (Matrixed vs. Bussed). Para ambos os projetos, no entanto, você precisará de diodos conectados a cada switch. Estes podem ser obtidos a baixo custo. No entanto, o código carregado para o Arduino Mega é diferente com o design em matriz e em barramento.
  • O órgão específico que foi midificado neste exemplo tem interruptores normalmente abertos (NO) para os teclados e interruptores normalmente fechados (NC) para os pedais. Usando um multímetro, você pode verificar os tipos de interruptores do órgão que você está planejando converter. Se o tipo de switch for diferente do que foi feito para este órgão, você terá que modificar o código para se adequar ao tipo de switch (exemplos dados no código)
  • Descubra como abrir o órgão para acessar os teclados e os contatos do pedalboard e procure um local adequado para conectar o Arduino dentro do órgão. Você pode ter que fazer furos ou instalar plugues para fornecer energia ao Arduino e para montar o plugue Midi. Neste exemplo, um plugue de energia de 3 pinos foi conectado a uma pequena caixa de energia dentro do órgão para fornecer energia ao Arduino, e um orifício foi feito e um plugue Midi DIN foi conectado ao orifício.
  • O órgão específico mostrado aqui tinha dois teclados com matrizes 6x11 e um pedalboard com uma matriz 6x7. Se você planeja seguir a rota da matriz e o órgão específico já tem uma matriz 8x8, o código e a fiação precisarão ser modificados para se adequar a uma matriz 8x8 ou a matriz original terá que ser reconectada para suportar uma matriz 6x11.





Etapa 2:Anexe o Arduino


-Meu Arduino Mega veio com uma pequena placa de plástico para montá-lo na madeira do órgão. Fixei-o com pequenos parafusos de madeira nº 4 e parafusos de máquina nº 4 para prender o Arduino à placa. É uma boa ideia colocar o Arduino primeiro, para que você possa estimar o comprimento de cada cabo. Nesse ponto, você também pode encontrar uma maneira de fornecer energia ao Arduino.





Etapa 3:preparar os cabos


Teclado matricial:

Cada teclado terá 61 interruptores. No exemplo usado aqui, cada teclado tinha 6 linhas, com um fio indo do primeiro terminal de cada switch ao primeiro terminal de cada outro switch a 6 switches. O segundo terminal da chave então foi para um diodo, depois para as colunas, das quais as chaves foram divididas em 11 colunas para os manuais e 7 colunas para os pedais. Para cada manual e pedais, então, dois comprimentos do fio AWM recomendado precisam ser cortados de modo que alcancem de cada divisão até a placa Arduino, de preferência seguindo um caminho que pode ser bem organizado e sempre deixando mais margem de manobra do que o necessário. Para as colunas, é preferível que o cabo estenda o comprimento do teclado ou pedalboard antes de ir para o Arduino. Meça cada comprimento do cabo e corte no tamanho certo. Usando as pinças pequenas, separe os fios individuais do cabo nas pontas e retire o plástico que cobre as pontas do fio usando os separadores de fio.

Teclado com barramento:

O teclado pode ser dividido em 6 cabos AWM, com um fio comum para o 61º switch. Separe os fios individuais do cabo nas pontas e, em seguida, remova o plástico que cobre as pontas usando os descascadores de fio.





Etapa 4:soldar as extremidades do cabo nos conectores machos


Tanto os teclados matriciais quanto os de barramento:Solde as extremidades do cabo apropriado aos pinos do conector macho ou, se estiver usando a placa do terminal de parafuso, conecte os cabos apropriados aos terminais de parafuso.





Etapa 5:solde a outra extremidade do cabo nas chaves


Teclado matricial:

-Se o órgão já tiver cada contato conectado, será necessário dessoldar ou prender os cabos originais para que o projeto funcione. Se o órgão tem uma matriz 6x11, faz sentido preservar os fios de linha que vão de cada switch para o próximo switch 6 para cima. Portanto, remova os fios da fileira que vão do primeiro conjunto de seis para o computador original e solde os fios das 6 fileiras na posição onde os outros 6 costumavam estar. Para as colunas, se eles já tiverem diodos no lugar, prenda ou desolder o cabo que vai da outra extremidade dos diodos para o computador original e, em seguida, solde o cabo da coluna que vai para o Arduino em seu lugar. Usando abraçadeiras plásticas, você pode organizar os cabos de forma que eles passem perfeitamente por onde passam os outros cabos do órgão. Para o pedalboard no órgão ilustrado acima, o painel na frente do órgão contendo as chaves reed teve que ser removido removendo os parafusos que os prendiam, e os cabos encaminhados através do pequeno orifício no centro do painel frontal do órgão.

Teclado com barramento:

No código do teclado com barramento, é necessário soldar um diodo ao lado sem barramento de cada chave, depois soldá-lo a um dos 10 fios do cabo, repetir para cada um dos 6 cabos e repetir para o último fio (# 61)

Etapa 6:solde o resistor no plugue MIDI e solde os outros cabos no Arduino.





Etapa 7:conecte os cabeçalhos ao Arduino


- Conecte todos os cabeçalhos no Arduino, conforme mostrado no esquema.

- Uma solução alternativa para soldar fios nos conectores machos é comprar alguns soquetes IDC de dez pinos e conectá-los às extremidades dos cabos AWM e, em seguida, usar jumpers macho para macho para conectar ao Arduino. Embora esta solução não seja tão permanente quanto a soldagem, é aconselhável se você pretende tentar modificar o código postado, caso seja necessário religar.





Etapa 8:faça upload do software para o Arduino


- Conecte um cabo USB do Arduino ao seu computador e certifique-se de ter o software Arduino instalado no seu computador. Selecione a versão do código que se aplica a você (Matrix ou Bus). Execute o software Arduino e copie e cole o código fornecido em um novo esboço em branco. Certifique-se de que o Arduino esteja conectado via USB serial e clique no botão "Upload" na parte superior do esboço.





Etapa 9:teste

  • Se ainda não o fez, conecte seu adaptador MIDI ao computador e conecte a saída MIDI do órgão ao adaptador MIDI.
  • Usando um software para monitorar sinais de midi, certifique-se de que cada tecla e pedal enviem a mensagem MIDI apropriada ao pressionar a tecla e pressione cada tecla.
  • Se você planeja usar sem estar conectado ao seu computador, pode conectar uma pequena fonte de alimentação de 5 V à porta de alimentação do Arduino ou conectar um plugue de alimentação USB na extremidade do cabo USB usado e conectá-lo em uma tomada para alimentar o Arduino.





Notas:

  • O código postado para teclados com barramento ainda não foi testado, mas espera-se que funcione. Por favor, poste nos comentários se você tentou o código do barramento e encontrou algum problema com ele.
  • Observe que para a versão com barramento do código, são necessários diodos para que funcione corretamente. Além disso, ao soldar os diodos nas chaves, é importante soldar o diodo com o pólo negativo voltado para a chave. Para o projeto matricial, o pólo negativo do diodo deve estar longe da chave.
  • Além de adicionar o design do barramento, também atualizei o design original e o código para incluir potenciômetros, como os usados ​​em pedais de expressão.
  • Para que o design do barramento funcione corretamente no pino 13, é necessário desabilitar de alguma forma o LED embutido do Arduino. Para fazer isso, você pode removê-lo usando dois ferros de soldar ou um alicate de ponta fina para esmagá-lo com cuidado.
  • Embora o design do barramento funcione para muitos órgãos com um teclado do barramento, ele pode não funcionar de forma confiável se o barramento for feito de material de "bronze fosforoso". Conectar todos os barramentos de um único manual e todos os contatos de uma única chave ajudará a evitar o contato intermitente, mas para barramentos de bronze fosforoso, é recomendado o uso de codificação de 12 V (o que este projeto não seria capaz de façam).





Hardware de pedal de expressão para potenciômetros


No futuro, espero adicionar mais detalhes sobre isso, mas por agora irei explicar brevemente o design visto acima. A conexão com o pedal de expressão é um suporte em "L" barato, disponível em uma loja de ferragens local. Ele é conectado a um suporte existente aqui, mas um segundo suporte L conectado diretamente ao pedal também pode ser usado. Ele se articula em um parafuso de máquina que é mantido levemente solto por meio de uma porca de trava e duas arruelas. Na foto, usei um parafuso de máquina muito longo, mas não é necessário um parafuso tão longo, simplesmente era o que eu tinha em mãos. Para a haste de metal, usei "solda JB" para prender um parafuso de olhal em uma extremidade e usei um parafuso de máquina de tamanho apropriado para prendê-lo ao suporte "L" na outra extremidade.

Para o suporte do potenciômetro propriamente dito, comprei algumas folhas de acrílico transparente, cortei-as com uma faca de hobby e, em seguida, quebrei ao longo da linha usando um alicate e grampos. Para prender o potenciômetro, fiz um pequeno pedaço de acrílico para elevá-lo da parte maior, lixei a superfície do pedaço menor de acrílico e também lixei a superfície do potenciômetro a ser montado e a superfície da peça maior para em que tudo seria anexado, em seguida aplicada a solda JB e usando uma pequena braçadeira para segurar tudo junto até a solda JB secar. Os furos nas peças de acrílico foram feitos com furadeira elétrica e brocas padrão.

A parte inferior da peça maior de acrílico é presa a uma pequena dobradiça de móvel usando parafusos de máquina nº 4, e a outra extremidade da dobradiça de móvel é presa à parte inferior do órgão usando parafusos curtos de madeira nº 4. Fiz um suporte de acrílico para segurar a dobradiça da mobília fora do piso de madeira, mas dependendo do desenho da dobradiça da mobília, isso pode não ser necessário.

O bloco branco por onde a haste desliza é um bloco PFTE que comprei de um fornecedor de peças de robôs. A peça foi cortada da peça maior com uma serra artesanal e os três furos feitos com uma furadeira elétrica e brocas de tamanhos diferentes. O bloco de PFTE foi preso ao suporte de acrílico com parafusos de máquina.





Instruções detalhadas para o suporte do pedal de expressão:


(Atualizado em 9 de dezembro de 2021)

-Folha de acrílico de 8 x 10 polegadas

-Teflon Block

- Haste de alumínio (1/4 polegada, disponível na loja local de ferragens ou metal)

-JB Weld

-Potenciômetro linear

- Pequena dobradiça para móveis

- Cinta pequena para móveis

-Parafuso de olhal pequeno

- Parafusos de madeira curtos # 4

- Hardware sortido:

- Arruela de bloqueio X1 (de preferência de teflon) e parafuso de máquina correspondente para anexar ao pedal (diâmetro e comprimento para corresponder ao pedal atual)

- Parafusos da máquina x2, arruelas x4 e porcas x2 para fixar o teflon à folha de acrílico (diâmetro e comprimento dependendo do diâmetro do orifício perfurado)

- Parafuso da máquina para prender a cinta à haste de alumínio 1/4 (diâmetro dependendo do tamanho do orifício interno)

- Parafusos da máquina x2, arruelas x4 e porcas x2 para prender a dobradiça na parte inferior da folha de acrílico.

Ferramentas:

- Faca de passatempo

- Borda reta

- Chave de fenda / chave de fenda normal de joalheiro (joalheiros para os parafusos menores)

- Chave inglesa (para apertar os parafusos e porcas da máquina)

-Pliers

- Broca elétrica e brocas.

-Hobby viu

- Tornos de bancada

-Braçadeira de madeira pequena

- Lixa de grão fino

- Palitos de picolé e papelão de rascunho.

-Pano úmido

Instruções:

-Examine o pedal atual. Se houver um orifício sobressalente no suporte de montagem, você pode usá-lo, caso contrário, pode usar um orifício existente que está sendo usado e obter um parafuso de máquina mais longo do que o atual, mas que ainda caberá no orifício.

-Certifique-se de que a base de madeira do órgão esteja livre de quaisquer componentes ou componentes eletrônicos e mova-os se necessário.

- Desembrulhe a folha de acrílico e, usando a lâmina reta e a faca de hobby, corte a folha em ambos os lados em um retângulo de 3 "por 4,5", em seguida, quebre ao longo das linhas de pontuação para cortá-la usando o torno de bancada e o alicate (certifique-se usar proteção para os olhos!). Corte também uma peça de 3 ”por 0,5” e uma peça de 2,4 ”por 0,3”.

-Corte o bloco de teflon usando a serra de passatempo de aproximadamente 3/4 "da extremidade para criar um bloco de 3 'por 1,5' por 3/4 de polegada.

- Faça 2 furos ao longo da borda inferior da folha de acrílico grande para que eles correspondam a um lado da dobradiça da mobília e faça dois furos no lado de 3 x 1,5 polegadas do bloco de teflon para que não atrapalhem o caminho a barra de alumínio vai passar por ele. Faça 2 furos que correspondam aos furos no bloco de teflon se o bloco estiver posicionado no topo da folha de acrílico grande, oposto aos furos previamente perfurados, com a borda do bloco de teflon bem na borda do acrílico. Faça também 2 furos na peça de 2,4 ”por 0,3” para que corresponda aos orifícios do outro lado da dobradiça.

- Lixe suavemente uma superfície do potenciômetro, bem como a área da folha de acrílico grande a ser colada, e ambas as superfícies da peça de acrílico 3x0,5 ”. Limpe as superfícies com um pano úmido.

-Misturar a solda JB sobre um pedaço de papelão usando um palito de picolé e, em seguida, aplicar na superfície preparada da folha de acrílico. Adicione a peça 3x0,5 ”, depois adicione mais solda JB e, em seguida, o potenciômetro, certificando-se de que a solda JB esteja fixada em uma superfície lixada. Prenda suavemente o conjunto com uma pequena braçadeira de madeira e deixe curar por 24 horas.

-Faça um orifício ligeiramente maior do que 1/4 de polegada usando uma broca de 1/4 de polegada, movendo a broca enquanto ela está no bloco de um lado de 3/4 x 3 polegadas do bloco de teflon para o outro. Perfure de forma que a linha da haste de alumínio coincida com a linha de movimento do potenciômetro.

-Corte a haste de alumínio de 1/4 de polegada de modo que tenha aproximadamente o comprimento correto da parte inferior do potenciômetro até o pedal de expressão quando empurrado totalmente para baixo.

- Depois que a solda JB estiver curada, prenda a dobradiça e o bloco de teflon na lateral da placa de acrílico grande usando parafusos de máquina, arruelas e porcas. Coloque o parafuso com olhal na parte móvel do potenciômetro e prenda-o à haste de alumínio de 1/4 de polegada que se move através do bloco de teflon. Se o ajuste for um pouco solto, você também pode soldar o parafuso com olhal na haste de alumínio ao aplicar a solda JB em uma etapa anterior. Nesse caso, você terá que colocar o parafuso de olhal no potenciômetro, movê-lo através do bloco de teflon e, em seguida, prender o bloco de teflon à placa de acrílico com parafusos de máquina.

- Segurando o parafuso com olhal na posição correta com um alicate, prenda a braçadeira de móvel à outra extremidade da haste de alumínio de 1/4 de polegada usando um parafuso de máquina do tamanho correto. Certifique-se de que o parafuso com olhal esteja na orientação correta para o suporte do móvel quando for apertado.

-Se houver um orifício livre no suporte do potenciômetro, coloque um novo parafuso de máquina através dele, em seguida, coloque uma arruela de pressão de teflon e aperte até que o suporte de móvel se mova livremente. Se estiver usando um orifício existente que está atualmente ocupado por um parafuso de máquina anterior, remova o parafuso antigo e coloque um novo parafuso mais longo, fixe-o como antes e, no comprimento extra, adicione o suporte de móvel e uma arruela de pressão de teflon.

- Mova a parte inferior da dobradiça para frente e para trás na parte inferior interna do órgão até que esteja em uma posição onde a haste de alumínio de 1/4 de polegada esteja alinhada em linha reta, e com a menor placa de acrílico no lugar, o movimento do pedal aproxima melhor o movimento do potenciômetro. Fixe a parte inferior do suporte do potenciômetro na parte inferior do órgão usando os 2 pequenos parafusos de madeira, certificando-se de que a placa de acrílico esteja entre a dobradiça e a madeira (isso garante o deslocamento adequado da dobradiça).





Nota final:


O Arduino Project Hub não parece ter notificação para postagens e perguntas colocadas aqui. Se desejar uma resposta mais rápida à sua pergunta, você pode publicá-la nesta página do fórum, que me notificará.

Código

  • Código do teclado matricial
  • Código de teclado com barramento
Código do teclado matricial Arduino
Código para fazer upload para o Arduino quando você está seguindo o esquema do teclado matricial.
 // Nome:Arduino Mega Midi Controller v21 // Criado em:4 de fevereiro de 2021 // Autor:Larason2 // Agradecimentos:Bald Engineer, Amanda Ghassaei, jeffb42 , GrumpyMikebyte keysA [11] [6]; byte keysB [11] [6]; byte keysC [7] [6]; byte lastA [11] [6]; byte lastB [11] [6]; byte lastC [7] ] [6]; int noteOn1 =144; int noteOff1 =128; int noteOn2 =145; int noteOff2 =129; int noteOn3 =146; int noteOff3 =130; velocidade int =100; int chan6 =181; int chan7 =182; int Exp =11; int LastPot6 =1; int LastPot7 =1; void setup () {// Iniciar Serial Serial.begin (31250); // Inicializa o teclado A pinMode (2, INPUT); pinMode (22, INPUT); pinMode (24, INPUT); pinMode (26, INPUT); pinMode (28, INPUT); pinMode (30, INPUT); pinMode (32, INPUT); pinMode (34, INPUT); pinMode (36, INPUT); pinMode (38, INPUT); pinMode (40, INPUT); pinMode (42, INPUT); pinMode (44, INPUT); pinMode (46, INPUT); pinMode (48, INPUT); pinMode (50, INPUT); pinMode (52, INPUT); // Inicializa o teclado B pinMode (3, INPUT); pinMode (23, INPUT); pinMode (25, INPUT); pinMode (27, INPUT); pinMode (29, INPUT); pinMode (31, INPUT); pinMode (33, INPUT); pinMode (35, INPUT); pinMode (37, INPUT); pinMode (39, INPUT); pinMode (41, INPUT); pinMode (43, INPUT); pinMode (45, INPUT); pinMode (47, INPUT); pinMode (49, INPUT); pinMode (51, INPUT); pinMode (52, INPUT); // Inicializa o teclado C pinMode (A2, INPUT); pinMode (A3, INPUT); pinMode (A4, INPUT); pinMode (A5, INPUT); pinMode (A6, INPUT); pinMode (A7, INPUT); pinMode (A8, INPUT); pinMode (A9, INPUT); pinMode (A10, INPUT); pinMode (A11, INPUT); pinMode (A12, INPUT); pinMode (A13, INPUT); pinMode (A14, INPUT);} void loop () {// Ler teclado A pinMode (22, INPUT_PULLUP); pinMode (24, INPUT_PULLUP); pinMode (26, INPUT_PULLUP); pinMode (28, INPUT_PULLUP); pinMode (30, INPUT_PULLUP); pinMode (2, INPUT_PULLUP); pinMode (32, SAÍDA); digitalWrite (32, BAIXO); keysA [0] [0] =digitalRead (2); pinMode (32, INPUT); pinMode (34, SAÍDA); digitalWrite (34, BAIXO); keysA [1] [0] =digitalRead (22); keysA [1] [1] =digitalRead (24); keysA [1] [2] =digitalRead (26); keysA [1] [3] =digitalRead (28); keysA [1] [4] =digitalRead (30); keysA [1] [5] =digitalRead (2); pinMode (34, INPUT); pinMode (36, SAÍDA); digitalWrite (36, BAIXO); keysA [2] [0] =digitalRead (22); keysA [2] [1] =digitalRead (24); keysA [2] [2] =digitalRead (26); keysA [2] [3] =digitalRead (28); keysA [2] [4] =digitalRead (30); keysA [2] [5] =digitalRead (2); pinMode (36, INPUT); pinMode (38, SAÍDA); digitalWrite (38, BAIXO); keysA [3] [0] =digitalRead (22); keysA [3] [1] =digitalRead (24); keysA [3] [2] =digitalRead (26); keysA [3] [3] =digitalRead (28); keysA [3] [4] =digitalRead (30); keysA [3] [5] =digitalRead (2); pinMode (38, INPUT); pinMode (40, SAÍDA); digitalWrite (40, BAIXO); keysA [4] [0] =digitalRead (22); keysA [4] [1] =digitalRead (24); keysA [4] [2] =digitalRead (26); keysA [4] [3] =digitalRead (28); keysA [4] [4] =digitalRead (30); keysA [4] [5] =digitalRead (2); pinMode (40, INPUT); pinMode (42, SAÍDA); digitalWrite (42, BAIXO); keysA [5] [0] =digitalRead (22); keysA [5] [1] =digitalRead (24); keysA [5] [2] =digitalRead (26); keysA [5] [3] =digitalRead (28); keysA [5] [4] =digitalRead (30); keysA [5] [5] =digitalRead (2); pinMode (42, INPUT); pinMode (44, SAÍDA); digitalWrite (44, BAIXO); keysA [6] [0] =digitalRead (22); keysA [6] [1] =digitalRead (24); keysA [6] [2] =digitalRead (26); keysA [6] [3] =digitalRead (28); keysA [6] [4] =digitalRead (30); keysA [6] [5] =digitalRead (2); pinMode (44, INPUT); pinMode (46, SAÍDA); digitalWrite (46, BAIXO); keysA [7] [0] =digitalRead (22); keysA [7] [1] =digitalRead (24); keysA [7] [2] =digitalRead (26); keysA [7] [3] =digitalRead (28); keysA [7] [4] =digitalRead (30); keysA [7] [5] =digitalRead (2); pinMode (46, INPUT); pinMode (48, SAÍDA); digitalWrite (48, BAIXO); keysA [8] [0] =digitalRead (22); keysA [8] [1] =digitalRead (24); keysA [8] [2] =digitalRead (26); keysA [8] [3] =digitalRead (28); keysA [8] [4] =digitalRead (30); keysA [8] [5] =digitalRead (2); pinMode (48, INPUT); pinMode (50, SAÍDA); digitalWrite (50, BAIXO); keysA [9] [0] =digitalRead (22); keysA [9] [1] =digitalRead (24); keysA [9] [2] =digitalRead (26); keysA [9] [3] =digitalRead (28); keysA [9] [4] =digitalRead (30); keysA [9] [5] =digitalRead (2); pinMode (50, INPUT); pinMode (52, SAÍDA); digitalWrite (52, BAIXO); keysA [10] [0] =digitalRead (22); keysA [10] [1] =digitalRead (24); keysA [10] [2] =digitalRead (26); keysA [10] [3] =digitalRead (28); keysA [10] [4] =digitalRead (30); keysA [10] [5] =digitalRead (2); pinMode (52, INPUT); pinMode (22, INPUT); pinMode (24, INPUT); pinMode (26, INPUT); pinMode (28, INPUT); pinMode (30, INPUT); pinMode (2, INPUT); // Lê o teclado B pinMode (23, INPUT_PULLUP); pinMode (25, INPUT_PULLUP); pinMode (27, INPUT_PULLUP); pinMode (29, INPUT_PULLUP); pinMode (31, INPUT_PULLUP); pinMode (3, INPUT_PULLUP); pinMode (33, SAÍDA); digitalWrite (33, BAIXO); keysB [0] [0] =digitalRead (3); pinMode (33, INPUT); pinMode (35, SAÍDA); digitalWrite (35, BAIXO); keysB [1] [0] =digitalRead (23); keysB [1] [1] =digitalRead (25); keysB [1] [2] =digitalRead (27); keysB [1] [3] =digitalRead (29); keysB [1] [4] =digitalRead (31); keysB [1] [5] =digitalRead (3); pinMode (35, INPUT); pinMode (37, SAÍDA); digitalWrite (37, BAIXO); keysB [2] [0] =digitalRead (23); keysB [2] [1] =digitalRead (25); keysB [2] [2] =digitalRead (27); keysB [2] [3] =digitalRead (29); keysB [2] [4] =digitalRead (31); keysB [2] [5] =digitalRead (3); pinMode (37, INPUT); pinMode (39, SAÍDA); digitalWrite (39, BAIXO); keysB [3] [0] =digitalRead (23); keysB [3] [1] =digitalRead (25); teclasB [3] [2] =digitalRead (27); keysB [3] [3] =digitalRead (29); keysB [3] [4] =digitalRead (31); keysB [3] [5] =digitalRead (3); pinMode (39, INPUT); pinMode (41, SAÍDA); digitalWrite (41, BAIXO); keysB [4] [0] =digitalRead (23); keysB [4] [1] =digitalRead (25); teclasB [4] [2] =digitalRead (27); keysB [4] [3] =digitalRead (29); keysB [4] [4] =digitalRead (31); keysB [4] [5] =digitalRead (3); pinMode (41, INPUT); pinMode (43, SAÍDA); digitalWrite (43, BAIXO); keysB [5] [0] =digitalRead (23); keysB [5] [1] =digitalRead (25); keysB [5] [2] =digitalRead (27); keysB [5] [3] =digitalRead (29); keysB [5] [4] =digitalRead (31); keysB [5] [5] =digitalRead (3); pinMode (43, INPUT); pinMode (45, SAÍDA); digitalWrite (45, BAIXO); keysB [6] [0] =digitalRead (23); keysB [6] [1] =digitalRead (25); teclasB [6] [2] =digitalRead (27); keysB [6] [3] =digitalRead (29); keysB [6] [4] =digitalRead (31); keysB [6] [5] =digitalRead (3); pinMode (45, INPUT); pinMode (47, SAÍDA); digitalWrite (47, BAIXO); keysB [7] [0] =digitalRead (23); keysB [7] [1] =digitalRead (25); keysB [7] [2] =digitalRead (27); keysB [7] [3] =digitalRead (29); keysB [7] [4] =digitalRead (31); keysB [7] [5] =digitalRead (3); pinMode (47, INPUT); pinMode (49, SAÍDA); digitalWrite (49, BAIXO); keysB [8] [0] =digitalRead (23); keysB [8] [1] =digitalRead (25); teclasB [8] [2] =digitalRead (27); keysB [8] [3] =digitalRead (29); keysB [8] [4] =digitalRead (31); keysB [8] [5] =digitalRead (3); pinMode (49, INPUT); pinMode (51, SAÍDA); digitalWrite (51, BAIXO); teclasB [9] [0] =digitalRead (23); teclasB [9] [1] =digitalRead (25); teclasB [9] [2] =digitalRead (27); teclasB [9] [3] =digitalRead (29); teclasB [9] [4] =digitalRead (31); teclasB [9] [5] =digitalRead (3); pinMode (51, INPUT); pinMode (53, SAÍDA); digitalWrite (53, BAIXO); keysB [10] [0] =digitalRead (23); keysB [10] [1] =digitalRead (25); teclasB [10] [2] =digitalRead (27); keysB [10] [3] =digitalRead (29); keysB [10] [4] =digitalRead (31); keysB [10] [5] =digitalRead (3); pinMode (53, INPUT); pinMode (23, INPUT); pinMode (25, INPUT); pinMode (27, INPUT); pinMode (29, INPUT); pinMode (31, INPUT); pinMode (3, INPUT); // Leitura do teclado C // Define os pinos da linha para ler pinMode (A3, INPUT_PULLUP); pinMode (A4, INPUT_PULLUP); pinMode (A5, INPUT_PULLUP); pinMode (A6, INPUT_PULLUP); pinMode (A7, INPUT_PULLUP); pinMode (A2, INPUT_PULLUP); pinMode (A8, OUTPUT); digitalWrite (A8, LOW); keysC [0] [0] =digitalRead (A2); pinMode (A8, INPUT); pinMode (A9, OUTPUT); digitalWrite (A9, LOW); keysC [1] [0] =digitalRead (A3); keysC [1] [1] =digitalRead (A4); keysC [1] [2] =digitalRead (A5); keysC [1] [3] =digitalRead (A6); keysC [1] [4] =digitalRead (A7); keysC [1] [5] =digitalRead (A2); pinMode (A9, INPUT); pinMode (A10, OUTPUT); digitalWrite (A10, LOW); keysC [2] [0] =digitalRead (A3); keysC [2] [1] =digitalRead (A4); keysC [2] [2] =digitalRead (A5); keysC [2] [3] =digitalRead (A6); keysC [2] [4] =digitalRead (A7); keysC [2] [5] =digitalRead (A2); pinMode (A10, INPUT); pinMode (A11, OUTPUT); digitalWrite (A11, LOW); keysC [3] [0] =digitalRead (A3); keysC [3] [1] =digitalRead (A4); keysC [3] [2] =digitalRead (A5); keysC [3] [3] =digitalRead (A6); keysC [3] [4] =digitalRead (A7); keysC [3] [5] =digitalRead (A2); pinMode (A11, INPUT); pinMode (A12, OUTPUT); digitalWrite (A12, LOW); keysC [4] [0] =digitalRead (A3); keysC [4] [1] =digitalRead (A4); keysC [4] [2] =digitalRead (A5); keysC [4] [3] =digitalRead (A6); keysC [4] [4] =digitalRead (A7); keysC [4] [5] =digitalRead (A2); pinMode (A12, INPUT); pinMode (A13, OUTPUT); digitalWrite (A13, LOW); keysC [5] [0] =digitalRead (A3); keysC [5] [1] =digitalRead (A4); keysC [5] [2] =digitalRead (A5); keysC [5] [3] =digitalRead (A6); keysC [5] [4] =digitalRead (A7); keysC [5] [5] =digitalRead (A2); pinMode (A13, INPUT); pinMode (A14, OUTPUT); digitalWrite (A14, LOW); keysC [6] [0] =digitalRead (A3); pinMode (A14, INPUT); pinMode (A3, INPUT); pinMode (A4, INPUT); pinMode (A5, INPUT); pinMode (A6, INPUT); pinMode (A7, INPUT); pinMode (A2, INPUT); // Inverte os dados do teclado C // (para interruptores normalmente fechados) // Coluna 1 if (keysC [0] [0] ==0) {keysC [0] [0] =1; } else if (keysC [0] [0] ==1) {keysC [0] [0] =0; } // Coluna 2 if (keysC [1] [0] ==0) {keysC [1] [0] =1; } else if (keysC [1] [0] ==1) {keysC [1] [0] =0; } if (keysC [1] [1] ==0) {keysC [1] [1] =1; } else if (keysC [1] [1] ==1) {keysC [1] [1] =0; } if (keysC [1] [2] ==0) {keysC [1] [2] =1; } else if (keysC [1] [2] ==1) {keysC [1] [2] =0; } if (keysC [1] [3] ==0) {keysC [1] [3] =1; } else if (keysC [1] [3] ==1) {keysC [1] [3] =0; } if (keysC [1] [4] ==0) {keysC [1] [4] =1; } else if (keysC [1] [4] ==1) {keysC [1] [4] =0; } if (keysC [1] [5] ==0) {keysC [1] [5] =1; } else if (keysC[1][5] ==1) { keysC[1][5] =0; } //Column 3 if (keysC[2][0] ==0) { keysC[2][0] =1; } else if (keysC[2][0] ==1) { keysC[2][0] =0; } if (keysC[2][1] ==0) { keysC[2][1] =1; } else if (keysC[2][1] ==1) { keysC[2][1] =0; } if (keysC[2][2] ==0) { keysC[2][2] =1; } else if (keysC[2][2] ==1) { keysC[2][2] =0; } if (keysC[2][3] ==0) { keysC[2][3] =1; } else if (keysC[2][3] ==1) { keysC[2][3] =0; } if (keysC[2][4] ==0) { keysC[2][4] =1; } else if (keysC[2][4] ==1) { keysC[2][4] =0; } if (keysC[2][5] ==0) { keysC[2][5] =1; } else if (keysC[2][5] ==1) { keysC[2][5] =0; } //Column 4 if (keysC[3][0] ==0) { keysC[3][0] =1; } else if (keysC[3][0] ==1) { keysC[3][0] =0; } if (keysC[3][1] ==0) { keysC[3][1] =1; } else if (keysC[3][1] ==1) { keysC[3][1] =0; } if (keysC[3][2] ==0) { keysC[3][2] =1; } else if (keysC[3][2] ==1) { keysC[3][2] =0; } if (keysC[3][3] ==0) { keysC[3][3] =1; } else if (keysC[3][3] ==1) { keysC[3][3] =0; } if (keysC[3][4] ==0) { keysC[3][4] =1; } else if (keysC[3][4] ==1) { keysC[3][4] =0; } if (keysC[3][5] ==0) { keysC[3][5] =1; } else if (keysC[3][5] ==1) { keysC[3][5] =0; } //Column 5 if (keysC[4][0] ==0) { keysC[4][0] =1; } else if (keysC[4][0] ==1) { keysC[4][0] =0; } if (keysC[4][1] ==0) { keysC[4][1] =1; } else if (keysC[4][1] ==1) { keysC[4][1] =0; } if (keysC[4][2] ==0) { keysC[4][2] =1; } else if (keysC[4][2] ==1) { keysC[4][2] =0; } if (keysC[4][3] ==0) { keysC[4][3] =1; } else if (keysC[4][3] ==1) { keysC[4][3] =0; } if (keysC[4][4] ==0) { keysC[4][4] =1; } else if (keysC[4][4] ==1) { keysC[4][4] =0; } if (keysC[4][5] ==0) { keysC[4][5] =1; } else if (keysC[4][5] ==1) { keysC[4][5] =0; } //Column 6 if (keysC[5][0] ==0) { keysC[5][0] =1; } else if (keysC[5][0] ==1) { keysC[5][0] =0; } if (keysC[5][1] ==0) { keysC[5][1] =1; } else if (keysC[5][1] ==1) { keysC[5][1] =0; } if (keysC[5][2] ==0) { keysC[5][2] =1; } else if (keysC[5][2] ==1) { keysC[5][2] =0; } if (keysC[5][3] ==0) { keysC[5][3] =1; } else if (keysC[5][3] ==1) { keysC[5][3] =0; } if (keysC[5][4] ==0) { keysC[5][4] =1; } else if (keysC[5][4] ==1) { keysC[5][4] =0; } if (keysC[5][5] ==0) { keysC[5][5] =1; } else if (keysC[5][5] ==1) { keysC[5][5] =0; } //Column 7 if (keysC[6][0] ==0) { keysC[6][0] =1; } else if (keysC[6][0] ==1) { keysC[6][0] =0; } //Write Keyboard A //A36 if ((keysA[0][0] ==0) and (lastA[0][0] ==0)) { MidiSend(noteOn1, 36, velocity); lastA[0][0] =7; } if ((keysA[0][0] ==1) and (lastA[0][0] ==7)) { MidiSend(noteOff1, 36, velocity); lastA[0][0] =0; } //A37 if ((keysA[1][0] ==0) and (lastA[1][0] ==0)) { MidiSend(noteOn1, 37, velocity); lastA[1][0] =7; } if ((keysA[1][0] ==1) and (lastA[1][0] ==7)) { MidiSend(noteOff1, 37, velocity); lastA[1][0] =0; } //A38 if ((keysA[1][1] ==0) and (lastA[1][1] ==0)) { MidiSend(noteOn1, 38, velocity); lastA[1][1] =7; } //Write Midi Note Off if ((keysA[1][1] ==1) and (lastA[1][1] ==7)) { MidiSend(noteOff1, 38, velocity); lastA[1][1] =0; } //A39 if ((keysA[1][2] ==0) and (lastA[1][2] ==0)) { MidiSend(noteOn1, 39, velocity); lastA[1][2] =7; } //Write Midi Note Off if ((keysA[1][2] ==1) and (lastA[1][2] ==7)) { MidiSend(noteOff1, 39, velocity); lastA[1][2] =0; } //A40 if ((keysA[1][3] ==0) and (lastA[1][3] ==0)) { MidiSend(noteOn1, 40, velocity); lastA[1][3] =7; } //Write Midi Note Off if ((keysA[1][3] ==1) and (lastA[1][3] ==7)) { MidiSend(noteOff1, 40, velocity); lastA[1][3] =0; } //A41 if ((keysA[1][4] ==0) and (lastA[1][4] ==0)) { MidiSend(noteOn1, 41, velocity); lastA[1][4] =7; } //Write Midi Note Off if ((keysA[1][4] ==1) and (lastA[1][4] ==7)) { MidiSend(noteOff1, 41, velocity); lastA[1][4] =0; } //A42 if ((keysA[1][5] ==0) and (lastA[1][5] ==0)) { MidiSend(noteOn1, 42, velocity); lastA[1][5] =7; } //Write Midi Note Off if ((keysA[1][5] ==1) and (lastA[1][5] ==7)) { MidiSend(noteOff1, 42, velocity); lastA[1][5] =0; } //A43 if ((keysA[2][0] ==0) and (lastA[2][0] ==0)) { MidiSend(noteOn1, 43, velocity); lastA[2][0] =7; } //Write Midi Note Off if ((keysA[2][0] ==1) and (lastA[2][0] ==7)) { MidiSend(noteOff1, 43, velocity); lastA[2][0] =0; } //A44 if ((keysA[2][1] ==0) and (lastA[2][1] ==0)) { MidiSend(noteOn1, 44, velocity); lastA[2][1] =7; } //Write Midi Note Off if ((keysA[2][1] ==1) and (lastA[2][1] ==7)) { MidiSend(noteOff1, 44, velocity); lastA[2][1] =0; } //A45 if ((keysA[2][2] ==0) and (lastA[2][2] ==0)) { MidiSend(noteOn1, 45, velocity); lastA[2][2] =7; } //Write Midi Note Off if ((keysA[2][2] ==1) and (lastA[2][2] ==7)) { MidiSend(noteOff1, 45, velocity); lastA[2][2] =0; } //A46 if ((keysA[2][3] ==0) and (lastA[2][3] ==0)) { MidiSend(noteOn1, 46, velocity); lastA[2][3] =7; } //Write Midi Note Off if ((keysA[2][3] ==1) and (lastA[2][3] ==7)) { MidiSend(noteOff1, 46, velocity); lastA[2][3] =0; } //A47 if ((keysA[2][4] ==0) and (lastA[2][4] ==0)) { MidiSend(noteOn1, 47, velocity); lastA[2][4] =7; } //Write Midi Note Off if ((keysA[2][4] ==1) and (lastA[2][4] ==7)) { MidiSend(noteOff1, 47, velocity); lastA[2][4] =0; } //A48 if ((keysA[2][5] ==0) and (lastA[2][5] ==0)) { MidiSend(noteOn1, 48, velocity); lastA[2][5] =7; } //Write Midi Note Off if ((keysA[2][5] ==1) and (lastA[2][5] ==7)) { MidiSend(noteOff1, 48, velocity); lastA[2][5] =0; } //A49 if ((keysA[3][0] ==0) and (lastA[3][0] ==0)) { MidiSend(noteOn1, 49, velocity); lastA[3][0] =7; } //Write Midi Note Off if ((keysA[3][0] ==1) and (lastA[3][0] ==7)) { MidiSend(noteOff1, 49, velocity); lastA[3][0] =0; } //A50 if ((keysA[3][1] ==0) and (lastA[3][1] ==0)) { MidiSend(noteOn1, 50, velocity); lastA[3][1] =7; } //Write Midi Note Off if ((keysA[3][1] ==1) and (lastA[3][1] ==7)) { MidiSend(noteOff1, 50, velocity); lastA[3][1] =0; } //A51 if ((keysA[3][2] ==0) and (lastA[3][2] ==0)) { MidiSend(noteOn1, 51, velocity); lastA[3][2] =7; } //Write Midi Note Off if ((keysA[3][2] ==1) and (lastA[3][2] ==7)) { MidiSend(noteOff1, 51, velocity); lastA[3][2] =0; } //A52 if ((keysA[3][3] ==0) and (lastA[3][3] ==0)) { MidiSend(noteOn1, 52, velocity); lastA[3][3] =7; } //Write Midi Note Off if ((keysA[3][3] ==1) and (lastA[3][3] ==7)) { MidiSend(noteOff1, 52, velocity); lastA[3][3] =0; } //A53 if ((keysA[3][4] ==0) and (lastA[3][4] ==0)) { MidiSend(noteOn1, 53, velocity); lastA[3][4] =7; } //Write Midi Note Off if ((keysA[3][4] ==1) and (lastA[3][4] ==7)) { MidiSend(noteOff1, 53, velocity); lastA[3][4] =0; } //A54 if ((keysA[3][5] ==0) and (lastA[3][5] ==0)) { MidiSend(noteOn1, 54, velocity); lastA[3][5] =7; } //Write Midi Note Off if ((keysA[3][5] ==1) and (lastA[3][5] ==7)) { MidiSend(noteOff1, 54, velocity); lastA[3][5] =0; } //A55 if ((keysA[4][0] ==0) and (lastA[4][0] ==0)) { MidiSend(noteOn1, 55, velocity); lastA[4][0] =7; } //Write Midi Note Off if ((keysA[4][0] ==1) and (lastA[4][0] ==7)) { MidiSend(noteOff1, 55, velocity); lastA[4][0] =0; } //A56 if ((keysA[4][1] ==0) and (lastA[4][1] ==0)) { MidiSend(noteOn1, 56, velocity); lastA[4][1] =7; } //Write Midi Note Off if ((keysA[4][1] ==1) and (lastA[4][1] ==7)) { MidiSend(noteOff1, 56, velocity); lastA[4][1] =0; } //A57 if ((keysA[4][2] ==0) and (lastA[4][2] ==0)) { MidiSend(noteOn1, 57, velocity); lastA[4][2] =7; } //Write Midi Note Off if ((keysA[4][2] ==1) and (lastA[4][2] ==7)) { MidiSend(noteOff1, 57, velocity); lastA[4][2] =0; } //A58 if ((keysA[4][3] ==0) and (lastA[4][3] ==0)) { MidiSend(noteOn1, 58, velocity); lastA[4][3] =7; } //Write Midi Note Off if ((keysA[4][3] ==1) and (lastA[4][3] ==7)) { MidiSend(noteOff1, 58, velocity); lastA[4][3] =0; } //59 if ((keysA[4][4] ==0) and (lastA[4][4] ==0)) { MidiSend(noteOn1, 59, velocity); lastA[4][4] =7; } //Write Midi Note Off if ((keysA[4][4] ==1) and (lastA[4][4] ==7)) { MidiSend(noteOff1, 59, velocity); lastA[4][4] =0; } //A60 if ((keysA[4][5] ==0) and (lastA[4][5] ==0)) { MidiSend(noteOn1, 60, velocity); lastA[4][5] =7; } //Write Midi Note Off if ((keysA[4][5] ==1) and (lastA[4][5] ==7)) { MidiSend(noteOff1, 60, velocity); lastA[4][5] =0; } //A61 if ((keysA[5][0] ==0) and (lastA[5][0] ==0)) { MidiSend(noteOn1, 61, velocity); lastA[5][0] =7; } //Write Midi Note Off if ((keysA[5][0] ==1) and (lastA[5][0] ==7)) { MidiSend(noteOff1, 61, velocity); lastA[5][0] =0; } //A62 if ((keysA[5][1] ==0) and (lastA[5][1] ==0)) { MidiSend(noteOn1, 62, velocity); lastA[5][1] =7; } //Write Midi Note Off if ((keysA[5][1] ==1) and (lastA[5][1] ==7)) { MidiSend(noteOff1, 62, velocity); lastA[5][1] =0; } //A63 if ((keysA[5][2] ==0) and (lastA[5][2] ==0)) { MidiSend(noteOn1, 63, velocity); lastA[5][2] =7; } //Write Midi Note Off if ((keysA[5][2] ==1) and (lastA[5][2] ==7)) { MidiSend(noteOff1, 63, velocity); lastA[5][2] =0; } //A64 if ((keysA[5][3] ==0) and (lastA[5][3] ==0)) { MidiSend(noteOn1, 64, velocity); lastA[5][3] =7; } //Write Midi Note Off if ((keysA[5][3] ==1) and (lastA[5][3] ==7)) { MidiSend(noteOff1, 64, velocity); lastA[5][3] =0; } //A65 if ((keysA[5][4] ==0) and (lastA[5][4] ==0)) { MidiSend(noteOn1, 65, velocity); lastA[5][4] =7; } //Write Midi Note Off if ((keysA[5][4] ==1) and (lastA[5][4] ==7)) { MidiSend(noteOff1, 65, velocity); lastA[5][4] =0; } //A66 if ((keysA[5][5] ==0) and (lastA[5][5] ==0)) { MidiSend(noteOn1, 66, velocity); lastA[5][5] =7; } //Write Midi Note Off if ((keysA[5][5] ==1) and (lastA[5][5] ==7)) { MidiSend(noteOff1, 66, velocity); lastA[5][5] =0; } //A67 if ((keysA[6][0] ==0) and (lastA[6][0] ==0)) { MidiSend(noteOn1, 67, velocity); lastA[6][0] =7; } //Write Midi Note Off if ((keysA[6][0] ==1) and (lastA[6][0] ==7)) { MidiSend(noteOff1, 67, velocity); lastA[6][0] =0; } //A68 if ((keysA[6][1] ==0) and (lastA[6][1] ==0)) { MidiSend(noteOn1, 68, velocity); lastA[6][1] =7; } //Write Midi Note Off if ((keysA[6][1] ==1) and (lastA[6][1] ==7)) { MidiSend(noteOff1, 68, velocity); lastA[6][1] =0; } //A69 if ((keysA[6][2] ==0) and (lastA[6][2] ==0)) { MidiSend(noteOn1, 69, velocity); lastA[6][2] =7; } //Write Midi Note Off if ((keysA[6][2] ==1) and (lastA[6][2] ==7)) { MidiSend(noteOff1, 69, velocity); lastA[6][2] =0; } //A70 if ((keysA[6][3] ==0) and (lastA[6][3] ==0)) { MidiSend(noteOn1, 70, velocity); lastA[6][3] =7; } //Write Midi Note Off if ((keysA[6][3] ==1) and (lastA[6][3] ==7)) { MidiSend(noteOff1, 70, velocity); lastA[6][3] =0; } //A71 if ((keysA[6][4] ==0) and (lastA[6][4] ==0)) { MidiSend(noteOn1, 71, velocity); lastA[6][4] =7; } //Write Midi Note Off if ((keysA[6][4] ==1) and (lastA[6][4] ==7)) { MidiSend(noteOff1, 71, velocity); lastA[6][4] =0; } //A72 if ((keysA[6][5] ==0) and (lastA[6][5] ==0)) { MidiSend(noteOn1, 72, velocity); lastA[6][5] =7; } //Write Midi Note Off if ((keysA[6][5] ==1) and (lastA[6][5] ==7)) { MidiSend(noteOff1, 72, velocity); lastA[6][5] =0; } //A73 if ((keysA[7][0] ==0) and (lastA[7][0] ==0)) { MidiSend(noteOn1, 73, velocity); lastA[7][0] =7; } //Write Midi Note Off if ((keysA[7][0] ==1) and (lastA[7][0] ==7)) { MidiSend(noteOff1, 73, velocity); lastA[7][0] =0; } //A74 if ((keysA[7][1] ==0) and (lastA[7][1] ==0)) { MidiSend(noteOn1, 74, velocity); lastA[7][1] =7; } //Write Midi Note Off if ((keysA[7][1] ==1) and (lastA[7][1] ==7)) { MidiSend(noteOff1, 74, velocity); lastA[7][1] =0; } //A75 if ((keysA[7][2] ==0) and (lastA[7][2] ==0)) { MidiSend(noteOn1, 75, velocity); lastA[7][2] =7; } //Write Midi Note Off if ((keysA[7][2] ==1) and (lastA[7][2] ==7)) { MidiSend(noteOff1, 75, velocity); lastA[7][2] =0; } //A76 if ((keysA[7][3] ==0) and (lastA[7][3] ==0)) { MidiSend(noteOn1, 76, velocity); lastA[7][3] =7; } //Write Midi Note Off if ((keysA[7][3] ==1) and (lastA[7][3] ==7)) { MidiSend(noteOff1, 76, velocity); lastA[7][3] =0; } //A77 if ((keysA[7][4] ==0) and (lastA[7][4] ==0)) { MidiSend(noteOn1, 77, velocity); lastA[7][4] =7; } //Write Midi Note Off if ((keysA[7][4] ==1) and (lastA[7][4] ==7)) { MidiSend(noteOff1, 77, velocity); lastA[7][4] =0; } //A78 if ((keysA[7][5] ==0) and (lastA[7][5] ==0)) { MidiSend(noteOn1, 78, velocity); lastA[7][5] =7; } //Write Midi Note Off if ((keysA[7][5] ==1) and (lastA[7][5] ==7)) { MidiSend(noteOff1, 78, velocity); lastA[7][5] =0; } //A79 if ((keysA[8][0] ==0) and (lastA[8][0] ==0)) { MidiSend(noteOn1, 79, velocity); lastA[8][0] =7; } //Write Midi Note Off if ((keysA[8][0] ==1) and (lastA[8][0] ==7)) { MidiSend(noteOff1, 79, velocity); lastA[8][0] =0; } //A80 if ((keysA[8][1] ==0) and (lastA[8][1] ==0)) { MidiSend(noteOn1, 80, velocity); lastA[8][1] =7; } //Write Midi Note Off if ((keysA[8][1] ==1) and (lastA[8][1] ==7)) { MidiSend(noteOff1, 80, velocity); lastA[8][1] =0; } //A81 if ((keysA[8][2] ==0) and (lastA[8][2] ==0)) { MidiSend(noteOn1, 81, velocity); lastA[8][2] =7; } //Write Midi Note Off if ((keysA[8][2] ==1) and (lastA[8][2] ==7)) { MidiSend(noteOff1, 81, velocity); lastA[8][2] =0; } //A82 if ((keysA[8][3] ==0) and (lastA[8][3] ==0)) { MidiSend(noteOn1, 82, velocity); lastA[8][3] =7; } //Write Midi Note Off if ((keysA[8][3] ==1) and (lastA[8][3] ==7)) { MidiSend(noteOff1, 82, velocity); lastA[8][3] =0; } //A83 if ((keysA[8][4] ==0) and (lastA[8][4] ==0)) { MidiSend(noteOn1, 83, velocity); lastA[8][4] =7; } //Write Midi Note Off if ((keysA[8][4] ==1) and (lastA[8][4] ==7)) { MidiSend(noteOff1, 83, velocity); lastA[8][4] =0; } //A84 if ((keysA[8][5] ==0) and (lastA[8][5] ==0)) { MidiSend(noteOn1, 84, velocity); lastA[8][5] =7; } //Write Midi Note Off if ((keysA[8][5] ==1) and (lastA[8][5] ==7)) { MidiSend(noteOff1, 84, velocity); lastA[8][5] =0; } //A85 if ((keysA[9][0] ==0) and (lastA[9][0] ==0)) { MidiSend(noteOn1, 85, velocity); lastA[9][0] =7; } //Write Midi Note Off if ((keysA[9][0] ==1) and (lastA[9][0] ==7)) { MidiSend(noteOff1, 85, velocity); lastA[9][0] =0; } //A86 if ((keysA[9][1] ==0) and (lastA[9][1] ==0)) { MidiSend(noteOn1, 86, velocity); lastA[9][1] =7; } //Write Midi Note Off if ((keysA[9][1] ==1) and (lastA[9][1] ==7)) { MidiSend(noteOff1, 86, velocity); lastA[9][1] =0; } //A87 if ((keysA[9][2] ==0) and (lastA[9][2] ==0)) { MidiSend(noteOn1, 87, velocity); lastA[9][2] =7; } //Write Midi Note Off if ((keysA[9][2] ==1) and (lastA[9][2] ==7)) { MidiSend(noteOff1, 87, velocity); lastA[9][2] =0; } //A88 if ((keysA[9][3] ==0) and (lastA[9][3] ==0)) { MidiSend(noteOn1, 88, velocity); lastA[9][3] =7; } //Write Midi Note Off if ((keysA[9][3] ==1) and (lastA[9][3] ==7)) { MidiSend(noteOff1, 88, velocity); lastA[9][3] =0; } //A89 if ((keysA[9][4] ==0) and (lastA[9][4] ==0)) { MidiSend(noteOn1, 89, velocity); lastA[9][4] =7; } //Write Midi Note Off if ((keysA[9][4] ==1) and (lastA[9][4] ==7)) { MidiSend(noteOff1, 89, velocity); lastA[9][4] =0; } //A90 if ((keysA[9][5] ==0) and (lastA[9][5] ==0)) { MidiSend(noteOn1, 90, velocity); lastA[9][5] =7; } //Write Midi Note Off if ((keysA[9][5] ==1) and (lastA[9][5] ==7)) { MidiSend(noteOff1, 90, velocity); lastA[9][5] =0; } //A91 if ((keysA[10][0] ==0) and (lastA[10][0] ==0)) { MidiSend(noteOn1, 91, velocity); lastA[10][0] =7; } //Write Midi Note Off if ((keysA[10][0] ==1) and (lastA[10][0] ==7)) { MidiSend(noteOff1, 91, velocity); lastA[10][0] =0; } //A92 if ((keysA[10][1] ==0) and (lastA[10][1] ==0)) { MidiSend(noteOn1, 92, velocity); lastA[10][1] =7; } //Write Midi Note Off if ((keysA[10][1] ==1) and (lastA[10][1] ==7)) { MidiSend(noteOff1, 92, velocity); lastA[10][1] =0; } //A93 if ((keysA[10][2] ==0) and (lastA[10][2] ==0)) { MidiSend(noteOn1, 93, velocity); lastA[10][2] =7; } //Write Midi Note Off if ((keysA[10][2] ==1) and (lastA[10][2] ==7)) { MidiSend(noteOff1, 93, velocity); lastA[10][2] =0; } //A94 if ((keysA[10][3] ==0) and (lastA[10][3] ==0)) { MidiSend(noteOn1, 94, velocity); lastA[10][3] =7; } //Write Midi Note Off if ((keysA[10][3] ==1) and (lastA[10][3] ==7)) { MidiSend(noteOff1, 94, velocity); lastA[10][3] =0; } //A95 if ((keysA[10][4] ==0) and (lastA[10][4] ==0)) { MidiSend(noteOn1, 95, velocity); lastA[10][4] =7; } //Write Midi Note Off if ((keysA[10][4] ==1) and (lastA[10][4] ==7)) { MidiSend(noteOff1, 95, velocity); lastA[10][4] =0; } //A96 if ((keysA[10][5] ==0) and (lastA[10][5] ==0)) { MidiSend(noteOn1, 96, velocity); lastA[10][5] =7; } //Write Midi Note Off if ((keysA[10][5] ==1) and (lastA[10][5] ==7)) { MidiSend(noteOff1, 96, velocity); lastA[10][5] =0; } //Write Keyboard B //B36 if ((keysB[0][0] ==0) and (lastB[0][0] ==0)) { MidiSend(noteOn2, 36, velocity); lastB[0][0] =7; } if ((keysB[0][0] ==1) and (lastB[0][0] ==7)) { MidiSend(noteOff2, 36, velocity); lastB[0][0] =0; } //B37 if ((keysB[1][0] ==0) and (lastB[1][0] ==0)) { MidiSend(noteOn2, 37, velocity); lastB[1][0] =7; } if ((keysB[1][0] ==1) and (lastB[1][0] ==7)) { MidiSend(noteOff2, 37, velocity); lastB[1][0] =0; } //B38 if ((keysB[1][1] ==0) and (lastB[1][1] ==0)) { MidiSend(noteOn2, 38, velocity); lastB[1][1] =7; } //Write Midi Note Off if ((keysB[1][1] ==1) and (lastB[1][1] ==7)) { MidiSend(noteOff2, 38, velocity); lastB[1][1] =0; } //B39 if ((keysB[1][2] ==0) and (lastB[1][2] ==0)) { MidiSend(noteOn2, 39, velocity); lastB[1][2] =7; } //Write Midi Note Off if ((keysB[1][2] ==1) and (lastB[1][2] ==7)) { MidiSend(noteOff2, 39, velocity); lastB[1][2] =0; } //B40 if ((keysB[1][3] ==0) and (lastB[1][3] ==0)) { MidiSend(noteOn2, 40, velocity); lastB[1][3] =7; } //Write Midi Note Off if ((keysB[1][3] ==1) and (lastB[1][3] ==7)) { MidiSend(noteOff2, 40, velocity); lastB[1][3] =0; } //B41 if ((keysB[1][4] ==0) and (lastB[1][4] ==0)) { MidiSend(noteOn2, 41, velocity); lastB[1][4] =7; } //Write Midi Note Off if ((keysB[1][4] ==1) and (lastB[1][4] ==7)) { MidiSend(noteOff2, 41, velocity); lastB[1][4] =0; } //B42 if ((keysB[1][5] ==0) and (lastB[1][5] ==0)) { MidiSend(noteOn2, 42, velocity); lastB[1][5] =7; } //Write Midi Note Off if ((keysB[1][5] ==1) and (lastB[1][5] ==7)) { MidiSend(noteOff2, 42, velocity); lastB[1][5] =0; } //B43 if ((keysB[2][0] ==0) and (lastB[2][0] ==0)) { MidiSend(noteOn2, 43, velocity); lastB[2][0] =7; } //Write Midi Note Off if ((keysB[2][0] ==1) and (lastB[2][0] ==7)) { MidiSend(noteOff2, 43, velocity); lastB[2][0] =0; } //B44 if ((keysB[2][1] ==0) and (lastB[2][1] ==0)) { MidiSend(noteOn2, 44, velocity); lastB[2][1] =7; } //Write Midi Note Off if ((keysB[2][1] ==1) and (lastB[2][1] ==7)) { MidiSend(noteOff2, 44, velocity); lastB[2][1] =0; } //B45 if ((keysB[2][2] ==0) and (lastB[2][2] ==0)) { MidiSend(noteOn2, 45, velocity); lastB[2][2] =7; } //Write Midi Note Off if ((keysB[2][2] ==1) and (lastB[2][2] ==7)) { MidiSend(noteOff2, 45, velocity); lastB[2][2] =0; } //B46 if ((keysB[2][3] ==0) and (lastB[2][3] ==0)) { MidiSend(noteOn2, 46, velocity); lastB[2][3] =7; } //Write Midi Note Off if ((keysB[2][3] ==1) and (lastB[2][3] ==7)) { MidiSend(noteOff2, 46, velocity); lastB[2][3] =0; } //B47 if ((keysB[2][4] ==0) and (lastB[2][4] ==0)) { MidiSend(noteOn2, 47, velocity); lastB[2][4] =7; } //Write Midi Note Off if ((keysB[2][4] ==1) and (lastB[2][4] ==7)) { MidiSend(noteOff2, 47, velocity); lastB[2][4] =0; } //B48 if ((keysB[2][5] ==0) and (lastB[2][5] ==0)) { MidiSend(noteOn2, 48, velocity); lastB[2][5] =7; } //Write Midi Note Off if ((keysB[2][5] ==1) and (lastB[2][5] ==7)) { MidiSend(noteOff2, 48, velocity); lastB[2][5] =0; } //B49 if ((keysB[3][0] ==0) and (lastB[3][0] ==0)) { MidiSend(noteOn2, 49, velocity); lastB[3][0] =7; } //Write Midi Note Off if ((keysB[3][0] ==1) and (lastB[3][0] ==7)) { MidiSend(noteOff2, 49, velocity); lastB[3][0] =0; } //B50 if ((keysB[3][1] ==0) and (lastB[3][1] ==0)) { MidiSend(noteOn2, 50, velocity); lastB[3][1] =7; } //Write Midi Note Off if ((keysB[3][1] ==1) and (lastB[3][1] ==7)) { MidiSend(noteOff2, 50, velocity); lastB[3][1] =0; } //B51 if ((keysB[3][2] ==0) and (lastB[3][2] ==0)) { MidiSend(noteOn2, 51, velocity); lastB[3][2] =7; } //Write Midi Note Off if ((keysB[3][2] ==1) and (lastB[3][2] ==7)) { MidiSend(noteOff2, 51, velocity); lastB[3][2] =0; } //B52 if ((keysB[3][3] ==0) and (lastB[3][3] ==0)) { MidiSend(noteOn2, 52, velocity); lastB[3][3] =7; } //Write Midi Note Off if ((keysB[3][3] ==1) and (lastB[3][3] ==7)) { MidiSend(noteOff2, 52, velocity); lastB[3][3] =0; } //B53 if ((keysB[3][4] ==0) and (lastB[3][4] ==0)) { MidiSend(noteOn2, 53, velocity); lastB[3][4] =7; } //Write Midi Note Off if ((keysB[3][4] ==1) and (lastB[3][4] ==7)) { MidiSend(noteOff2, 53, velocity); lastB[3][4] =0; } //B54 if ((keysB[3][5] ==0) and (lastB[3][5] ==0)) { MidiSend(noteOn2, 54, velocity); lastB[3][5] =7; } //Write Midi Note Off if ((keysB[3][5] ==1) and (lastB[3][5] ==7)) { MidiSend(noteOff2, 54, velocity); lastB[3][5] =0; } //B55 if ((keysB[4][0] ==0) and (lastB[4][0] ==0)) { MidiSend(noteOn2, 55, velocity); lastB[4][0] =7; } //Write Midi Note Off if ((keysB[4][0] ==1) and (lastB[4][0] ==7)) { MidiSend(noteOff2, 55, velocity); lastB[4][0] =0; } //B56 if ((keysB[4][1] ==0) and (lastB[4][1] ==0)) { MidiSend(noteOn2, 56, velocity); lastB[4][1] =7; } //Write Midi Note Off if ((keysB[4][1] ==1) and (lastB[4][1] ==7)) { MidiSend(noteOff2, 56, velocity); lastB[4][1] =0; } //B57 if ((keysB[4][2] ==0) and (lastB[4][2] ==0)) { MidiSend(noteOn2, 57, velocity); lastB[4][2] =7; } //Write Midi Note Off if ((keysB[4][2] ==1) and (lastB[4][2] ==7)) { MidiSend(noteOff2, 57, velocity); lastB[4][2] =0; } //B58 if ((keysB[4][3] ==0) and (lastB[4][3] ==0)) { MidiSend(noteOn2, 58, velocity); lastB[4][3] =7; } //Write Midi Note Off if ((keysB[4][3] ==1) and (lastB[4][3] ==7)) { MidiSend(noteOff2, 58, velocity); lastB[4][3] =0; } //B59 if ((keysB[4][4] ==0) and (lastB[4][4] ==0)) { MidiSend(noteOn2, 59, velocity); lastB[4][4] =7; } //Write Midi Note Off if ((keysB[4][4] ==1) and (lastB[4][4] ==7)) { MidiSend(noteOff2, 59, velocity); lastB[4][4] =0; } //B60 if ((keysB[4][5] ==0) and (lastB[4][5] ==0)) { MidiSend(noteOn2, 60, velocity); lastB[4][5] =7; } //Write Midi Note Off if ((keysB[4][5] ==1) and (lastB[4][5] ==7)) { MidiSend(noteOff2, 60, velocity); lastB[4][5] =0; } //B61 if ((keysB[5][0] ==0) and (lastB[5][0] ==0)) { MidiSend(noteOn2, 61, velocity); lastB[5][0] =7; } //Write Midi Note Off if ((keysB[5][0] ==1) and (lastB[5][0] ==7)) { MidiSend(noteOff2, 61, velocity); lastB[5][0] =0; } //B62 if ((keysB[5][1] ==0) and (lastB[5][1] ==0)) { MidiSend(noteOn2, 62, velocity); lastB[5][1] =7; } //Write Midi Note Off if ((keysB[5][1] ==1) and (lastB[5][1] ==7)) { MidiSend(noteOff2, 62, velocity); lastB[5][1] =0; } //B63 if ((keysB[5][2] ==0) and (lastB[5][2] ==0)) { MidiSend(noteOn2, 63, velocity); lastB[5][2] =7; } //Write Midi Note Off if ((keysB[5][2] ==1) and (lastB[5][2] ==7)) { MidiSend(noteOff2, 63, velocity); lastB[5][2] =0; } //B64 if ((keysB[5][3] ==0) and (lastB[5][3] ==0)) { MidiSend(noteOn2, 64, velocity); lastB[5][3] =7; } //Write Midi Note Off if ((keysB[5][3] ==1) and (lastB[5][3] ==7)) { MidiSend(noteOff2, 64, velocity); lastB[5][3] =0; } //B65 if ((keysB[5][4] ==0) and (lastB[5][4] ==0)) { MidiSend(noteOn2, 65, velocity); lastB[5][4] =7; } //Write Midi Note Off if ((keysB[5][4] ==1) and (lastB[5][4] ==7)) { MidiSend(noteOff2, 65, velocity); lastB[5][4] =0; } //B66 if ((keysB[5][5] ==0) and (lastB[5][5] ==0)) { MidiSend(noteOn2, 66, velocity); lastB[5][5] =7; } //Write Midi Note Off if ((keysB[5][5] ==1) and (lastB[5][5] ==7)) { MidiSend(noteOff2, 66, velocity); lastB[5][5] =0; } //B67 if ((keysB[6][0] ==0) and (lastB[6][0] ==0)) { MidiSend(noteOn2, 67, velocity); lastB[6][0] =7; } //Write Midi Note Off if ((keysB[6][0] ==1) and (lastB[6][0] ==7)) { MidiSend(noteOff2, 67, velocity); lastB[6][0] =0; } //B68 if ((keysB[6][1] ==0) and (lastB[6][1] ==0)) { MidiSend(noteOn2, 68, velocity); lastB[6][1] =7; } //Write Midi Note Off if ((keysB[6][1] ==1) and (lastB[6][1] ==7)) { MidiSend(noteOff2, 68, velocity); lastB[6][1] =0; } //B69 if ((keysB[6][2] ==0) and (lastB[6][2] ==0)) { MidiSend(noteOn2, 69, velocity); lastB[6][2] =7; } //Write Midi Note Off if ((keysB[6][2] ==1) and (lastB[6][2] ==7)) { MidiSend(noteOff2, 69, velocity); lastB[6][2] =0; } //B70 if ((keysB[6][3] ==0) and (lastB[6][3] ==0)) { MidiSend(noteOn2, 70, velocity); lastB[6][3] =7; } //Write Midi Note Off if ((keysB[6][3] ==1) and (lastB[6][3] ==7)) { MidiSend(noteOff2, 70, velocity); lastB[6][3] =0; } //B71 if ((keysB[6][4] ==0) and (lastB[6][4] ==0)) { MidiSend(noteOn2, 71, velocity); lastB[6][4] =7; } //Write Midi Note Off if ((keysB[6][4] ==1) and (lastB[6][4] ==7)) { MidiSend(noteOff2, 71, velocity); lastB[6][4] =0; } //B72 if ((keysB[6][5] ==0) and (lastB[6][5] ==0)) { MidiSend(noteOn2, 72, velocity); lastB[6][5] =7; } //Write Midi Note Off if ((keysB[6][5] ==1) and (lastB[6][5] ==7)) { MidiSend(noteOff2, 72, velocity); lastB[6][5] =0; } //B73 if ((keysB[7][0] ==0) and (lastB[7][0] ==0)) { MidiSend(noteOn2, 73, velocity); lastB[7][0] =7; } //Write Midi Note Off if ((keysB[7][0] ==1) and (lastB[7][0] ==7)) { MidiSend(noteOff2, 73, velocity); lastB[7][0] =0; } //B74 if ((keysB[7][1] ==0) and (lastB[7][1] ==0)) { MidiSend(noteOn2, 74, velocity); lastB[7][1] =7; } //Write Midi Note Off if ((keysB[7][1] ==1) and (lastB[7][1] ==7)) { MidiSend(noteOff2, 74, velocity); lastB[7][1] =0; } //B75 if ((keysB[7][2] ==0) and (lastB[7][2] ==0)) { MidiSend(noteOn2, 75, velocity); lastB[7][2] =7; } //Write Midi Note Off if ((keysB[7][2] ==1) and (lastB[7][2] ==7)) { MidiSend(noteOff2, 75, velocity); lastB[7][2] =0; } //B76 if ((keysB[7][3] ==0) and (lastB[7][3] ==0)) { MidiSend(noteOn2, 76, velocity); lastB[7][3] =7; } //Write Midi Note Off if ((keysB[7][3] ==1) and (lastB[7][3] ==7)) { MidiSend(noteOff2, 76, velocity); lastB[7][3] =0; } //B77 if ((keysB[7][4] ==0) and (lastB[7][4] ==0)) { MidiSend(noteOn2, 77, velocity); lastB[7][4] =7; } //Write Midi Note Off if ((keysB[7][4] ==1) and (lastB[7][4] ==7)) { MidiSend(noteOff2, 77, velocity); lastB[7][4] =0; } //B78 if ((keysB[7][5] ==0) and (lastB[7][5] ==0)) { MidiSend(noteOn2, 78, velocity); lastB[7][5] =7; } //Write Midi Note Off if ((keysB[7][5] ==1) and (lastB[7][5] ==7)) { MidiSend(noteOff2, 78, velocity); lastB[7][5] =0; } //B79 if ((keysB[8][0] ==0) and (lastB[8][0] ==0)) { MidiSend(noteOn2, 79, velocity); lastB[8][0] =7; } //Write Midi Note Off if ((keysB[8][0] ==1) and (lastB[8][0] ==7)) { MidiSend(noteOff2, 79, velocity); lastB[8][0] =0; } //B80 if ((keysB[8][1] ==0) and (lastB[8][1] ==0)) { MidiSend(noteOn2, 80, velocity); lastB[8][1] =7; } //Write Midi Note Off if ((keysB[8][1] ==1) and (lastB[8][1] ==7)) { MidiSend(noteOff2, 80, velocity); lastB[8][1] =0; } //B81 if ((keysB[8][2] ==0) and (lastB[8][2] ==0)) { MidiSend(noteOn2, 81, velocity); lastB[8][2] =7; } //Write Midi Note Off if ((keysB[8][2] ==1) and (lastB[8][2] ==7)) { MidiSend(noteOff2, 81, velocity); lastB[8][2] =0; } //B82 if ((keysB[8][3] ==0) and (lastB[8][3] ==0)) { MidiSend(noteOn2, 82, velocity); lastB[8][3] =7; } //Write Midi Note Off if ((keysB[8][3] ==1) and (lastB[8][3] ==7)) { MidiSend(noteOff2, 82, velocity); lastB[8][3] =0; } //B83 if ((keysB[8][4] ==0) and (lastB[8][4] ==0)) { MidiSend(noteOn2, 83, velocity); lastB[8][4] =7; } //Write Midi Note Off if ((keysB[8][4] ==1) and (lastB[8][4] ==7)) { MidiSend(noteOff2, 83, velocity); lastB[8][4] =0; } //B84 if ((keysB[8][5] ==0) and (lastB[8][5] ==0)) { MidiSend(noteOn2, 84, velocity); lastB[8][5] =7; } //Write Midi Note Off if ((keysB[8][5] ==1) and (lastB[8][5] ==7)) { MidiSend(noteOff2, 84, velocity); lastB[8][5] =0; } //B85 if ((keysB[9][0] ==0) and (lastB[9][0] ==0)) { MidiSend(noteOn2, 85, velocity); lastB[9][0] =7; } //Write Midi Note Off if ((keysB[9][0] ==1) and (lastB[9][0] ==7)) { MidiSend(noteOff2, 85, velocity); lastB[9][0] =0; } //B86 if ((keysB[9][1] ==0) and (lastB[9][1] ==0)) { MidiSend(noteOn2, 86, velocity); lastB[9][1] =7; } //Write Midi Note Off if ((keysB[9][1] ==1) and (lastB[9][1] ==7)) { MidiSend(noteOff2, 86, velocity); lastB[9][1] =0; } //B87 if ((keysB[9][2] ==0) and (lastB[9][2] ==0)) { MidiSend(noteOn2, 87, velocity); lastB[9][2] =7; } //Write Midi Note Off if ((keysB[9][2] ==1) and (lastB[9][2] ==7)) { MidiSend(noteOff2, 87, velocity); lastB[9][2] =0; } //B88 if ((keysB[9][3] ==0) and (lastB[9][3] ==0)) { MidiSend(noteOn2, 88, velocity); lastB[9][3] =7; } //Write Midi Note Off if ((keysB[9][3] ==1) and (lastB[9][3] ==7)) { MidiSend(noteOff2, 88, velocity); lastB[9][3] =0; } //B89 if ((keysB[9][4] ==0) and (lastB[9][4] ==0)) { MidiSend(noteOn2, 89, velocity); lastB[9][4] =7; } //Write Midi Note Off if ((keysB[9][4] ==1) and (lastB[9][4] ==7)) { MidiSend(noteOff2, 89, velocity); lastB[9][4] =0; } //B90 if ((keysB[9][5] ==0) and (lastB[9][5] ==0)) { MidiSend(noteOn2, 90, velocity); lastB[9][5] =7; } //Write Midi Note Off if ((keysB[9][5] ==1) and (lastB[9][5] ==7)) { MidiSend(noteOff2, 90, velocity); lastB[9][5] =0; } //B91 if ((keysB[10][0] ==0) and (lastB[10][0] ==0)) { MidiSend(noteOn2, 91, velocity); lastB[10][0] =7; } //Write Midi Note Off if ((keysB[10][0] ==1) and (lastB[10][0] ==7)) { MidiSend(noteOff2, 91, velocity); lastB[10][0] =0; } //B92 if ((keysB[10][1] ==0) and (lastB[10][1] ==0)) { MidiSend(noteOn2, 92, velocity); lastB[10][1] =7; } //Write Midi Note Off if ((keysB[10][1] ==1) and (lastB[10][1] ==7)) { MidiSend(noteOff2, 92, velocity); lastB[10][1] =0; } //B93 if ((keysB[10][2] ==0) and (lastB[10][2] ==0)) { MidiSend(noteOn2, 93, velocity); lastB[10][2] =7; } //Write Midi Note Off if ((keysB[10][2] ==1) and (lastB[10][2] ==7)) { MidiSend(noteOff2, 93, velocity); lastB[10][2] =0; } //B94 if ((keysB[10][3] ==0) and (lastB[10][3] ==0)) { MidiSend(noteOn2, 94, velocity); lastB[10][3] =7; } //Write Midi Note Off if ((keysB[10][3] ==1) and (lastB[10][3] ==7)) { MidiSend(noteOff2, 94, velocity); lastB[10][3] =0; } //B95 if ((keysB[10][4] ==0) and (lastB[10][4] ==0)) { MidiSend(noteOn2, 95, velocity); lastB[10][4] =7; } //Write Midi Note Off if ((keysB[10][4] ==1) and (lastB[10][4] ==7)) { MidiSend(noteOff2, 95, velocity); lastB[10][4] =0; } //B96 if ((keysB[10][5] ==0) and (lastB[10][5] ==0)) { MidiSend(noteOn2, 96, velocity); lastB[10][5] =7; } //Write Midi Note Off if ((keysB[10][5] ==1) and (lastB[10][5] ==7)) { MidiSend(noteOff2, 96, velocity); lastB[10][5] =0; } //Write Keyboard C //C36 if ((keysC[0][0] ==0) and (lastC[0][0] ==0)) { MidiSend(noteOff3, 36, velocity); lastC[0][0] =7; } if ((keysC[0][0] ==1) and (lastC[0][0] ==7)) { MidiSend(noteOn3, 36, velocity); lastC[0][0] =0; } //C37 if ((keysC[1][0] ==0) and (lastC[1][0] ==0)) { MidiSend(noteOff3, 37, velocity); lastC[1][0] =7; } if ((keysC[1][0] ==1) and (lastC[1][0] ==7)) { MidiSend(noteOn3, 37, velocity); lastC[1][0] =0; } //C38 if ((keysC[1][1] ==0) and (lastC[1][1] ==0)) { MidiSend(noteOff3, 38, velocity); lastC[1][1] =7; } //Write Midi Note Off if ((keysC[1][1] ==1) and (lastC[1][1] ==7)) { MidiSend(noteOn3, 38, velocity); lastC[1][1] =0; } //C39 if ((keysC[1][2] ==0) and (lastC[1][2] ==0)) { MidiSend(noteOff3, 39, velocity); lastC[1][2] =7; } //Write Midi Note Off if ((keysC[1][2] ==1) and (lastC[1][2] ==7)) { MidiSend(noteOn3, 39, velocity); lastC[1][2] =0; } //C40 if ((keysC[1][3] ==0) and (lastC[1][3] ==0)) { MidiSend(noteOff3, 40, velocity); lastC[1][3] =7; } //Write Midi Note Off if ((keysC[1][3] ==1) and (lastC[1][3] ==7)) { MidiSend(noteOn3, 40, velocity); lastC[1][3] =0; } //C41 if ((keysC[1][4] ==0) and (lastC[1][4] ==0)) { MidiSend(noteOff3, 41, velocity); lastC[1][4] =7; } //Write Midi Note Off if ((keysC[1][4] ==1) and (lastC[1][4] ==7)) { MidiSend(noteOn3, 41, velocity); lastC[1][4] =0; } //C42 if ((keysC[1][5] ==0) and (lastC[1][5] ==0)) { MidiSend(noteOff3, 42, velocity); lastC[1][5] =7; } //Write Midi Note Off if ((keysC[1][5] ==1) and (lastC[1][5] ==7)) { MidiSend(noteOn3, 42, velocity); lastC[1][5] =0; } //C43 if ((keysC[2][0] ==0) and (lastC[2][0] ==0)) { MidiSend(noteOff3, 43, velocity); lastC[2][0] =7; } //Write Midi Note Off if ((keysC[2][0] ==1) and (lastC[2][0] ==7)) { MidiSend(noteOn3, 43, velocity); lastC[2][0] =0; } //C44 if ((keysC[2][1] ==0) and (lastC[2][1] ==0)) { MidiSend(noteOff3, 44, velocity); lastC[2][1] =7; } //Write Midi Note Off if ((keysC[2][1] ==1) and (lastC[2][1] ==7)) { MidiSend(noteOn3, 44, velocity); lastC[2][1] =0; } //C45 if ((keysC[2][2] ==0) and (lastC[2][2] ==0)) { MidiSend(noteOff3, 45, velocity); lastC[2][2] =7; } //Write Midi Note Off if ((keysC[2][2] ==1) and (lastC[2][2] ==7)) { MidiSend(noteOn3, 45, velocity); lastC[2][2] =0; } //C46 if ((keysC[2][3] ==0) and (lastC[2][3] ==0)) { MidiSend(noteOff3, 46, velocity); lastC[2][3] =7; } //Write Midi Note Off if ((keysC[2][3] ==1) and (lastC[2][3] ==7)) { MidiSend(noteOn3, 46, velocity); lastC[2][3] =0; } //C47 if ((keysC[2][4] ==0) and (lastC[2][4] ==0)) { MidiSend(noteOff3, 47, velocity); lastC[2][4] =7; } //Write Midi Note Off if ((keysC[2][4] ==1) and (lastC[2][4] ==7)) { MidiSend(noteOn3, 47, velocity); lastC[2][4] =0; } //C48 if ((keysC[2][5] ==0) and (lastC[2][5] ==0)) { MidiSend(noteOff3, 48, velocity); lastC[2][5] =7; } //Write Midi Note Off if ((keysC[2][5] ==1) and (lastC[2][5] ==7)) { MidiSend(noteOn3, 48, velocity); lastC[2][5] =0; } //C49 if ((keysC[3][0] ==0) and (lastC[3][0] ==0)) { MidiSend(noteOff3, 49, velocity); lastC[3][0] =7; } //Write Midi Note Off if ((keysC[3][0] ==1) and (lastC[3][0] ==7)) { MidiSend(noteOn3, 49, velocity); lastC[3][0] =0; } //C50 if ((keysC[3][1] ==0) and (lastC[3][1] ==0)) { MidiSend(noteOff3, 50, velocity); lastC[3][1] =7; } //Write Midi Note Off if ((keysC[3][1] ==1) and (lastC[3][1] ==7)) { MidiSend(noteOn3, 50, velocity); lastC[3][1] =0; } //C51 if ((keysC[3][2] ==0) and (lastC[3][2] ==0)) { MidiSend(noteOff3, 51, velocity); lastC[3][2] =7; } //Write Midi Note Off if ((keysC[3][2] ==1) and (lastC[3][2] ==7)) { MidiSend(noteOn3, 51, velocity); lastC[3][2] =0; } //C52 if ((keysC[3][3] ==0) and (lastC[3][3] ==0)) { MidiSend(noteOff3, 52, velocity); lastC[3][3] =7; } //Write Midi Note Off if ((keysC[3][3] ==1) and (lastC[3][3] ==7)) { MidiSend(noteOn3, 52, velocity); lastC[3][3] =0; } //C53 if ((keysC[3][4] ==0) and (lastC[3][4] ==0)) { MidiSend(noteOff3, 53, velocity); lastC[3][4] =7; } //Write Midi Note Off if ((keysC[3][4] ==1) and (lastC[3][4] ==7)) { MidiSend(noteOn3, 53, velocity); lastC[3][4] =0; } //C54 if ((keysC[3][5] ==0) and (lastC[3][5] ==0)) { MidiSend(noteOff3, 54, velocity); lastC[3][5] =7; } //Write Midi Note Off if ((keysC[3][5] ==1) and (lastC[3][5] ==7)) { MidiSend(noteOn3, 54, velocity); lastC[3][5] =0; } //C55 if ((keysC[4][0] ==0) and (lastC[4][0] ==0)) { MidiSend(noteOff3, 55, velocity); lastC[4][0] =7; } //Write Midi Note Off if ((keysC[4][0] ==1) and (lastC[4][0] ==7)) { MidiSend(noteOn3, 55, velocity); lastC[4][0] =0; } //C56 if ((keysC[4][1] ==0) and (lastC[4][1] ==0)) { MidiSend(noteOff3, 56, velocity); lastC[4][1] =7; } //Write Midi Note Off if ((keysC[4][1] ==1) and (lastC[4][1] ==7)) { MidiSend(noteOn3, 56, velocity); lastC[4][1] =0; } //C57 if ((keysC[4][2] ==0) and (lastC[4][2] ==0)) { MidiSend(noteOff3, 57, velocity); lastC[4][2] =7; } //Write Midi Note Off if ((keysC[4][2] ==1) and (lastC[4][2] ==7)) { MidiSend(noteOn3, 57, velocity); lastC[4][2] =0; } //C58 if ((keysC[4][3] ==0) and (lastC[4][3] ==0)) { MidiSend(noteOff3, 58, velocity); lastC[4][3] =7; } //Write Midi Note Off if ((keysC[4][3] ==1) and (lastC[4][3] ==7)) { MidiSend(noteOn3, 58, velocity); lastC[4][3] =0; } //C59 if ((keysC[4][4] ==0) and (lastC[4][4] ==0)) { MidiSend(noteOff3, 59, velocity); lastC[4][4] =7; } //Write Midi Note Off if ((keysC[4][4] ==1) and (lastC[4][4] ==7)) { MidiSend(noteOn3, 59, velocity); lastC[4][4] =0; } //C60 if ((keysC[4][5] ==0) and (lastC[4][5] ==0)) { MidiSend(noteOff3, 60, velocity); lastC[4][5] =7; } //Write Midi Note Off if ((keysC[4][5] ==1) and (lastC[4][5] ==7)) { MidiSend(noteOn3, 60, velocity); lastC[4][5] =0; } //C61 if ((keysC[5][0] ==0) and (lastC[5][0] ==0)) { MidiSend(noteOff3, 61, velocity); lastC[5][0] =7; } //Write Midi Note Off if ((keysC[5][0] ==1) and (lastC[5][0] ==7)) { MidiSend(noteOn3, 61, velocity); lastC[5][0] =0; } //C62 if ((keysC[5][1] ==0) and (lastC[5][1] ==0)) { MidiSend(noteOff3, 62, velocity); lastC[5][1] =7; } //Write Midi Note Off if ((keysC[5][1] ==1) and (lastC[5][1] ==7)) { MidiSend(noteOn3, 62, velocity); lastC[5][1] =0; } //C63 if ((keysC[5][2] ==0) and (lastC[5][2] ==0)) { MidiSend(noteOff3, 63, velocity); lastC[5][2] =7; } //Write Midi Note Off if ((keysC[5][2] ==1) and (lastC[5][2] ==7)) { MidiSend(noteOn3, 63, velocity); lastC[5][2] =0; } //C64 if ((keysC[5][3] ==0) and (lastC[5][3] ==0)) { MidiSend(noteOff3, 64, velocity); lastC[5][3] =7; } //Write Midi Note Off if ((keysC[5][3] ==1) and (lastC[5][3] ==7)) { MidiSend(noteOn3, 64, velocity); lastC[5][3] =0; } //C65 if ((keysC[5][4] ==0) and (lastC[5][4] ==0)) { MidiSend(noteOff3, 65, velocity); lastC[5][4] =7; } //Write Midi Note Off if ((keysC[5][4] ==1) and (lastC[5][4] ==7)) { MidiSend(noteOn3, 65, velocity); lastC[5][4] =0; } //C66 if ((keysC[5][5] ==0) and (lastC[5][5] ==0)) { MidiSend(noteOff3, 66, velocity); lastC[5][5] =7; } //Write Midi Note Off if ((keysC[5][5] ==1) and (lastC[5][5] ==7)) { MidiSend(noteOn3, 66, velocity); lastC[5][5] =0; } //C67 if ((keysC[6][0] ==0) and (lastC[6][0] ==0)) { MidiSend(noteOff3, 67, velocity); lastC[6][0] =7; } //Write Midi Note Off if ((keysC[6][0] ==1) and (lastC[6][0] ==7)) { MidiSend(noteOn3, 67, velocity); lastC[6][0] =0; } //Expression pedal on analog pin 0 to Channel 6 int Cur6 =analogRead(0); int Map6 =map(Cur6, 0, 1023, 0, 127); if (abs(Cur6 - LastPot6)>=8) { MidiSend(chan6,Exp,Map6); LastPot6 =Cur6; } //Expression pedal on analog pin 1 to Channel 7 int Cur7 =analogRead(1); int Map7 =map(Cur7, 0, 1023, 0, 127); if (abs(Cur7 - LastPot7)>=8) { MidiSend(chan7,Exp,Map7); LastPot7 =Cur7; } }void MidiSend(int one, int two, int three) { Serial.write(one); Serial.write(two); Serial.write(three); } 
Bussed Keyboard CodeArduino
Code to upload to the Arduino if you are following the Bussed Keyboard Schematic.
// Name:Arduino Mega Midi Controller 61x4 plus 3 potentiometers.// Version 1.0// Created:April 12, 2021// Author:Larason2// Acknowledgements:Bald Engineer, Amanda Ghassaei, jeffb42, GrumpyMike//Note Databyte keysA[11][6];byte keysB[11][6];byte keysC[11][6];byte keysD[11][6];//Last Key Statebyte lastA[11][6];byte lastB[11][6];byte lastC[11][6];byte lastD[11][6];//Midi Messages Sentint noteOn1 =144;int noteOff1 =128;int noteOn2 =145;int noteOff2 =129;int noteOn3 =146;int noteOff3 =130;int noteOn4 =147;int noteOff4 =131;int velocity =100;int chan6 =181;int chan7 =182;int chan8 =183;int Exp =11;//Last Potentiometer Stateint LastPot6 =1;int LastPot7 =1;int LastPot8 =1;void setup() { // Start Serial at Midi rate Serial.begin(31250); //Initialize Pins 1-10 pinMode(2, INPUT); pinMode(3, INPUT); pinMode(4, INPUT); pinMode(5, INPUT); pinMode(6, INPUT); pinMode(7, INPUT); pinMode(8, INPUT); pinMode(9, INPUT); pinMode(10, INPUT); pinMode(11, INPUT); //Pins 11-20 pinMode(12, INPUT); pinMode(13, INPUT); pinMode(14, INPUT); pinMode(15, INPUT); pinMode(16, INPUT); pinMode(17, INPUT); pinMode(18, INPUT); pinMode(19, INPUT); pinMode(20, INPUT); pinMode(21, INPUT); //Pins 21-30 pinMode(22, INPUT); pinMode(23, INPUT); pinMode(24, INPUT); pinMode(25, INPUT); pinMode(26, INPUT); pinMode(27, INPUT); pinMode(28, INPUT); pinMode(29, INPUT); pinMode(30, INPUT); pinMode(31, INPUT); //Pins 31-40 pinMode(32, INPUT); pinMode(33, INPUT); pinMode(34, INPUT); pinMode(35, INPUT); pinMode(36, INPUT); pinMode(37, INPUT); pinMode(38, INPUT); pinMode(39, INPUT); pinMode(40, INPUT); pinMode(41, INPUT); //Pins 41-50 pinMode(42, INPUT); pinMode(43, INPUT); pinMode(44, INPUT); pinMode(45, INPUT); pinMode(46, INPUT); pinMode(47, INPUT); pinMode(48, INPUT); pinMode(49, INPUT); pinMode(50, INPUT); pinMode(51, INPUT); //Pins 51-61 pinMode(52, INPUT); pinMode(53, INPUT); pinMode(A0, INPUT); pinMode(A1, INPUT); pinMode(A2, INPUT); pinMode(A3, INPUT); pinMode(A4, INPUT); pinMode(A5, INPUT); pinMode(A6, INPUT); pinMode(A7, INPUT); pinMode(A8, INPUT); //Column Pins pinMode(A9, INPUT); pinMode(A10, INPUT); pinMode(A11, INPUT); pinMode(A12, INPUT); //Pot Pins pinMode(A13, INPUT); pinMode(A14, INPUT); pinMode(A15, INPUT);}void loop() { // Setup pins for keyboards //Pins 1-10 pinMode(2, INPUT_PULLUP); pinMode (3, INPUT_PULLUP); pinMode(4, INPUT_PULLUP); pinMode(5, INPUT_PULLUP); pinMode(6, INPUT_PULLUP); pinMode(7, INPUT_PULLUP); pinMode(8, INPUT_PULLUP); pinMode(9, INPUT_PULLUP); pinMode(10, INPUT_PULLUP); pinMode(11, INPUT_PULLUP); //Pins 11-20 pinMode(12, INPUT_PULLUP); pinMode(13, INPUT_PULLUP); pinMode(14, INPUT_PULLUP); pinMode(15, INPUT_PULLUP); pinMode(16, INPUT_PULLUP); pinMode(17, INPUT_PULLUP); pinMode(18, INPUT_PULLUP); pinMode(19, INPUT_PULLUP); pinMode(20, INPUT_PULLUP); pinMode(21, INPUT_PULLUP); //Pins 21-30 pinMode(22, INPUT_PULLUP); pinMode(23, INPUT_PULLUP); pinMode(24, INPUT_PULLUP); pinMode(25, INPUT_PULLUP); pinMode(26, INPUT_PULLUP); pinMode(27, INPUT_PULLUP); pinMode(28, INPUT_PULLUP); pinMode(29, INPUT_PULLUP); pinMode(30, INPUT_PULLUP); pinMode(31, INPUT_PULLUP); //Pins 31-40 pinMode(32, INPUT_PULLUP); pinMode(33, INPUT_PULLUP); pinMode(34, INPUT_PULLUP); pinMode(35, INPUT_PULLUP); pinMode(36, INPUT_PULLUP); pinMode(37, INPUT_PULLUP); pinMode(38, INPUT_PULLUP); pinMode(39, INPUT_PULLUP); pinMode(40, INPUT_PULLUP); pinMode(41, INPUT_PULLUP); //Pins 41-50 pinMode(42, INPUT_PULLUP); pinMode(43, INPUT_PULLUP); pinMode(44, INPUT_PULLUP); pinMode(45, INPUT_PULLUP); pinMode(46, INPUT_PULLUP); pinMode(47, INPUT_PULLUP); pinMode(48, INPUT_PULLUP); pinMode(49, INPUT_PULLUP); pinMode(50, INPUT_PULLUP); pinMode(51, INPUT_PULLUP); //Pins 51-61 pinMode(52, INPUT_PULLUP); pinMode(53, INPUT_PULLUP); pinMode(A0, INPUT_PULLUP); pinMode(A1, INPUT_PULLUP); pinMode(A2, INPUT_PULLUP); pinMode(A3, INPUT_PULLUP); pinMode(A4, INPUT_PULLUP); pinMode(A5, INPUT_PULLUP); pinMode(A6, INPUT_PULLUP); pinMode(A7, INPUT_PULLUP); pinMode(A8, INPUT_PULLUP); //Read Keyboard A pinMode(A9, OUTPUT); digitalWrite(A9, LOW); //Keys 1-10 keysA[0][0] =digitalRead(2); keysA[1][0] =digitalRead(3); keysA[1][1] =digitalRead(4); keysA[1][2] =digitalRead(5); keysA[1][3] =digitalRead(6); keysA[1][4] =digitalRead(7); keysA[1][5] =digitalRead(8); keysA[2][0] =digitalRead(9); keysA[2][1] =digitalRead(10); keysA[2][2] =digitalRead(11); //Keys 11-20 keysA[2][3] =digitalRead(12); keysA[2][4] =digitalRead(13); keysA[2][5] =digitalRead(14); keysA[3][0] =digitalRead(15); keysA[3][1] =digitalRead(16); keysA[3][2] =digitalRead(17); keysA[3][3] =digitalRead(18); keysA[3][4] =digitalRead(19); keysA[3][5] =digitalRead(20); keysA[4][0] =digitalRead(21); //Keys 21-30 keysA[4][1] =digitalRead(22); keysA[4][2] =digitalRead(23); keysA[4][3] =digitalRead(24); keysA[4][4] =digitalRead(25); keysA[4][5] =digitalRead(26); keysA[5][0] =digitalRead(27); keysA[5][1] =digitalRead(28); keysA[5][2] =digitalRead(29); keysA[5][3] =digitalRead(30); keysA[5][4] =digitalRead(31); //Keys 31-40 keysA[5][5] =digitalRead(32); keysA[6][0] =digitalRead(33); keysA[6][1] =digitalRead(34); keysA[6][2] =digitalRead(35); keysA[6][3] =digitalRead(36); keysA[6][4] =digitalRead(37); keysA[6][5] =digitalRead(38); keysA[7][0] =digitalRead(39); keysA[7][1] =digitalRead(40); keysA[7][2] =digitalRead(41); //Keys 41-50 keysA[7][3] =digitalRead(42); keysA[7][4] =digitalRead(43); keysA[7][5] =digitalRead(44); keysA[8][0] =digitalRead(45); keysA[8][1] =digitalRead(46); keysA[8][2] =digitalRead(47); keysA[8][3] =digitalRead(48); keysA[8][4] =digitalRead(49); keysA[8][5] =digitalRead(50); keysA[9][0] =digitalRead(51); //Keys 51-61 keysA[9][1] =digitalRead(52); keysA[9][2] =digitalRead(53); keysA[9][3] =digitalRead(A0); keysA[9][4] =digitalRead(A1); keysA[9][5] =digitalRead(A2); keysA[10][0] =digitalRead(A3); keysA[10][1] =digitalRead(A4); keysA[10][2] =digitalRead(A5); keysA[10][3] =digitalRead(A6); keysA[10][4] =digitalRead(A7); keysA[10][5] =digitalRead(A8); pinMode(A9, INPUT); // Read Keyboard B pinMode(A10, OUTPUT); digitalWrite(A10, LOW); //Keys 1-10 keysB[0][0] =digitalRead(2); keysB[1][0] =digitalRead(3); keysB[1][1] =digitalRead(4); keysB[1][2] =digitalRead(5); keysB[1][3] =digitalRead(6); keysB[1][4] =digitalRead(7); keysB[1][5] =digitalRead(8); keysB[2][0] =digitalRead(9); keysB[2][1] =digitalRead(10); keysB[2][2] =digitalRead(11); //Keys 11-20 keysB[2][3] =digitalRead(12); keysB[2][4] =digitalRead(13); keysB[2][5] =digitalRead(14); keysB[3][0] =digitalRead(15); keysB[3][1] =digitalRead(16); keysB[3][2] =digitalRead(17); keysB[3][3] =digitalRead(18); keysB[3][4] =digitalRead(19); keysB[3][5] =digitalRead(20); keysB[4][0] =digitalRead(21); //Keys 21-30 keysB[4][1] =digitalRead(22); keysB[4][2] =digitalRead(23); keysB[4][3] =digitalRead(24); keysB[4][4] =digitalRead(25); keysB[4][5] =digitalRead(26); keysB[5][0] =digitalRead(27); keysB[5][1] =digitalRead(28); keysB[5][2] =digitalRead(29); keysB[5][3] =digitalRead(30); keysB[5][4] =digitalRead(31); //Keys 31-40 keysB[5][5] =digitalRead(32); keysB[6][0] =digitalRead(33); keysB[6][1] =digitalRead(34); keysB[6][2] =digitalRead(35); keysB[6][3] =digitalRead(36); keysB[6][4] =digitalRead(37); keysB[6][5] =digitalRead(38); keysB[7][0] =digitalRead(39); keysB[7][1] =digitalRead(40); keysB[7][2] =digitalRead(41); //Keys 41-50 keysB[7][3] =digitalRead(42); keysB[7][4] =digitalRead(43); keysB[7][5] =digitalRead(44); keysB[8][0] =digitalRead(45); keysB[8][1] =digitalRead(46); keysB[8][2] =digitalRead(47); keysB[8][3] =digitalRead(48); keysB[8][4] =digitalRead(49); keysB[8][5] =digitalRead(50); keysB[9][0] =digitalRead(51); //Keys 51-61 keysB[9][1] =digitalRead(52); keysB[9][2] =digitalRead(53); keysB[9][3] =digitalRead(A0); keysB[9][4] =digitalRead(A1); keysB[9][5] =digitalRead(A2); keysB[10][0] =digitalRead(A3); keysB[10][1] =digitalRead(A4); keysB[10][2] =digitalRead(A5); keysB[10][3] =digitalRead(A6); keysB[10][4] =digitalRead(A7); keysB[10][5] =digitalRead(A8); pinMode(A10, INPUT); // Read Keyboard C pinMode(A11, OUTPUT); digitalWrite(A11, LOW); //Keys 1-10 keysC[0][0] =digitalRead(2); keysC[1][0] =digitalRead(3); keysC[1][1] =digitalRead(4); keysC[1][2] =digitalRead(5); keysC[1][3] =digitalRead(6); keysC[1][4] =digitalRead(7); keysC[1][5] =digitalRead(8); keysC[2][0] =digitalRead(9); keysC[2][1] =digitalRead(10); keysC[2][2] =digitalRead(11); //Keys 11-20 keysC[2][3] =digitalRead(12); keysC[2][4] =digitalRead(13); keysC[2][5] =digitalRead(14); keysC[3][0] =digitalRead(15); keysC[3][1] =digitalRead(16); keysC[3][2] =digitalRead(17); keysC[3][3] =digitalRead(18); keysC[3][4] =digitalRead(19); keysC[3][5] =digitalRead(20); keysC[4][0] =digitalRead(21); //Keys 21-30 keysC[4][1] =digitalRead(22); keysC[4][2] =digitalRead(23); keysC[4][3] =digitalRead(24); keysC[4][4] =digitalRead(25); keysC[4][5] =digitalRead(26); keysC[5][0] =digitalRead(27); keysC[5][1] =digitalRead(28); keysC[5][2] =digitalRead(29); keysC[5][3] =digitalRead(30); keysC[5][4] =digitalRead(31); //Keys 31-40 keysC[5][5] =digitalRead(32); keysC[6][0] =digitalRead(33); keysC[6][1] =digitalRead(34); keysC[6][2] =digitalRead(35); keysC[6][3] =digitalRead(36); keysC[6][4] =digitalRead(37); keysC[6][5] =digitalRead(38); keysC[7][0] =digitalRead(39); keysC[7][1] =digitalRead(40); keysC[7][2] =digitalRead(41); //Keys 41-50 keysC[7][3] =digitalRead(42); keysC[7][4] =digitalRead(43); keysC[7][5] =digitalRead(44); keysC[8][0] =digitalRead(45); keysC[8][1] =digitalRead(46); keysC[8][2] =digitalRead(47); keysC[8][3] =digitalRead(48); keysC[8][4] =digitalRead(49); keysC[8][5] =digitalRead(50); keysC[9][0] =digitalRead(51); //Keys 51-61 keysC[9][1] =digitalRead(52); keysC[9][2] =digitalRead(53); keysC[9][3] =digitalRead(A0); keysC[9][4] =digitalRead(A1); keysC[9][5] =digitalRead(A2); keysC[10][0] =digitalRead(A3); keysC[10][1] =digitalRead(A4); keysC[10][2] =digitalRead(A5); keysC[10][3] =digitalRead(A6); keysC[10][4] =digitalRead(A7); keysC[10][5] =digitalRead(A8); pinMode(A11, INPUT); // Read Keyboard D pinMode(A12, OUTPUT); digitalWrite(A12, LOW); //Keys 1-10 keysD[0][0] =digitalRead(2); keysD[1][0] =digitalRead(3); keysD[1][1] =digitalRead(4); keysD[1][2] =digitalRead(5); keysD[1][3] =digitalRead(6); keysD[1][4] =digitalRead(7); keysD[1][5] =digitalRead(8); keysD[2][0] =digitalRead(9); keysD[2][1] =digitalRead(10); keysD[2][2] =digitalRead(11); //Keys 11-20 keysD[2][3] =digitalRead(12); keysD[2][4] =digitalRead(13); keysD[2][5] =digitalRead(14); keysD[3][0] =digitalRead(15); keysD[3][1] =digitalRead(16); keysD[3][2] =digitalRead(17); keysD[3][3] =digitalRead(18); keysD[3][4] =digitalRead(19); keysD[3][5] =digitalRead(20); keysD[4][0] =digitalRead(21); //Keys 21-30 keysD[4][1] =digitalRead(22); keysD[4][2] =digitalRead(23); keysD[4][3] =digitalRead(24); keysD[4][4] =digitalRead(25); keysD[4][5] =digitalRead(26); keysD[5][0] =digitalRead(27); keysD[5][1] =digitalRead(28); keysD[5][2] =digitalRead(29); keysD[5][3] =digitalRead(30); keysD[5][4] =digitalRead(31); //Keys 31-40 keysD[5][5] =digitalRead(32); keysD[6][0] =digitalRead(33); keysD[6][1] =digitalRead(34); keysD[6][2] =digitalRead(35); keysD[6][3] =digitalRead(36); keysD[6][4] =digitalRead(37); keysD[6][5] =digitalRead(38); keysD[7][0] =digitalRead(39); keysD[7][1] =digitalRead(40); keysD[7][2] =digitalRead(41); //Keys 41-50 keysD[7][3] =digitalRead(42); keysD[7][4] =digitalRead(43); keysD[7][5] =digitalRead(44); keysD[8][0] =digitalRead(45); keysD[8][1] =digitalRead(46); keysD[8][2] =digitalRead(47); keysD[8][3] =digitalRead(48); keysD[8][4] =digitalRead(49); keysD[8][5] =digitalRead(50); keysD[9][0] =digitalRead(51); //Keys 51-61 keysD[9][1] =digitalRead(52); keysD[9][2] =digitalRead(53); keysD[9][3] =digitalRead(A0); keysD[9][4] =digitalRead(A1); keysD[9][5] =digitalRead(A2); keysD[10][0] =digitalRead(A3); keysD[10][1] =digitalRead(A4); keysD[10][2] =digitalRead(A5); keysD[10][3] =digitalRead(A6); keysD[10][4] =digitalRead(A7); keysD[10][5] =digitalRead(A8); pinMode(A12, INPUT); //Return pins to Initialized state //Pins 1-10 pinMode(2, INPUT); pinMode(3, INPUT); pinMode(4, INPUT); pinMode(5, INPUT); pinMode(6, INPUT); pinMode(7, INPUT); pinMode(8, INPUT); pinMode(9, INPUT); pinMode(10, INPUT); pinMode(11, INPUT); //Pins 11-20 pinMode(12, INPUT); pinMode(13, INPUT); pinMode(14, INPUT); pinMode(15, INPUT); pinMode(16, INPUT); pinMode(17, INPUT); pinMode(18, INPUT); pinMode(19, INPUT); pinMode(20, INPUT); pinMode(21, INPUT); //Pins 21-30 pinMode(22, INPUT); pinMode(23, INPUT); pinMode(24, INPUT); pinMode(25, INPUT); pinMode(26, INPUT); pinMode(27, INPUT); pinMode(28, INPUT); pinMode(29, INPUT); pinMode(30, INPUT); pinMode(31, INPUT); //Pins 31-40 pinMode(32, INPUT); pinMode(33, INPUT); pinMode(34, INPUT); pinMode(35, INPUT); pinMode(36, INPUT); pinMode(37, INPUT); pinMode(38, INPUT); pinMode(39, INPUT); pinMode(40, INPUT); pinMode(41, INPUT); //Pins 41-50 pinMode(42, INPUT); pinMode(43, INPUT); pinMode(44, INPUT); pinMode(45, INPUT); pinMode(46, INPUT); pinMode(47, INPUT); pinMode(48, INPUT); pinMode(49, INPUT); pinMode(50, INPUT); pinMode(51, INPUT); //Pins 51-61 pinMode(52, INPUT); pinMode(53, INPUT); pinMode(A0, INPUT); pinMode(A1, INPUT); pinMode(A2, INPUT); pinMode(A3, INPUT); pinMode(A4, INPUT); pinMode(A5, INPUT); pinMode(A6, INPUT); pinMode(A7, INPUT); pinMode(A8, INPUT); //Column Pins pinMode(A9, INPUT); pinMode(A10, INPUT); pinMode(A11, INPUT); pinMode(A12, INPUT); //Pot Pins pinMode(A13, INPUT); pinMode(A14, INPUT); pinMode(A15, INPUT); /* //Invert Keyboard data only if needed. //Example only for 32 pedals of a pedalboard, first 32 keys of keyboard C. //Column 1 if (keysC[0][0] ==0) { keysC[0][0] =1; } else if (keysC[0][0] ==1) { keysC[0][0] =0; } //Column 2 if (keysC[1][0] ==0) { keysC[1][0] =1; } else if (keysC[1][0] ==1) { keysC[1][0] =0; } if (keysC[1][1] ==0) { keysC[1][1] =1; } else if (keysC[1][1] ==1) { keysC[1][1] =0; } if (keysC[1][2] ==0) { keysC[1][2] =1; } else if (keysC[1][2] ==1) { keysC[1][2] =0; } if (keysC[1][3] ==0) { keysC[1][3] =1; } else if (keysC[1][3] ==1) { keysC[1][3] =0; } if (keysC[1][4] ==0) { keysC[1][4] =1; } else if (keysC[1][4] ==1) { keysC[1][4] =0; } if (keysC[1][5] ==0) { keysC[1][5] =1; } else if (keysC[1][5] ==1) { keysC[1][5] =0; } //Column 3 if (keysC[2][0] ==0) { keysC[2][0] =1; } else if (keysC[2][0] ==1) { keysC[2][0] =0; } if (keysC[2][1] ==0) { keysC[2][1] =1; } else if (keysC[2][1] ==1) { keysC[2][1] =0; } if (keysC[2][2] ==0) { keysC[2][2] =1; } else if (keysC[2][2] ==1) { keysC[2][2] =0; } if (keysC[2][3] ==0) { keysC[2][3] =1; } else if (keysC[2][3] ==1) { keysC[2][3] =0; } if (keysC[2][4] ==0) { keysC[2][4] =1; } else if (keysC[2][4] ==1) { keysC[2][4] =0; } if (keysC[2][5] ==0) { keysC[2][5] =1; } else if (keysC[2][5] ==1) { keysC[2][5] =0; } //Column 4 if (keysC[3][0] ==0) { keysC[3][0] =1; } else if (keysC[3][0] ==1) { keysC[3][0] =0; } if (keysC[3][1] ==0) { keysC[3][1] =1; } else if (keysC[3][1] ==1) { keysC[3][1] =0; } if (keysC[3][2] ==0) { keysC[3][2] =1; } else if (keysC[3][2] ==1) { keysC[3][2] =0; } if (keysC[3][3] ==0) { keysC[3][3] =1; } else if (keysC[3][3] ==1) { keysC[3][3] =0; } if (keysC[3][4] ==0) { keysC[3][4] =1; } else if (keysC[3][4] ==1) { keysC[3][4] =0; } if (keysC[3][5] ==0) { keysC[3][5] =1; } else if (keysC[3][5] ==1) { keysC[3][5] =0; } //Column 5 if (keysC[4][0] ==0) { keysC[4][0] =1; } else if (keysC[4][0] ==1) { keysC[4][0] =0; } if (keysC[4][1] ==0) { keysC[4][1] =1; } else if (keysC[4][1] ==1) { keysC[4][1] =0; } if (keysC[4][2] ==0) { keysC[4][2] =1; } else if (keysC[4][2] ==1) { keysC[4][2] =0; } if (keysC[4][3] ==0) { keysC[4][3] =1; } else if (keysC[4][3] ==1) { keysC[4][3] =0; } if (keysC[4][4] ==0) { keysC[4][4] =1; } else if (keysC[4][4] ==1) { keysC[4][4] =0; } if (keysC[4][5] ==0) { keysC[4][5] =1; } else if (keysC[4][5] ==1) { keysC[4][5] =0; } //Column 6 if (keysC[5][0] ==0) { keysC[5][0] =1; } else if (keysC[5][0] ==1) { keysC[5][0] =0; } if (keysC[5][1] ==0) { keysC[5][1] =1; } else if (keysC[5][1] ==1) { keysC[5][1] =0; } if (keysC[5][2] ==0) { keysC[5][2] =1; } else if (keysC[5][2] ==1) { keysC[5][2] =0; } if (keysC[5][3] ==0) { keysC[5][3] =1; } else if (keysC[5][3] ==1) { keysC[5][3] =0; } if (keysC[5][4] ==0) { keysC[5][4] =1; } else if (keysC[5][4] ==1) { keysC[5][4] =0; } if (keysC[5][5] ==0) { keysC[5][5] =1; } else if (keysC[5][5] ==1) { keysC[5][5] =0; } //Column 7 if (keysC[6][0] ==0) { keysC[6][0] =1; } else if (keysC[6][0] ==1) { keysC[6][0] =0; } */ //Write Keyboard A //A36 if ((keysA[0][0] ==0) and (lastA[0][0] ==0)) { MidiSend(noteOn1, 36, velocity); lastA[0][0] =7; } if ((keysA[0][0] ==1) and (lastA[0][0] ==7)) { MidiSend(noteOff1, 36, velocity); lastA[0][0] =0; } //A37 if ((keysA[1][0] ==0) and (lastA[1][0] ==0)) { MidiSend(noteOn1, 37, velocity); lastA[1][0] =7; } if ((keysA[1][0] ==1) and (lastA[1][0] ==7)) { MidiSend(noteOff1, 37, velocity); lastA[1][0] =0; } //A38 if ((keysA[1][1] ==0) and (lastA[1][1] ==0)) { MidiSend(noteOn1, 38, velocity); lastA[1][1] =7; } //Write Midi Note Off if ((keysA[1][1] ==1) and (lastA[1][1] ==7)) { MidiSend(noteOff1, 38, velocity); lastA[1][1] =0; } //A39 if ((keysA[1][2] ==0) and (lastA[1][2] ==0)) { MidiSend(noteOn1, 39, velocity); lastA[1][2] =7; } //Write Midi Note Off if ((keysA[1][2] ==1) and (lastA[1][2] ==7)) { MidiSend(noteOff1, 39, velocity); lastA[1][2] =0; } //A40 if ((keysA[1][3] ==0) and (lastA[1][3] ==0)) { MidiSend(noteOn1, 40, velocity); lastA[1][3] =7; } //Write Midi Note Off if ((keysA[1][3] ==1) and (lastA[1][3] ==7)) { MidiSend(noteOff1, 40, velocity); lastA[1][3] =0; } //A41 if ((keysA[1][4] ==0) and (lastA[1][4] ==0)) { MidiSend(noteOn1, 41, velocity); lastA[1][4] =7; } //Write Midi Note Off if ((keysA[1][4] ==1) and (lastA[1][4] ==7)) { MidiSend(noteOff1, 41, velocity); lastA[1][4] =0; } //A42 if ((keysA[1][5] ==0) and (lastA[1][5] ==0)) { MidiSend(noteOn1, 42, velocity); lastA[1][5] =7; } //Write Midi Note Off if ((keysA[1][5] ==1) and (lastA[1][5] ==7)) { MidiSend(noteOff1, 42, velocity); lastA[1][5] =0; } //A43 if ((keysA[2][0] ==0) and (lastA[2][0] ==0)) { MidiSend(noteOn1, 43, velocity); lastA[2][0] =7; } //Write Midi Note Off if ((keysA[2][0] ==1) and (lastA[2][0] ==7)) { MidiSend(noteOff1, 43, velocity); lastA[2][0] =0; } //A44 if ((keysA[2][1] ==0) and (lastA[2][1] ==0)) { MidiSend(noteOn1, 44, velocity); lastA[2][1] =7; } //Write Midi Note Off if ((keysA[2][1] ==1) and (lastA[2][1] ==7)) { MidiSend(noteOff1, 44, velocity); lastA[2][1] =0; } //A45 if ((keysA[2][2] ==0) and (lastA[2][2] ==0)) { MidiSend(noteOn1, 45, velocity); lastA[2][2] =7; } //Write Midi Note Off if ((keysA[2][2] ==1) and (lastA[2][2] ==7)) { MidiSend(noteOff1, 45, velocity); lastA[2][2] =0; } //A46 if ((keysA[2][3] ==0) and (lastA[2][3] ==0)) { MidiSend(noteOn1, 46, velocity); lastA[2][3] =7; } //Write Midi Note Off if ((keysA[2][3] ==1) and (lastA[2][3] ==7)) { MidiSend(noteOff1, 46, velocity); lastA[2][3] =0; } //A47 if ((keysA[2][4] ==0) and (lastA[2][4] ==0)) { MidiSend(noteOn1, 47, velocity); lastA[2][4] =7; } //Write Midi Note Off if ((keysA[2][4] ==1) and (lastA[2][4] ==7)) { MidiSend(noteOff1, 47, velocity); lastA[2][4] =0; } //A48 if ((keysA[2][5] ==0) and (lastA[2][5] ==0)) { MidiSend(noteOn1, 48, velocity); lastA[2][5] =7; } //Write Midi Note Off if ((keysA[2][5] ==1) and (lastA[2][5] ==7)) { MidiSend(noteOff1, 48, velocity); lastA[2][5] =0; } //A49 if ((keysA[3][0] ==0) and (lastA[3][0] ==0)) { MidiSend(noteOn1, 49, velocity); lastA[3][0] =7; } //Write Midi Note Off if ((keysA[3][0] ==1) and (lastA[3][0] ==7)) { MidiSend(noteOff1, 49, velocity); lastA[3][0] =0; } //A50 if ((keysA[3][1] ==0) and (lastA[3][1] ==0)) { MidiSend(noteOn1, 50, velocity); lastA[3][1] =7; } //Write Midi Note Off if ((keysA[3][1] ==1) and (lastA[3][1] ==7)) { MidiSend(noteOff1, 50, velocity); lastA[3][1] =0; } //A51 if ((keysA[3][2] ==0) and (lastA[3][2] ==0)) { MidiSend(noteOn1, 51, velocity); lastA[3][2] =7; } //Write Midi Note Off if ((keysA[3][2] ==1) and (lastA[3][2] ==7)) { MidiSend(noteOff1, 51, velocity); lastA[3][2] =0; } //A52 if ((keysA[3][3] ==0) and (lastA[3][3] ==0)) { MidiSend(noteOn1, 52, velocity); lastA[3][3] =7; } //Write Midi Note Off if ((keysA[3][3] ==1) and (lastA[3][3] ==7)) { MidiSend(noteOff1, 52, velocity); lastA[3][3] =0; } //A53 if ((keysA[3][4] ==0) and (lastA[3][4] ==0)) { MidiSend(noteOn1, 53, velocity); lastA[3][4] =7; } //Write Midi Note Off if ((keysA[3][4] ==1) and (lastA[3][4] ==7)) { MidiSend(noteOff1, 53, velocity); lastA[3][4] =0; } //A54 if ((keysA[3][5] ==0) and (lastA[3][5] ==0)) { MidiSend(noteOn1, 54, velocity); lastA[3][5] =7; } //Write Midi Note Off if ((keysA[3][5] ==1) and (lastA[3][5] ==7)) { MidiSend(noteOff1, 54, velocity); lastA[3][5] =0; } //A55 if ((keysA[4][0] ==0) and (lastA[4][0] ==0)) { MidiSend(noteOn1, 55, velocity); lastA[4][0] =7; } //Write Midi Note Off if ((keysA[4][0] ==1) and (lastA[4][0] ==7)) { MidiSend(noteOff1, 55, velocity); lastA[4][0] =0; } //A56 if ((keysA[4][1] ==0) and (lastA[4][1] ==0)) { MidiSend(noteOn1, 56, velocity); lastA[4][1] =7; } //Write Midi Note Off if ((keysA[4][1] ==1) and (lastA[4][1] ==7)) { MidiSend(noteOff1, 56, velocity); lastA[4][1] =0; } //A57 if ((keysA[4][2] ==0) and (lastA[4][2] ==0)) { MidiSend(noteOn1, 57, velocity); lastA[4][2] =7; } //Write Midi Note Off if ((keysA[4][2] ==1) and (lastA[4][2] ==7)) { MidiSend(noteOff1, 57, velocity); lastA[4][2] =0; } //A58 if ((keysA[4][3] ==0) and (lastA[4][3] ==0)) { MidiSend(noteOn1, 58, velocity); lastA[4][3] =7; } //Write Midi Note Off if ((keysA[4][3] ==1) and (lastA[4][3] ==7)) { MidiSend(noteOff1, 58, velocity); lastA[4][3] =0; } //59 if ((keysA[4][4] ==0) and (lastA[4][4] ==0)) { MidiSend(noteOn1, 59, velocity); lastA[4][4] =7; } //Write Midi Note Off if ((keysA[4][4] ==1) and (lastA[4][4] ==7)) { MidiSend(noteOff1, 59, velocity); lastA[4][4] =0; } //A60 if ((keysA[4][5] ==0) and (lastA[4][5] ==0)) { MidiSend(noteOn1, 60, velocity); lastA[4][5] =7; } //Write Midi Note Off if ((keysA[4][5] ==1) and (lastA[4][5] ==7)) { MidiSend(noteOff1, 60, velocity); lastA[4][5] =0; } //A61 if ((keysA[5][0] ==0) and (lastA[5][0] ==0)) { MidiSend(noteOn1, 61, velocity); lastA[5][0] =7; } //Write Midi Note Off if ((keysA[5][0] ==1) and (lastA[5][0] ==7)) { MidiSend(noteOff1, 61, velocity); lastA[5][0] =0; } //A62 if ((keysA[5][1] ==0) and (lastA[5][1] ==0)) { MidiSend(noteOn1, 62, velocity); lastA[5][1] =7; } //Write Midi Note Off if ((keysA[5][1] ==1) and (lastA[5][1] ==7)) { MidiSend(noteOff1, 62, velocity); lastA[5][1] =0; } //A63 if ((keysA[5][2] ==0) and (lastA[5][2] ==0)) { MidiSend(noteOn1, 63, velocity); lastA[5][2] =7; } //Write Midi Note Off if ((keysA[5][2] ==1) and (lastA[5][2] ==7)) { MidiSend(noteOff1, 63, velocity); lastA[5][2] =0; } //A64 if ((keysA[5][3] ==0) and (lastA[5][3] ==0)) { MidiSend(noteOn1, 64, velocity); lastA[5][3] =7; } //Write Midi Note Off if ((keysA[5][3] ==1) and (lastA[5][3] ==7)) { MidiSend(noteOff1, 64, velocity); lastA[5][3] =0; } //A65 if ((keysA[5][4] ==0) and (lastA[5][4] ==0)) { MidiSend(noteOn1, 65, velocity); lastA[5][4] =7; } //Write Midi Note Off if ((keysA[5][4] ==1) and (lastA[5][4] ==7)) { MidiSend(noteOff1, 65, velocity); lastA[5][4] =0; } //A66 if ((keysA[5][5] ==0) and (lastA[5][5] ==0)) { MidiSend(noteOn1, 66, velocity); lastA[5][5] =7; } //Write Midi Note Off if ((keysA[5][5] ==1) and (lastA[5][5] ==7)) { MidiSend(noteOff1, 66, velocity); lastA[5][5] =0; } //A67 if ((keysA[6][0] ==0) and (lastA[6][0] ==0)) { MidiSend(noteOn1, 67, velocity); lastA[6][0] =7; } //Write Midi Note Off if ((keysA[6][0] ==1) and (lastA[6][0] ==7)) { MidiSend(noteOff1, 67, velocity); lastA[6][0] =0; } //A68 if ((keysA[6][1] ==0) and (lastA[6][1] ==0)) { MidiSend(noteOn1, 68, velocity); lastA[6][1] =7; } //Write Midi Note Off if ((keysA[6][1] ==1) and (lastA[6][1] ==7)) { MidiSend(noteOff1, 68, velocity); lastA[6][1] =0; } //A69 if ((keysA[6][2] ==0) and (lastA[6][2] ==0)) { MidiSend(noteOn1, 69, velocity); lastA[6][2] =7; } //Write Midi Note Off if ((keysA[6][2] ==1) and (lastA[6][2] ==7)) { MidiSend(noteOff1, 69, velocity); lastA[6][2] =0; } //A70 if ((keysA[6][3] ==0) and (lastA[6][3] ==0)) { MidiSend(noteOn1, 70, velocity); lastA[6][3] =7; } //Write Midi Note Off if ((keysA[6][3] ==1) and (lastA[6][3] ==7)) { MidiSend(noteOff1, 70, velocity); lastA[6][3] =0; } //A71 if ((keysA[6][4] ==0) and (lastA[6][4] ==0)) { MidiSend(noteOn1, 71, velocity); lastA[6][4] =7; } //Write Midi Note Off if ((keysA[6][4] ==1) and (lastA[6][4] ==7)) { MidiSend(noteOff1, 71, velocity); lastA[6][4] =0; } //A72 if ((keysA[6][5] ==0) and (lastA[6][5] ==0)) { MidiSend(noteOn1, 72, velocity); lastA[6][5] =7; } //Write Midi Note Off if ((keysA[6][5] ==1) and (lastA[6][5] ==7)) { MidiSend(noteOff1, 72, velocity); lastA[6][5] =0; } //A73 if ((keysA[7][0] ==0) and (lastA[7][0] ==0)) { MidiSend(noteOn1, 73, velocity); lastA[7][0] =7; } //Write Midi Note Off if ((keysA[7][0] ==1) and (lastA[7][0] ==7)) { MidiSend(noteOff1, 73, velocity); lastA[7][0] =0; } //A74 if ((keysA[7][1] ==0) and (lastA[7][1] ==0)) { MidiSend(noteOn1, 74, velocity); lastA[7][1] =7; } //Write Midi Note Off if ((keysA[7][1] ==1) and (lastA[7][1] ==7)) { MidiSend(noteOff1, 74, velocity); lastA[7][1] =0; } //A75 if ((keysA[7][2] ==0) and (lastA[7][2] ==0)) { MidiSend(noteOn1, 75, velocity); lastA[7][2] =7; } //Write Midi Note Off if ((keysA[7][2] ==1) and (lastA[7][2] ==7)) { MidiSend(noteOff1, 75, velocity); lastA[7][2] =0; } //A76 if ((keysA[7][3] ==0) and (lastA[7][3] ==0)) { MidiSend(noteOn1, 76, velocity); lastA[7][3] =7; } //Write Midi Note Off if ((keysA[7][3] ==1) and (lastA[7][3] ==7)) { MidiSend(noteOff1, 76, velocity); lastA[7][3] =0; } //A77 if ((keysA[7][4] ==0) and (lastA[7][4] ==0)) { MidiSend(noteOn1, 77, velocity); lastA[7][4] =7; } //Write Midi Note Off if ((keysA[7][4] ==1) and (lastA[7][4] ==7)) { MidiSend(noteOff1, 77, velocity); lastA[7][4] =0; } //A78 if ((keysA[7][5] ==0) and (lastA[7][5] ==0)) { MidiSend(noteOn1, 78, velocity); lastA[7][5] =7; } //Write Midi Note Off if ((keysA[7][5] ==1) and (lastA[7][5] ==7)) { MidiSend(noteOff1, 78, velocity); lastA[7][5] =0; } //A79 if ((keysA[8][0] ==0) and (lastA[8][0] ==0)) { MidiSend(noteOn1, 79, velocity); lastA[8][0] =7; } //Write Midi Note Off if ((keysA[8][0] ==1) and (lastA[8][0] ==7)) { MidiSend(noteOff1, 79, velocity); lastA[8][0] =0; } //A80 if ((keysA[8][1] ==0) and (lastA[8][1] ==0)) { MidiSend(noteOn1, 80, velocity); lastA[8][1] =7; } //Write Midi Note Off if ((keysA[8][1] ==1) and (lastA[8][1] ==7)) { MidiSend(noteOff1, 80, velocity); lastA[8][1] =0; } //A81 if ((keysA[8][2] ==0) and (lastA[8][2] ==0)) { MidiSend(noteOn1, 81, velocity); lastA[8][2] =7; } //Write Midi Note Off if ((keysA[8][2] ==1) and (lastA[8][2] ==7)) { MidiSend(noteOff1, 81, velocity); lastA[8][2] =0; } //A82 if ((keysA[8][3] ==0) and (lastA[8][3] ==0)) { MidiSend(noteOn1, 82, velocity); lastA[8][3] =7; } //Write Midi Note Off if ((keysA[8][3] ==1) and (lastA[8][3] ==7)) { MidiSend(noteOff1, 82, velocity); lastA[8][3] =0; } //A83 if ((keysA[8][4] ==0) and (lastA[8][4] ==0)) { MidiSend(noteOn1, 83, velocity); lastA[8][4] =7; } //Write Midi Note Off if ((keysA[8][4] ==1) and (lastA[8][4] ==7)) { MidiSend(noteOff1, 83, velocity); lastA[8][4] =0; } //A84 if ((keysA[8][5] ==0) and (lastA[8][5] ==0)) { MidiSend(noteOn1, 84, velocity); lastA[8][5] =7; } //Write Midi Note Off if ((keysA[8][5] ==1) and (lastA[8][5] ==7)) { MidiSend(noteOff1, 84, velocity); lastA[8][5] =0; } //A85 if ((keysA[9][0] ==0) and (lastA[9][0] ==0)) { MidiSend(noteOn1, 85, velocity); lastA[9][0] =7; } //Write Midi Note Off if ((keysA[9][0] ==1) and (lastA[9][0] ==7)) { MidiSend(noteOff1, 85, velocity); lastA[9][0] =0; } //A86 if ((keysA[9][1] ==0) and (lastA[9][1] ==0)) { MidiSend(noteOn1, 86, velocity); lastA[9][1] =7; } //Write Midi Note Off if ((keysA[9][1] ==1) and (lastA[9][1] ==7)) { MidiSend(noteOff1, 86, velocity); lastA[9][1] =0; } //A87 if ((keysA[9][2] ==0) and (lastA[9][2] ==0)) { MidiSend(noteOn1, 87, velocity); lastA[9][2] =7; } //Write Midi Note Off if ((keysA[9][2] ==1) and (lastA[9][2] ==7)) { MidiSend(noteOff1, 87, velocity); lastA[9][2] =0; } //A88 if ((keysA[9][3] ==0) and (lastA[9][3] ==0)) { MidiSend(noteOn1, 88, velocity); lastA[9][3] =7; } //Write Midi Note Off if ((keysA[9][3] ==1) and (lastA[9][3] ==7)) { MidiSend(noteOff1, 88, velocity); lastA[9][3] =0; } //A89 if ((keysA[9][4] ==0) and (lastA[9][4] ==0)) { MidiSend(noteOn1, 89, velocity); lastA[9][4] =7; } //Write Midi Note Off if ((keysA[9][4] ==1) and (lastA[9][4] ==7)) { MidiSend(noteOff1, 89, velocity); lastA[9][4] =0; } //A90 if ((keysA[9][5] ==0) and (lastA[9][5] ==0)) { MidiSend(noteOn1, 90, velocity); lastA[9][5] =7; } //Write Midi Note Off if ((keysA[9][5] ==1) and (lastA[9][5] ==7)) { MidiSend(noteOff1, 90, velocity); lastA[9][5] =0; } //A91 if ((keysA[10][0] ==0) and (lastA[10][0] ==0)) { MidiSend(noteOn1, 91, velocity); lastA[10][0] =7; } //Write Midi Note Off if ((keysA[10][0] ==1) and (lastA[10][0] ==7)) { MidiSend(noteOff1, 91, velocity); lastA[10][0] =0; } //A92 if ((keysA[10][1] ==0) and (lastA[10][1] ==0)) { MidiSend(noteOn1, 92, velocity); lastA[10][1] =7; } //Write Midi Note Off if ((keysA[10][1] ==1) and (lastA[10][1] ==7)) { MidiSend(noteOff1, 92, velocity); lastA[10][1] =0; } //A93 if ((keysA[10][2] ==0) and (lastA[10][2] ==0)) { MidiSend(noteOn1, 93, velocity); lastA[10][2] =7; } //Write Midi Note Off if ((keysA[10][2] ==1) and (lastA[10][2] ==7)) { MidiSend(noteOff1, 93, velocity); lastA[10][2] =0; } //A94 if ((keysA[10][3] ==0) and (lastA[10][3] ==0)) { MidiSend(noteOn1, 94, velocity); lastA[10][3] =7; } //Write Midi Note Off if ((keysA[10][3] ==1) and (lastA[10][3] ==7)) { MidiSend(noteOff1, 94, velocity); lastA[10][3] =0; } //A95 if ((keysA[10][4] ==0) and (lastA[10][4] ==0)) { MidiSend(noteOn1, 95, velocity); lastA[10][4] =7; } //Write Midi Note Off if ((keysA[10][4] ==1) and (lastA[10][4] ==7)) { MidiSend(noteOff1, 95, velocity); lastA[10][4] =0; } //A96 if ((keysA[10][5] ==0) and (lastA[10][5] ==0)) { MidiSend(noteOn1, 96, velocity); lastA[10][5] =7; } //Write Midi Note Off if ((keysA[10][5] ==1) and (lastA[10][5] ==7)) { MidiSend(noteOff1, 96, velocity); lastA[10][5] =0; } //Write Keyboard B //B36 if ((keysB[0][0] ==0) and (lastB[0][0] ==0)) { MidiSend(noteOn2, 36, velocity); lastB[0][0] =7; } if ((keysB[0][0] ==1) and (lastB[0][0] ==7)) { MidiSend(noteOff2, 36, velocity); lastB[0][0] =0; } //B37 if ((keysB[1][0] ==0) and (lastB[1][0] ==0)) { MidiSend(noteOn2, 37, velocity); lastB[1][0] =7; } if ((keysB[1][0] ==1) and (lastB[1][0] ==7)) { MidiSend(noteOff2, 37, velocity); lastB[1][0] =0; } //B38 if ((keysB[1][1] ==0) and (lastB[1][1] ==0)) { MidiSend(noteOn2, 38, velocity); lastB[1][1] =7; } //Write Midi Note Off if ((keysB[1][1] ==1) and (lastB[1][1] ==7)) { MidiSend(noteOff2, 38, velocity); lastB[1][1] =0; } //B39 if ((keysB[1][2] ==0) and (lastB[1][2] ==0)) { MidiSend(noteOn2, 39, velocity); lastB[1][2] =7; } //Write Midi Note Off if ((keysB[1][2] ==1) and (lastB[1][2] ==7)) { MidiSend(noteOff2, 39, velocity); lastB[1][2] =0; } //B40 if ((keysB[1][3] ==0) and (lastB[1][3] ==0)) { MidiSend(noteOn2, 40, velocity); lastB[1][3] =7; } //Write Midi Note Off if ((keysB[1][3] ==1) and (lastB[1][3] ==7)) { MidiSend(noteOff2, 40, velocity); lastB[1][3] =0; } //B41 if ((keysB[1][4] ==0) and (lastB[1][4] ==0)) { MidiSend(noteOn2, 41, velocity); lastB[1][4] =7; } //Write Midi Note Off if ((keysB[1][4] ==1) and (lastB[1][4] ==7)) { MidiSend(noteOff2, 41, velocity); lastB[1][4] =0; } //B42 if ((keysB[1][5] ==0) and (lastB[1][5] ==0)) { MidiSend(noteOn2, 42, velocity); lastB[1][5] =7; } //Write Midi Note Off if ((keysB[1][5] ==1) and (lastB[1][5] ==7)) { MidiSend(noteOff2, 42, velocity); lastB[1][5] =0; } //B43 if ((keysB[2][0] ==0) and (lastB[2][0] ==0)) { MidiSend(noteOn2, 43, velocity); lastB[2][0] =7; } //Write Midi Note Off if ((keysB[2][0] ==1) and (lastB[2][0] ==7)) { MidiSend(noteOff2, 43, velocity); lastB[2][0] =0; } //B44 if ((keysB[2][1] ==0) and (lastB[2][1] ==0)) { MidiSend(noteOn2, 44, velocity); lastB[2][1] =7; } //Write Midi Note Off if ((keysB[2][1] ==1) and (lastB[2][1] ==7)) { MidiSend(noteOff2, 44, velocity); lastB[2][1] =0; } //B45 if ((keysB[2][2] ==0) and (lastB[2][2] ==0)) { MidiSend(noteOn2, 45, velocity); lastB[2][2] =7; } //Write Midi Note Off if ((keysB[2][2] ==1) and (lastB[2][2] ==7)) { MidiSend(noteOff2, 45, velocity); lastB[2][2] =0; } //B46 if ((keysB[2][3] ==0) and (lastB[2][3] ==0)) { MidiSend(noteOn2, 46, velocity); lastB[2][3] =7; } //Write Midi Note Off if ((keysB[2][3] ==1) and (lastB[2][3] ==7)) { MidiSend(noteOff2, 46, velocity); lastB[2][3] =0; } //B47 if ((keysB[2][4] ==0) and (lastB[2][4] ==0)) { MidiSend(noteOn2, 47, velocity); lastB[2][4] =7; } //Write Midi Note Off if ((keysB[2][4] ==1) and (lastB[2][4] ==7)) { MidiSend(noteOff2, 47, velocity); lastB[2][4] =0; } //B48 if ((keysB[2][5] ==0) and (lastB[2][5] ==0)) { MidiSend(noteOn2, 48, velocity); lastB[2][5] =7; } //Write Midi Note Off if ((keysB[2][5] ==1) and (lastB[2][5] ==7)) { MidiSend(noteOff2, 48, velocity); lastB[2][5] =0; } //B49 if ((keysB[3][0] ==0) and (lastB[3][0] ==0)) { MidiSend(noteOn2, 49, velocity); lastB[3][0] =7; } //Write Midi Note Off if ((keysB[3][0] ==1) and (lastB[3][0] ==7)) { MidiSend(noteOff2, 49, velocity); lastB[3][0] =0; } //B50 if ((keysB[3][1] ==0) and (lastB[3][1] ==0)) { MidiSend(noteOn2, 50, velocity); lastB[3][1] =7; } //Write Midi Note Off if ((keysB[3][1] ==1) and (lastB[3][1] ==7)) { MidiSend(noteOff2, 50, velocity); lastB[3][1] =0; } //B51 if ((keysB[3][2] ==0) and (lastB[3][2] ==0)) { MidiSend(noteOn2, 51, velocity); lastB[3][2] =7; } //Write Midi Note Off if ((keysB[3][2] ==1) and (lastB[3][2] ==7)) { MidiSend(noteOff2, 51, velocity); lastB[3][2] =0; } //B52 if ((keysB[3][3] ==0) and (lastB[3][3] ==0)) { MidiSend(noteOn2, 52, velocity); lastB[3][3] =7; } //Write Midi Note Off if ((keysB[3][3] ==1) and (lastB[3][3] ==7)) { MidiSend(noteOff2, 52, velocity); lastB[3][3] =0; } //B53 if ((keysB[3][4] ==0) and (lastB[3][4] ==0)) { MidiSend(noteOn2, 53, velocity); lastB[3][4] =7; } //Write Midi Note Off if ((keysB[3][4] ==1) and (lastB[3][4] ==7)) { MidiSend(noteOff2, 53, velocity); lastB[3][4] =0; } //B54 if ((keysB[3][5] ==0) and (lastB[3][5] ==0)) { MidiSend(noteOn2, 54, velocity); lastB[3][5] =7; } //Write Midi Note Off if ((keysB[3][5] ==1) and (lastB[3][5] ==7)) { MidiSend(noteOff2, 54, velocity); lastB[3][5] =0; } //B55 if ((keysB[4][0] ==0) and (lastB[4][0] ==0)) { MidiSend(noteOn2, 55, velocity); lastB[4][0] =7; } //Write Midi Note Off if ((keysB[4][0] ==1) and (lastB[4][0] ==7)) { MidiSend(noteOff2, 55, velocity); lastB[4][0] =0; } //B56 if ((keysB[4][1] ==0) and (lastB[4][1] ==0)) { MidiSend(noteOn2, 56, velocity); lastB[4][1] =7; } //Write Midi Note Off if ((keysB[4][1] ==1) and (lastB[4][1] ==7)) { MidiSend(noteOff2, 56, velocity); lastB[4][1] =0; } //B57 if ((keysB[4][2] ==0) and (lastB[4][2] ==0)) { MidiSend(noteOn2, 57, velocity); lastB[4][2] =7; } //Write Midi Note Off if ((keysB[4][2] ==1) and (lastB[4][2] ==7)) { MidiSend(noteOff2, 57, velocity); lastB[4][2] =0; } //B58 if ((keysB[4][3] ==0) and (lastB[4][3] ==0)) { MidiSend(noteOn2, 58, velocity); lastB[4][3] =7; } //Write Midi Note Off if ((keysB[4][3] ==1) and (lastB[4][3] ==7)) { MidiSend(noteOff2, 58, velocity); lastB[4][3] =0; } //B59 if ((keysB[4][4] ==0) and (lastB[4][4] ==0)) { MidiSend(noteOn2, 59, velocity); lastB[4][4] =7; } //Write Midi Note Off if ((keysB[4][4] ==1) and (lastB[4][4] ==7)) { MidiSend(noteOff2, 59, velocity); lastB[4][4] =0; } //B60 if ((keysB[4][5] ==0) and (lastB[4][5] ==0)) { MidiSend(noteOn2, 60, velocity); lastB[4][5] =7; } //Write Midi Note Off if ((keysB[4][5] ==1) and (lastB[4][5] ==7)) { MidiSend(noteOff2, 60, velocity); lastB[4][5] =0; } //B61 if ((keysB[5][0] ==0) and (lastB[5][0] ==0)) { MidiSend(noteOn2, 61, velocity); lastB[5][0] =7; } //Write Midi Note Off if ((keysB[5][0] ==1) and (lastB[5][0] ==7)) { MidiSend(noteOff2, 61, velocity); lastB[5][0] =0; } //B62 if ((keysB[5][1] ==0) and (lastB[5][1] ==0)) { MidiSend(noteOn2, 62, velocity); lastB[5][1] =7; } //Write Midi Note Off if ((keysB[5][1] ==1) and (lastB[5][1] ==7)) { MidiSend(noteOff2, 62, velocity); lastB[5][1] =0; } //B63 if ((keysB[5][2] ==0) and (lastB[5][2] ==0)) { MidiSend(noteOn2, 63, velocity); lastB[5][2] =7; } //Write Midi Note Off if ((keysB[5][2] ==1) and (lastB[5][2] ==7)) { MidiSend(noteOff2, 63, velocity); lastB[5][2] =0; } //B64 if ((keysB[5][3] ==0) and (lastB[5][3] ==0)) { MidiSend(noteOn2, 64, velocity); lastB[5][3] =7; } //Write Midi Note Off if ((keysB[5][3] ==1) and (lastB[5][3] ==7)) { MidiSend(noteOff2, 64, velocity); lastB[5][3] =0; } //B65 if ((keysB[5][4] ==0) and (lastB[5][4] ==0)) { MidiSend(noteOn2, 65, velocity); lastB[5][4] =7; } //Write Midi Note Off if ((keysB[5][4] ==1) and (lastB[5][4] ==7)) { MidiSend(noteOff2, 65, velocity); lastB[5][4] =0; } //B66 if ((keysB[5][5] ==0) and (lastB[5][5] ==0)) { MidiSend(noteOn2, 66, velocity); lastB[5][5] =7; } //Write Midi Note Off if ((keysB[5][5] ==1) and (lastB[5][5] ==7)) { MidiSend(noteOff2, 66, velocity); lastB[5][5] =0; } //B67 if ((keysB[6][0] ==0) and (lastB[6][0] ==0)) { MidiSend(noteOn2, 67, velocity); lastB[6][0] =7; } //Write Midi Note Off if ((keysB[6][0] ==1) and (lastB[6][0] ==7)) { MidiSend(noteOff2, 67, velocity); lastB[6][0] =0; } //B68 if ((keysB[6][1] ==0) and (lastB[6][1] ==0)) { MidiSend(noteOn2, 68, velocity); lastB[6][1] =7; } //Write Midi Note Off if ((keysB[6][1] ==1) and (lastB[6][1] ==7)) { MidiSend(noteOff2, 68, velocity); lastB[6][1] =0; } //B69 if ((keysB[6][2] ==0) and (lastB[6][2] ==0)) { MidiSend(noteOn2, 69, velocity); lastB[6][2] =7; } //Write Midi Note Off if ((keysB[6][2] ==1) and (lastB[6][2] ==7)) { MidiSend(noteOff2, 69, velocity); lastB[6][2] =0; } //B70 if ((keysB[6][3] ==0) and (lastB[6][3] ==0)) { MidiSend(noteOn2, 70, velocity); lastB[6][3] =7; } //Write Midi Note Off if ((keysB[6][3] ==1) and (lastB[6][3] ==7)) { MidiSend(noteOff2, 70, velocity); lastB[6][3] =0; } //B71 if ((keysB[6][4] ==0) and (lastB[6][4] ==0)) { MidiSend(noteOn2, 71, velocity); lastB[6][4] =7; } //Write Midi Note Off if ((keysB[6][4] ==1) and (lastB[6][4] ==7)) { MidiSend(noteOff2, 71, velocity); lastB[6][4] =0; } //B72 if ((keysB[6][5] ==0) and (lastB[6][5] ==0)) { MidiSend(noteOn2, 72, velocity); lastB[6][5] =7; } //Write Midi Note Off if ((keysB[6][5] ==1) and (lastB[6][5] ==7)) { MidiSend(noteOff2, 72, velocity); lastB[6][5] =0; } //B73 if ((keysB[7][0] ==0) and (lastB[7][0] ==0)) { MidiSend(noteOn2, 73, velocity); lastB[7][0] =7; } //Write Midi Note Off if ((keysB[7][0] ==1) and (lastB[7][0] ==7)) { MidiSend(noteOff2, 73, velocity); lastB[7][0] =0; } //B74 if ((keysB[7][1] ==0) and (lastB[7][1] ==0)) { MidiSend(noteOn2, 74, velocity); lastB[7][1] =7; } //Write Midi Note Off if ((keysB[7][1] ==1) and (lastB[7][1] ==7)) { MidiSend(noteOff2, 74, velocity); lastB[7][1] =0; } //B75 if ((keysB[7][2] ==0) and (lastB[7][2] ==0)) { MidiSend(noteOn2, 75, velocity); lastB[7][2] =7; } //Write Midi Note Off if ((keysB[7][2] ==1) and (lastB[7][2] ==7)) { MidiSend(noteOff2, 75, velocity); lastB[7][2] =0; } //B76 if ((keysB[7][3] ==0) and (lastB[7][3] ==0)) { MidiSend(noteOn2, 76, velocity); lastB[7][3] =7; } //Write Midi Note Off if ((keysB[7][3] ==1) and (lastB[7][3] ==7)) { MidiSend(noteOff2, 76, velocity); lastB[7][3] =0; } //B77 if ((keysB[7][4] ==0) and (lastB[7][4] ==0)) { MidiSend(noteOn2, 77, velocity); lastB[7][4] =7; } //Write Midi Note Off if ((keysB[7][4] ==1) and (lastB[7][4] ==7)) { MidiSend(noteOff2, 77, velocity); lastB[7][4] =0; } //B78 if ((keysB[7][5] ==0) and (lastB[7][5] ==0)) { MidiSend(noteOn2, 78, velocity); lastB[7][5] =7; } //Write Midi Note Off if ((keysB[7][5] ==1) and (lastB[7][5] ==7)) { MidiSend(noteOff2, 78, velocity); lastB[7][5] =0; } //B79 if ((keysB[8][0] ==0) and (lastB[8][0] ==0)) { MidiSend(noteOn2, 79, velocity); lastB[8][0] =7; } //Write Midi Note Off if ((keysB[8][0] ==1) and (lastB[8][0] ==7)) { MidiSend(noteOff2, 79, velocity); lastB[8][0] =0; } //B80 if ((keysB[8][1] ==0) and (lastB[8][1] ==0)) { MidiSend(noteOn2, 80, velocity); lastB[8][1] =7; } //Write Midi Note Off if ((keysB[8][1] ==1) and (lastB[8][1] ==7)) { MidiSend(noteOff2, 80, velocity); lastB[8][1] =0; } //B81 if ((keysB[8][2] ==0) and (lastB[8][2] ==0)) { MidiSend(noteOn2, 81, velocity); lastB[8][2] =7; } //Write Midi Note Off if ((keysB[8][2] ==1) and (lastB[8][2] ==7)) { MidiSend(noteOff2, 81, velocity); lastB[8][2] =0; } //B82 if ((keysB[8][3] ==0) and (lastB[8][3] ==0)) { MidiSend(noteOn2, 82, velocity); lastB[8][3] =7; } //Write Midi Note Off if ((keysB[8][3] ==1) and (lastB[8][3] ==7)) { MidiSend(noteOff2, 82, velocity); lastB[8][3] =0; } //B83 if ((keysB[8][4] ==0) and (lastB[8][4] ==0)) { MidiSend(noteOn2, 83, velocity); lastB[8][4] =7; } //Write Midi Note Off if ((keysB[8][4] ==1) and (lastB[8][4] ==7)) { MidiSend(noteOff2, 83, velocity); lastB[8][4] =0; } //B84 if ((keysB[8][5] ==0) and (lastB[8][5] ==0)) { MidiSend(noteOn2, 84, velocity); lastB[8][5] =7; } //Write Midi Note Off if ((keysB[8][5] ==1) and (lastB[8][5] ==7)) { MidiSend(noteOff2, 84, velocity); lastB[8][5] =0; } //B85 if ((keysB[9][0] ==0) and (lastB[9][0] ==0)) { MidiSend(noteOn2, 85, velocity); lastB[9][0] =7; } //Write Midi Note Off if ((keysB[9][0] ==1) and (lastB[9][0] ==7)) { MidiSend(noteOff2, 85, velocity); lastB[9][0] =0; } //B86 if ((keysB[9][1] ==0) and (lastB[9][1] ==0)) { MidiSend(noteOn2, 86, velocity); lastB[9][1] =7; } //Write Midi Note Off if ((keysB[9][1] ==1) and (lastB[9][1] ==7)) { MidiSend(noteOff2, 86, velocity); lastB[9][1] =0; } //B87 if ((keysB[9][2] ==0) and (lastB[9][2] ==0)) { MidiSend(noteOn2, 87, velocity); lastB[9][2] =7; } //Write Midi Note Off if ((keysB[9][2] ==1) and (lastB[9][2] ==7)) { MidiSend(noteOff2, 87, velocity); lastB[9][2] =0; } //B88 if ((keysB[9][3] ==0) and (lastB[9][3] ==0)) { MidiSend(noteOn2, 88, velocity); lastB[9][3] =7; } //Write Midi Note Off if ((keysB[9][3] ==1) and (lastB[9][3] ==7)) { MidiSend(noteOff2, 88, velocity); lastB[9][3] =0; } //B89 if ((keysB[9][4] ==0) and (lastB[9][4] ==0)) { MidiSend(noteOn2, 89, velocity); lastB[9][4] =7; } //Write Midi Note Off if ((keysB[9][4] ==1) and (lastB[9][4] ==7)) { MidiSend(noteOff2, 89, velocity); lastB[9][4] =0; } //B90 if ((keysB[9][5] ==0) and (lastB[9][5] ==0)) { MidiSend(noteOn2, 90, velocity); lastB[9][5] =7; } //Write Midi Note Off if ((keysB[9][5] ==1) and (lastB[9][5] ==7)) { MidiSend(noteOff2, 90, velocity); lastB[9][5] =0; } //B91 if ((keysB[10][0] ==0) and (lastB[10][0] ==0)) { MidiSend(noteOn2, 91, velocity); lastB[10][0] =7; } //Write Midi Note Off if ((keysB[10][0] ==1) and (lastB[10][0] ==7)) { MidiSend(noteOff2, 91, velocity); lastB[10][0] =0; } //B92 if ((keysB[10][1] ==0) and (lastB[10][1] ==0)) { MidiSend(noteOn2, 92, velocity); lastB[10][1] =7; } //Write Midi Note Off if ((keysB[10][1] ==1) and (lastB[10][1] ==7)) { MidiSend(noteOff2, 92, velocity); lastB[10][1] =0; } //B93 if ((keysB[10][2] ==0) and (lastB[10][2] ==0)) { MidiSend(noteOn2, 93, velocity); lastB[10][2] =7; } //Write Midi Note Off if ((keysB[10][2] ==1) and (lastB[10][2] ==7)) { MidiSend(noteOff2, 93, velocity); lastB[10][2] =0; } //B94 if ((keysB[10][3] ==0) and (lastB[10][3] ==0)) { MidiSend(noteOn2, 94, velocity); lastB[10][3] =7; } //Write Midi Note Off if ((keysB[10][3] ==1) and (lastB[10][3] ==7)) { MidiSend(noteOff2, 94, velocity); lastB[10][3] =0; } //B95 if ((keysB[10][4] ==0) and (lastB[10][4] ==0)) { MidiSend(noteOn2, 95, velocity); lastB[10][4] =7; } //Write Midi Note Off if ((keysB[10][4] ==1) and (lastB[10][4] ==7)) { MidiSend(noteOff2, 95, velocity); lastB[10][4] =0; } //B96 if ((keysB[10][5] ==0) and (lastB[10][5] ==0)) { MidiSend(noteOn2, 96, velocity); lastB[10][5] =7; } //Write Midi Note Off if ((keysB[10][5] ==1) and (lastB[10][5] ==7)) { MidiSend(noteOff2, 96, velocity); lastB[10][5] =0; } //Write Keyboard C //C36 if ((keysC[0][0] ==0) and (lastC[0][0] ==0)) { MidiSend(noteOn3, 36, velocity); lastC[0][0] =7; } if ((keysC[0][0] ==1) and (lastC[0][0] ==7)) { MidiSend(noteOff3, 36, velocity); lastC[0][0] =0; } //C37 if ((keysC[1][0] ==0) and (lastC[1][0] ==0)) { MidiSend(noteOn3, 37, velocity); lastC[1][0] =7; } if ((keysC[1][0] ==1) and (lastC[1][0] ==7)) { MidiSend(noteOff3, 37, velocity); lastC[1][0] =0; } //C38 if ((keysC[1][1] ==0) and (lastC[1][1] ==0)) { MidiSend(noteOn3, 38, velocity); lastC[1][1] =7; } //Write Midi Note Off if ((keysC[1][1] ==1) and (lastC[1][1] ==7)) { MidiSend(noteOff3, 38, velocity); lastC[1][1] =0; } //C39 if ((keysC[1][2] ==0) and (lastC[1][2] ==0)) { MidiSend(noteOn3, 39, velocity); lastC[1][2] =7; } //Write Midi Note Off if ((keysC[1][2] ==1) and (lastC[1][2] ==7)) { MidiSend(noteOff3, 39, velocity); lastC[1][2] =0; } //C40 if ((keysC[1][3] ==0) and (lastC[1][3] ==0)) { MidiSend(noteOn3, 40, velocity); lastC[1][3] =7; } //Write Midi Note Off if ((keysC[1][3] ==1) and (lastC[1][3] ==7)) { MidiSend(noteOff3, 40, velocity); lastC[1][3] =0; } //C41 if ((keysC[1][4] ==0) and (lastC[1][4] ==0)) { MidiSend(noteOn3, 41, velocity); lastC[1][4] =7; } //Write Midi Note Off if ((keysC[1][4] ==1) and (lastC[1][4] ==7)) { MidiSend(noteOff3, 41, velocity); lastC[1][4] =0; } //C42 if ((keysC[1][5] ==0) and (lastC[1][5] ==0)) { MidiSend(noteOn3, 42, velocity); lastC[1][5] =7; } //Write Midi Note Off if ((keysC[1][5] ==1) and (lastC[1][5] ==7)) { MidiSend(noteOff3, 42, velocity); lastC[1][5] =0; } //C43 if ((keysC[2][0] ==0) and (lastC[2][0] ==0)) { MidiSend(noteOn3, 43, velocity); lastC[2][0] =7; } //Write Midi Note Off if ((keysC[2][0] ==1) and (lastC[2][0] ==7)) { MidiSend(noteOff3, 43, velocity); lastC[2][0] =0; } //C44 if ((keysC[2][1] ==0) and (lastC[2][1] ==0)) { MidiSend(noteOn3, 44, velocity); lastC[2][1] =7; } //Write Midi Note Off if ((keysC[2][1] ==1) and (lastC[2][1] ==7)) { MidiSend(noteOff3, 44, velocity); lastC[2][1] =0; } //B45 if ((keysC[2][2] ==0) and (lastC[2][2] ==0)) { MidiSend(noteOn3, 45, velocity); lastC[2][2] =7; } //Write Midi Note Off if ((keysC[2][2] ==1) and (lastC[2][2] ==7)) { MidiSend(noteOff3, 45, velocity); lastC[2][2] =0; } //C46 if ((keysC[2][3] ==0) and (lastC[2][3] ==0)) { MidiSend(noteOn3, 46, velocity); lastC[2][3] =7; } //Write Midi Note Off if ((keysC[2][3] ==1) and (lastC[2][3] ==7)) { MidiSend(noteOff3, 46, velocity); lastC[2][3] =0; } //C47 if ((keysC[2][4] ==0) and (lastC[2][4] ==0)) { MidiSend(noteOn3, 47, velocity); lastC[2][4] =7; } //Write Midi Note Off if ((keysC[2][4] ==1) and (lastC[2][4] ==7)) { MidiSend(noteOff3, 47, velocity); lastC[2][4] =0; } //C48 if ((keysC[2][5] ==0) and (lastC[2][5] ==0)) { MidiSend(noteOn3, 48, velocity); lastC[2][5] =7; } //Write Midi Note Off if ((keysC[2][5] ==1) and (lastC[2][5] ==7)) { MidiSend(noteOff3, 48, velocity); lastC[2][5] =0; } //C49 if ((keysC[3][0] ==0) and (lastC[3][0] ==0)) { MidiSend(noteOn3, 49, velocity); lastC[3][0] =7; } //Write Midi Note Off if ((keysC[3][0] ==1) and (lastC[3][0] ==7)) { MidiSend(noteOff3, 49, velocity); lastC[3][0] =0; } //C50 if ((keysC[3][1] ==0) and (lastC[3][1] ==0)) { MidiSend(noteOn3, 50, velocity); lastC[3][1] =7; } //Write Midi Note Off if ((keysC[3][1] ==1) and (lastC[3][1] ==7)) { MidiSend(noteOff3, 50, velocity); lastC[3][1] =0; } //C51 if ((keysC[3][2] ==0) and (lastC[3][2] ==0)) { MidiSend(noteOn3, 51, velocity); lastC[3][2] =7; } //Write Midi Note Off if ((keysC[3][2] ==1) and (lastC[3][2] ==7)) { MidiSend(noteOff3, 51, velocity); lastC[3][2] =0; } //C52 if ((keysC[3][3] ==0) and (lastC[3][3] ==0)) { MidiSend(noteOn3, 52, velocity); lastC[3][3] =7; } //Write Midi Note Off if ((keysC[3][3] ==1) and (lastC[3][3] ==7)) { MidiSend(noteOff3, 52, velocity); lastC[3][3] =0; } //C53 if ((keysC[3][4] ==0) and (lastC[3][4] ==0)) { MidiSend(noteOn3, 53, velocity); lastC[3][4] =7; } //Write Midi Note Off if ((keysC[3][4] ==1) and (lastC[3][4] ==7)) { MidiSend(noteOff3, 53, velocity); lastC[3][4] =0; } //C54 if ((keysC[3][5] ==0) and (lastC[3][5] ==0)) { MidiSend(noteOn3, 54, velocity); lastC[3][5] =7; } //Write Midi Note Off if ((keysC[3][5] ==1) and (lastC[3][5] ==7)) { MidiSend(noteOff3, 54, velocity); lastC[3][5] =0; } //C55 if ((keysC[4][0] ==0) and (lastC[4][0] ==0)) { MidiSend(noteOn3, 55, velocity); lastC[4][0] =7; } //Write Midi Note Off if ((keysC[4][0] ==1) and (lastC[4][0] ==7)) { MidiSend(noteOff3, 55, velocity); lastC[4][0] =0; } //C56 if ((keysC[4][1] ==0) and (lastC[4][1] ==0)) { MidiSend(noteOn3, 56, velocity); lastC[4][1] =7; } //Write Midi Note Off if ((keysC[4][1] ==1) and (lastC[4][1] ==7)) { MidiSend(noteOff3, 56, velocity); lastC[4][1] =0; } //C57 if ((keysC[4][2] ==0) and (lastC[4][2] ==0)) { MidiSend(noteOn3, 57, velocity); lastC[4][2] =7; } //Write Midi Note Off if ((keysC[4][2] ==1) and (lastC[4][2] ==7)) { MidiSend(noteOff3, 57, velocity); lastC[4][2] =0; } //C58 if ((keysC[4][3] ==0) and (lastC[4][3] ==0)) { MidiSend(noteOn3, 58, velocity); lastC[4][3] =7; } //Write Midi Note Off if ((keysC[4][3] ==1) and (lastC[4][3] ==7)) { MidiSend(noteOff3, 58, velocity); lastC[4][3] =0; } //C59 if ((keysC[4][4] ==0) and (lastC[4][4] ==0)) { MidiSend(noteOn3, 59, velocity); lastC[4][4] =7; } //Write Midi Note Off if ((keysC[4][4] ==1) and (lastC[4][4] ==7)) { MidiSend(noteOff3, 59, velocity); lastC[4][4] =0; } //C60 if ((keysC[4][5] ==0) and (lastC[4][5] ==0)) { MidiSend(noteOn3, 60, velocity); lastC[4][5] =7; } //Write Midi Note Off if ((keysC[4][5] ==1) and (lastC[4][5] ==7)) { MidiSend(noteOff3, 60, velocity); lastC[4][5] =0; } //C61 if ((keysC[5][0] ==0) and (lastC[5][0] ==0)) { MidiSend(noteOn3, 61, velocity); lastC[5][0] =7; } //Write Midi Note Off if ((keysC[5][0] ==1) and (lastC[5][0] ==7)) { MidiSend(noteOff3, 61, velocity); lastC[5][0] =0; } //C62 if ((keysC[5][1] ==0) and (lastC[5][1] ==0)) { MidiSend(noteOn3, 62, velocity); lastC[5][1] =7; } //Write Midi Note Off if ((keysC[5][1] ==1) and (lastC[5][1] ==7)) { MidiSend(noteOff3, 62, velocity); lastC[5][1] =0; } //C63 if ((keysC[5][2] ==0) and (lastC[5][2] ==0)) { MidiSend(noteOn3, 63, velocity); lastC[5][2] =7; } //Write Midi Note Off if ((keysC[5][2] ==1) and (lastC[5][2] ==7)) { MidiSend(noteOff3, 63, velocity); lastC[5][2] =0; } //C64 if ((keysC[5][3] ==0) and (lastC[5][3] ==0)) { MidiSend(noteOn3, 64, velocity); lastC[5][3] =7; } //Write Midi Note Off if ((keysC[5][3] ==1) and (lastC[5][3] ==7)) { MidiSend(noteOff3, 64, velocity); lastC[5][3] =0; } //C65 if ((keysC[5][4] ==0) and (lastC[5][4] ==0)) { MidiSend(noteOn3, 65, velocity); lastC[5][4] =7; } //Write Midi Note Off if ((keysC[5][4] ==1) and (lastC[5][4] ==7)) { MidiSend(noteOff3, 65, velocity); lastC[5][4] =0; } //C66 if ((keysC[5][5] ==0) and (lastC[5][5] ==0)) { MidiSend(noteOn3, 66, velocity); lastC[5][5] =7; } //Write Midi Note Off if ((keysC[5][5] ==1) and (lastC[5][5] ==7)) { MidiSend(noteOff3, 66, velocity); lastC[5][5] =0; } //C67 if ((keysC[6][0] ==0) and (lastC[6][0] ==0)) { MidiSend(noteOn3, 67, velocity); lastC[6][0] =7; } //Write Midi Note Off if ((keysC[6][0] ==1) and (lastC[6][0] ==7)) { MidiSend(noteOff3, 67, velocity); lastC[6][0] =0; } //C68 if ((keysC[6][1] ==0) and (lastC[6][1] ==0)) { MidiSend(noteOn3, 68, velocity); lastC[6][1] =7; } //Write Midi Note Off if ((keysC[6][1] ==1) and (lastC[6][1] ==7)) { MidiSend(noteOff3, 68, velocity); lastC[6][1] =0; } //C69 if ((keysC[6][2] ==0) and (lastC[6][2] ==0)) { MidiSend(noteOn3, 69, velocity); lastC[6][2] =7; } //Write Midi Note Off if ((keysC[6][2] ==1) and (lastC[6][2] ==7)) { MidiSend(noteOff3, 69, velocity); lastC[6][2] =0; } //C70 if ((keysC[6][3] ==0) and (lastC[6][3] ==0)) { MidiSend(noteOn3, 70, velocity); lastC[6][3] =7; } //Write Midi Note Off if ((keysC[6][3] ==1) and (lastC[6][3] ==7)) { MidiSend(noteOff3, 70, velocity); lastC[6][3] =0; } //C71 if ((keysC[6][4] ==0) and (lastC[6][4] ==0)) { MidiSend(noteOn3, 71, velocity); lastC[6][4] =7; } //Write Midi Note Off if ((keysC[6][4] ==1) and (lastC[6][4] ==7)) { MidiSend(noteOff3, 71, velocity); lastC[6][4] =0; } //C72 if ((keysC[6][5] ==0) and (lastC[6][5] ==0)) { MidiSend(noteOn3, 72, velocity); lastC[6][5] =7; } //Write Midi Note Off if ((keysC[6][5] ==1) and (lastC[6][5] ==7)) { MidiSend(noteOff3, 72, velocity); lastC[6][5] =0; } //C73 if ((keysC[7][0] ==0) and (lastC[7][0] ==0)) { MidiSend(noteOn3, 73, velocity); lastC[7][0] =7; } //Write Midi Note Off if ((keysC[7][0] ==1) and (lastC[7][0] ==7)) { MidiSend(noteOff3, 73, velocity); lastC[7][0] =0; } //C74 if ((keysC[7][1] ==0) and (lastC[7][1] ==0)) { MidiSend(noteOn3, 74, velocity); lastC[7][1] =7; } //Write Midi Note Off if ((keysC[7][1] ==1) and (lastC[7][1] ==7)) { MidiSend(noteOff3, 74, velocity); lastC[7][1] =0; } //C75 if ((keysC[7][2] ==0) and (lastC[7][2] ==0)) { MidiSend(noteOn3, 75, velocity); lastC[7][2] =7; } //Write Midi Note Off if ((keysC[7][2] ==1) and (lastC[7][2] ==7)) { MidiSend(noteOff3, 75, velocity); lastC[7][2] =0; } //C76 if ((keysC[7][3] ==0) and (lastC[7][3] ==0)) { MidiSend(noteOn3, 76, velocity); lastC[7][3] =7; } //Write Midi Note Off if ((keysC[7][3] ==1) and (lastC[7][3] ==7)) { MidiSend(noteOff3, 76, velocity); lastC[7][3] =0; } //C77 if ((keysC[7][4] ==0) and (lastC[7][4] ==0)) { MidiSend(noteOn3, 77, velocity); lastC[7][4] =7; } //Write Midi Note Off if ((keysC[7][4] ==1) and (lastC[7][4] ==7)) { MidiSend(noteOff3, 77, velocity); lastC[7][4] =0; } //C78 if ((keysC[7][5] ==0) and (lastC[7][5] ==0)) { MidiSend(noteOn3, 78, velocity); lastC[7][5] =7; } //Write Midi Note Off if ((keysC[7][5] ==1) and (lastC[7][5] ==7)) { MidiSend(noteOff3, 78, velocity); lastC[7][5] =0; } //C79 if ((keysC[8][0] ==0) and (lastC[8][0] ==0)) { MidiSend(noteOn3, 79, velocity); lastC[8][0] =7; } //Write Midi Note Off if ((keysC[8][0] ==1) and (lastC[8][0] ==7)) { MidiSend(noteOff2, 79, velocity); lastC[8][0] =0; } //C80 if ((keysC[8][1] ==0) and (lastC[8][1] ==0)) { MidiSend(noteOn3, 80, velocity); lastC[8][1] =7; } //Write Midi Note Off if ((keysC[8][1] ==1) and (lastC[8][1] ==7)) { MidiSend(noteOff3, 80, velocity); lastC[8][1] =0; } //C81 if ((keysC[8][2] ==0) and (lastC[8][2] ==0)) { MidiSend(noteOn3, 81, velocity); lastC[8][2] =7; } //Write Midi Note Off if ((keysC[8][2] ==1) and (lastC[8][2] ==7)) { MidiSend(noteOff3, 81, velocity); lastC[8][2] =0; } //C82 if ((keysC[8][3] ==0) and (lastC[8][3] ==0)) { MidiSend(noteOn3, 82, velocity); lastC[8][3] =7; } //Write Midi Note Off if ((keysC[8][3] ==1) and (lastC[8][3] ==7)) { MidiSend(noteOff3, 82, velocity); lastC[8][3] =0; } //C83 if ((keysC[8][4] ==0) and (lastC[8][4] ==0)) { MidiSend(noteOn3, 83, velocity); lastC[8][4] =7; } //Write Midi Note Off if ((keysC[8][4] ==1) and (lastC[8][4] ==7)) { MidiSend(noteOff3, 83, velocity); lastC[8][4] =0; } //C84 if ((keysC[8][5] ==0) and (lastC[8][5] ==0)) { MidiSend(noteOn3, 84, velocity); lastC[8][5] =7; } //Write Midi Note Off if ((keysC[8][5] ==1) and (lastC[8][5] ==7)) { MidiSend(noteOff3, 84, velocity); lastC[8][5] =0; } //C85 if ((keysC[9][0] ==0) and (lastC[9][0] ==0)) { MidiSend(noteOn3, 85, velocity); lastC[9][0] =7; } //Write Midi Note Off if ((keysC[9][0] ==1) and (lastC[9][0] ==7)) { MidiSend(noteOff3, 85, velocity); lastC[9][0] =0; } //C86 if ((keysC[9][1] ==0) and (lastC[9][1] ==0)) { MidiSend(noteOn2, 86, velocity); lastC[9][1] =7; } //Write Midi Note Off if ((keysC[9][1] ==1) and (lastC[9][1] ==7)) { MidiSend(noteOff3, 86, velocity); lastC[9][1] =0; } //C87 if ((keysC[9][2] ==0) and (lastC[9][2] ==0)) { MidiSend(noteOn3, 87, velocity); lastC[9][2] =7; } //Write Midi Note Off if ((keysC[9][2] ==1) and (lastC[9][2] ==7)) { MidiSend(noteOff3, 87, velocity); lastC[9][2] =0; } //C88 if ((keysC[9][3] ==0) and (lastC[9][3] ==0)) { MidiSend(noteOn3, 88, velocity); lastC[9][3] =7; } //Write Midi Note Off if ((keysC[9][3] ==1) and (lastC[9][3] ==7)) { MidiSend(noteOff3, 88, velocity); lastC[9][3] =0; } //C89 if ((keysC[9][4] ==0) and (lastC[9][4] ==0)) { MidiSend(noteOn3, 89, velocity); lastC[9][4] =7; } //Write Midi Note Off if ((keysC[9][4] ==1) and (lastC[9][4] ==7)) { MidiSend(noteOff3, 89, velocity); lastC[9][4] =0; } //C90 if ((keysC[9][5] ==0) and (lastC[9][5] ==0)) { MidiSend(noteOn3, 90, velocity); lastC[9][5] =7; } //Write Midi Note Off if ((keysC[9][5] ==1) and (lastC[9][5] ==7)) { MidiSend(noteOff3, 90, velocity); lastC[9][5] =0; } //C91 if ((keysC[10][0] ==0) and (lastC[10][0] ==0)) { MidiSend(noteOn3, 91, velocity); lastC[10][0] =7; } //Write Midi Note Off if ((keysC[10][0] ==1) and (lastC[10][0] ==7)) { MidiSend(noteOff3, 91, velocity); lastC[10][0] =0; } //C92 if ((keysC[10][1] ==0) and (lastC[10][1] ==0)) { MidiSend(noteOn3, 92, velocity); lastC[10][1] =7; } //Write Midi Note Off if ((keysC[10][1] ==1) and (lastC[10][1] ==7)) { MidiSend(noteOff3, 92, velocity); lastC[10][1] =0; } //C93 if ((keysC[10][2] ==0) and (lastC[10][2] ==0)) { MidiSend(noteOn3, 93, velocity); lastC[10][2] =7; } //Write Midi Note Off if ((keysC[10][2] ==1) and (lastC[10][2] ==7)) { MidiSend(noteOff3, 93, velocity); lastC[10][2] =0; } //C94 if ((keysC[10][3] ==0) and (lastC[10][3] ==0)) { MidiSend(noteOn3, 94, velocity); lastC[10][3] =7; } //Write Midi Note Off if ((keysC[10][3] ==1) and (lastC[10][3] ==7)) { MidiSend(noteOff3, 94, velocity); lastC[10][3] =0; } //C95 if ((keysC[10][4] ==0) and (lastC[10][4] ==0)) { MidiSend(noteOn3, 95, velocity); lastC[10][4] =7; } //Write Midi Note Off if ((keysC[10][4] ==1) and (lastC[10][4] ==7)) { MidiSend(noteOff3, 95, velocity); lastC[10][4] =0; } //C96 if ((keysC[10][5] ==0) and (lastC[10][5] ==0)) { MidiSend(noteOn3, 96, velocity); lastC[10][5] =7; } //Write Midi Note Off if ((keysC[10][5] ==1) and (lastC[10][5] ==7)) { MidiSend(noteOff3, 96, velocity); lastC[10][5] =0; } //Write Keyboard D //D36 if ((keysD[0][0] ==0) and (lastD[0][0] ==0)) { MidiSend(noteOn4, 36, velocity); lastD[0][0] =7; } if ((keysD[0][0] ==1) and (lastD[0][0] ==7)) { MidiSend(noteOff4, 36, velocity); lastD[0][0] =0; } //D37 if ((keysD[1][0] ==0) and (lastD[1][0] ==0)) { MidiSend(noteOn4, 37, velocity); lastD[1][0] =7; } if ((keysD[1][0] ==1) and (lastD[1][0] ==7)) { MidiSend(noteOff4, 37, velocity); lastD[1][0] =0; } //D38 if ((keysD[1][1] ==0) and (lastD[1][1] ==0)) { MidiSend(noteOn4, 38, velocity); lastD[1][1] =7; } //Write Midi Note Off if ((keysD[1][1] ==1) and (lastD[1][1] ==7)) { MidiSend(noteOff4, 38, velocity); lastD[1][1] =0; } //D39 if ((keysD[1][2] ==0) and (lastD[1][2] ==0)) { MidiSend(noteOn4, 39, velocity); lastD[1][2] =7; } //Write Midi Note Off if ((keysD[1][2] ==1) and (lastD[1][2] ==7)) { MidiSend(noteOff4, 39, velocity); lastD[1][2] =0; } //D40 if ((keysD[1][3] ==0) and (lastD[1][3] ==0)) { MidiSend(noteOn4, 40, velocity); lastD[1][3] =7; } //Write Midi Note Off if ((keysD[1][3] ==1) and (lastD[1][3] ==7)) { MidiSend(noteOff4, 40, velocity); lastD[1][3] =0; } //D41 if ((keysD[1][4] ==0) and (lastD[1][4] ==0)) { MidiSend(noteOn4, 41, velocity); lastD[1][4] =7; } //Write Midi Note Off if ((keysD[1][4] ==1) and (lastD[1][4] ==7)) { MidiSend(noteOff4, 41, velocity); lastD[1][4] =0; } //D42 if ((keysD[1][5] ==0) and (lastD[1][5] ==0)) { MidiSend(noteOn4, 42, velocity); lastD[1][5] =7; } //Write Midi Note Off if ((keysD[1][5] ==1) and (lastD[1][5] ==7)) { MidiSend(noteOff4, 42, velocity); lastD[1][5] =0; } //D43 if ((keysD[2][0] ==0) and (lastD[2][0] ==0)) { MidiSend(noteOn4, 43, velocity); lastD[2][0] =7; } //Write Midi Note Off if ((keysD[2][0] ==1) and (lastD[2][0] ==7)) { MidiSend(noteOff4, 43, velocity); lastD[2][0] =0; } //B44 if ((keysD[2][1] ==0) and (lastD[2][1] ==0)) { MidiSend(noteOn4, 44, velocity); lastD[2][1] =7; } //Write Midi Note Off if ((keysD[2][1] ==1) and (lastD[2][1] ==7)) { MidiSend(noteOff4, 44, velocity); lastD[2][1] =0; } //D45 if ((keysD[2][2] ==0) and (lastD[2][2] ==0)) { MidiSend(noteOn4, 45, velocity); lastD[2][2] =7; } //Write Midi Note Off if ((keysD[2][2] ==1) and (lastD[2][2] ==7)) { MidiSend(noteOff4, 45, velocity); lastD[2][2] =0; } //D46 if ((keysD[2][3] ==0) and (lastD[2][3] ==0)) { MidiSend(noteOn4, 46, velocity); lastD[2][3] =7; } //Write Midi Note Off if ((keysD[2][3] ==1) and (lastD[2][3] ==7)) { MidiSend(noteOff4, 46, velocity); lastD[2][3] =0; } //D47 if ((keysD[2][4] ==0) and (lastD[2][4] ==0)) { MidiSend(noteOn4, 47, velocity); lastD[2][4] =7; } //Write Midi Note Off if ((keysD[2][4] ==1) and (lastD[2][4] ==7)) { MidiSend(noteOff4, 47, velocity); lastD[2][4] =0; } //D48 if ((keysD[2][5] ==0) and (lastD[2][5] ==0)) { MidiSend(noteOn4, 48, velocity); lastD[2][5] =7; } //Write Midi Note Off if ((keysD[2][5] ==1) and (lastD[2][5] ==7)) { MidiSend(noteOff4, 48, velocity); lastD[2][5] =0; } //D49 if ((keysD[3][0] ==0) and (lastD[3][0] ==0)) { MidiSend(noteOn4, 49, velocity); lastD[3][0] =7; } //Write Midi Note Off if ((keysD[3][0] ==1) and (lastD[3][0] ==7)) { MidiSend(noteOff4, 49, velocity); lastD[3][0] =0; } //D50 if ((keysD[3][1] ==0) and (lastD[3][1] ==0)) { MidiSend(noteOn4, 50, velocity); lastD[3][1] =7; } //Write Midi Note Off if ((keysD[3][1] ==1) and (lastD[3][1] ==7)) { MidiSend(noteOff4, 50, velocity); lastD[3][1] =0; } //D51 if ((keysD[3][2] ==0) and (lastD[3][2] ==0)) { MidiSend(noteOn4, 51, velocity); lastD[3][2] =7; } //Write Midi Note Off if ((keysD[3][2] ==1) and (lastD[3][2] ==7)) { MidiSend(noteOff4, 51, velocity); lastD[3][2] =0; } //D52 if ((keysD[3][3] ==0) and (lastD[3][3] ==0)) { MidiSend(noteOn4, 52, velocity); lastD[3][3] =7; } //Write Midi Note Off if ((keysD[3][3] ==1) and (lastD[3][3] ==7)) { MidiSend(noteOff4, 52, velocity); lastD[3][3] =0; } //D53 if ((keysD[3][4] ==0) and (lastD[3][4] ==0)) { MidiSend(noteOn4, 53, velocity); lastD[3][4] =7; } //Write Midi Note Off if ((keysD[3][4] ==1) and (lastD[3][4] ==7)) { MidiSend(noteOff4, 53, velocity); lastD[3][4] =0; } //D54 if ((keysD[3][5] ==0) and (lastD[3][5] ==0)) { MidiSend(noteOn4, 54, velocity); lastD[3][5] =7; } //Write Midi Note Off if ((keysD[3][5] ==1) and (lastD[3][5] ==7)) { MidiSend(noteOff4, 54, velocity); lastD[3][5] =0; } //D55 if ((keysD[4][0] ==0) and (lastD[4][0] ==0)) { MidiSend(noteOn4, 55, velocity); lastD[4][0] =7; } //Write Midi Note Off if ((keysD[4][0] ==1) and (lastD[4][0] ==7)) { MidiSend(noteOff4, 55, velocity); lastD[4][0] =0; } //D56 if ((keysD[4][1] ==0) and (lastD[4][1] ==0)) { MidiSend(noteOn4, 56, velocity); lastD[4][1] =7; } //Write Midi Note Off if ((keysD[4][1] ==1) and (lastD[4][1] ==7)) { MidiSend(noteOff4, 56, velocity); lastD[4][1] =0; } //D57 if ((keysD[4][2] ==0) and (lastD[4][2] ==0)) { MidiSend(noteOn4, 57, velocity); lastD[4][2] =7; } //Write Midi Note Off if ((keysD[4][2] ==1) and (lastD[4][2] ==7)) { MidiSend(noteOff4, 57, velocity); lastD[4][2] =0; } //D58 if ((keysD[4][3] ==0) and (lastD[4][3] ==0)) { MidiSend(noteOn4, 58, velocity); lastD[4][3] =7; } //Write Midi Note Off if ((keysD[4][3] ==1) and (lastD[4][3] ==7)) { MidiSend(noteOff4, 58, velocity); lastD[4][3] =0; } //D59 if ((keysD[4][4] ==0) and (lastD[4][4] ==0)) { MidiSend(noteOn4, 59, velocity); lastD[4][4] =7; } //Write Midi Note Off if ((keysD[4][4] ==1) and (lastD[4][4] ==7)) { MidiSend(noteOff4, 59, velocity); lastD[4][4] =0; } //D60 if ((keysD[4][5] ==0) and (lastD[4][5] ==0)) { MidiSend(noteOn4, 60, velocity); lastD[4][5] =7; } //Write Midi Note Off if ((keysD[4][5] ==1) and (lastD[4][5] ==7)) { MidiSend(noteOff4, 60, velocity); lastD[4][5] =0; } //D61 if ((keysD[5][0] ==0) and (lastD[5][0] ==0)) { MidiSend(noteOn4, 61, velocity); lastD[5][0] =7; } //Write Midi Note Off if ((keysD[5][0] ==1) and (lastD[5][0] ==7)) { MidiSend(noteOff4, 61, velocity); lastD[5][0] =0; } //D62 if ((keysD[5][1] ==0) and (lastD[5][1] ==0)) { MidiSend(noteOn4, 62, velocity); lastD[5][1] =7; } //Write Midi Note Off if ((keysD[5][1] ==1) and (lastD[5][1] ==7)) { MidiSend(noteOff4, 62, velocity); lastD[5][1] =0; } //D63 if ((keysD[5][2] ==0) and (lastD[5][2] ==0)) { MidiSend(noteOn4, 63, velocity); lastD[5][2] =7; } //Write Midi Note Off if ((keysD[5][2] ==1) and (lastD[5][2] ==7)) { MidiSend(noteOff4, 63, velocity); lastD[5][2] =0; } //D64 if ((keysD[5][3] ==0) and (lastD[5][3] ==0)) { MidiSend(noteOn4, 64, velocity); lastD[5][3] =7; } //Write Midi Note Off if ((keysD[5][3] ==1) and (lastD[5][3] ==7)) { MidiSend(noteOff4, 64, velocity); lastD[5][3] =0; } //D65 if ((keysD[5][4] ==0) and (lastD[5][4] ==0)) { MidiSend(noteOn4, 65, velocity); lastD[5][4] =7; } //Write Midi Note Off if ((keysD[5][4] ==1) and (lastD[5][4] ==7)) { MidiSend(noteOff4, 65, velocity); lastD[5][4] =0; } //D66 if ((keysD[5][5] ==0) and (lastD[5][5] ==0)) { MidiSend(noteOn4, 66, velocity); lastD[5][5] =7; } //Write Midi Note Off if ((keysD[5][5] ==1) and (lastD[5][5] ==7)) { MidiSend(noteOff4, 66, velocity); lastD[5][5] =0; } //D67 if ((keysD[6][0] ==0) and (lastD[6][0] ==0)) { MidiSend(noteOn4, 67, velocity); lastD[6][0] =7; } //Write Midi Note Off if ((keysD[6][0] ==1) and (lastD[6][0] ==7)) { MidiSend(noteOff4, 67, velocity); lastD[6][0] =0; } //D68 if ((keysD[6][1] ==0) and (lastD[6][1] ==0)) { MidiSend(noteOn4, 68, velocity); lastD[6][1] =7; } //Write Midi Note Off if ((keysD[6][1] ==1) and (lastD[6][1] ==7)) { MidiSend(noteOff4, 68, velocity); lastD[6][1] =0; } //D69 if ((keysD[6][2] ==0) and (lastD[6][2] ==0)) { MidiSend(noteOn4, 69, velocity); lastD[6][2] =7; } //Write Midi Note Off if ((keysD[6][2] ==1) and (lastD[6][2] ==7)) { MidiSend(noteOff4, 69, velocity); lastD[6][2] =0; } //D70 if ((keysD[6][3] ==0) and (lastD[6][3] ==0)) { MidiSend(noteOn4, 70, velocity); lastD[6][3] =7; } //Write Midi Note Off if ((keysD[6][3] ==1) and (lastD[6][3] ==7)) { MidiSend(noteOff4, 70, velocity); lastD[6][3] =0; } //D71 if ((keysD[6][4] ==0) and (lastD[6][4] ==0)) { MidiSend(noteOn4, 71, velocity); lastD[6][4] =7; } //Write Midi Note Off if ((keysD[6][4] ==1) and (lastD[6][4] ==7)) { MidiSend(noteOff4, 71, velocity); lastD[6][4] =0; } //D72 if ((keysD[6][5] ==0) and (lastD[6][5] ==0)) { MidiSend(noteOn4, 72, velocity); lastD[6][5] =7; } //Write Midi Note Off if ((keysD[6][5] ==1) and (lastD[6][5] ==7)) { MidiSend(noteOff4, 72, velocity); lastD[6][5] =0; } //D73 if ((keysD[7][0] ==0) and (lastD[7][0] ==0)) { MidiSend(noteOn4, 73, velocity); lastD[7][0] =7; } //Write Midi Note Off if ((keysD[7][0] ==1) and (lastD[7][0] ==7)) { MidiSend(noteOff4, 73, velocity); lastD[7][0] =0; } //D74 if ((keysD[7][1] ==0) and (lastD[7][1] ==0)) { MidiSend(noteOn4, 74, velocity); lastD[7][1] =7; } //Write Midi Note Off if ((keysD[7][1] ==1) and (lastD[7][1] ==7)) { MidiSend(noteOff4, 74, velocity); lastD[7][1] =0; } //D75 if ((keysD[7][2] ==0) and (lastD[7][2] ==0)) { MidiSend(noteOn4, 75, velocity); lastD[7][2] =7; } //Write Midi Note Off if ((keysD[7][2] ==1) and (lastD[7][2] ==7)) { MidiSend(noteOff4, 75, velocity); lastD[7][2] =0; } //D76 if ((keysD[7][3] ==0) and (lastD[7][3] ==0)) { MidiSend(noteOn4, 76, velocity); lastD[7][3] =7; } //Write Midi Note Off if ((keysD[7][3] ==1) and (lastD[7][3] ==7)) { MidiSend(noteOff4, 76, velocity); lastD[7][3] =0; } //D77 if ((keysD[7][4] ==0) and (lastD[7][4] ==0)) { MidiSend(noteOn4, 77, velocity); lastD[7][4] =7; } //Write Midi Note Off if ((keysD[7][4] ==1) and (lastD[7][4] ==7)) { MidiSend(noteOff4, 77, velocity); lastD[7][4] =0; } //D78 if ((keysD[7][5] ==0) and (lastD[7][5] ==0)) { MidiSend(noteOn4, 78, velocity); lastD[7][5] =7; } //Write Midi Note Off if ((keysD[7][5] ==1) and (lastD[7][5] ==7)) { MidiSend(noteOff4, 78, velocity); lastD[7][5] =0; } //D79 if ((keysD[8][0] ==0) and (lastD[8][0] ==0)) { MidiSend(noteOn4, 79, velocity); lastD[8][0] =7; } //Write Midi Note Off if ((keysD[8][0] ==1) and (lastD[8][0] ==7)) { MidiSend(noteOff4, 79, velocity); lastD[8][0] =0; } //D80 if ((keysD[8][1] ==0) and (lastD[8][1] ==0)) { MidiSend(noteOn4, 80, velocity); lastD[8][1] =7; } //Write Midi Note Off if ((keysD[8][1] ==1) and (lastD[8][1] ==7)) { MidiSend(noteOff4, 80, velocity); lastD[8][1] =0; } //D81 if ((keysD[8][2] ==0) and (lastD[8][2] ==0)) { MidiSend(noteOn4, 81, velocity); lastD[8][2] =7; } //Write Midi Note Off if ((keysD[8][2] ==1) and (lastD[8][2] ==7)) { MidiSend(noteOff4, 81, velocity); lastD[8][2] =0; } //D82 if ((keysD[8][3] ==0) and (lastD[8][3] ==0)) { MidiSend(noteOn4, 82, velocity); lastD[8][3] =7; } //Write Midi Note Off if ((keysD[8][3] ==1) and (lastD[8][3] ==7)) { MidiSend(noteOff4, 82, velocity); lastD[8][3] =0; } //D83 if ((keysD[8][4] ==0) and (lastD[8][4] ==0)) { MidiSend(noteOn4, 83, velocity); lastD[8][4] =7; } //Write Midi Note Off if ((keysD[8][4] ==1) and (lastD[8][4] ==7)) { MidiSend(noteOff4, 83, velocity); lastD[8][4] =0; } //D84 if ((keysD[8][5] ==0) and (lastD[8][5] ==0)) { MidiSend(noteOn4, 84, velocity); lastD[8][5] =7; } //Write Midi Note Off if ((keysD[8][5] ==1) and (lastD[8][5] ==7)) { MidiSend(noteOff4, 84, velocity); lastD[8][5] =0; } //D85 if ((keysD[9][0] ==0) and (lastD[9][0] ==0)) { MidiSend(noteOn4, 85, velocity); lastD[9][0] =7; } //Write Midi Note Off if ((keysD[9][0] ==1) and (lastD[9][0] ==7)) { MidiSend(noteOff4, 85, velocity); lastD[9][0] =0; } //D86 if ((keysD[9][1] ==0) and (lastD[9][1] ==0)) { MidiSend(noteOn4, 86, velocity); lastD[9][1] =7; } //Write Midi Note Off if ((keysD[9][1] ==1) and (lastD[9][1] ==7)) { MidiSend(noteOff4, 86, velocity); lastD[9][1] =0; } //D87 if ((keysD[9][2] ==0) and (lastD[9][2] ==0)) { MidiSend(noteOn4, 87, velocity); lastD[9][2] =7; } //Write Midi Note Off if ((keysD[9][2] ==1) and (lastD[9][2] ==7)) { MidiSend(noteOff4, 87, velocity); lastD[9][2] =0; } //D88 if ((keysD[9][3] ==0) and (lastD[9][3] ==0)) { MidiSend(noteOn4, 88, velocity); lastD[9][3] =7; } //Write Midi Note Off if ((keysD[9][3] ==1) and (lastD[9][3] ==7)) { MidiSend(noteOff4, 88, velocity); lastD[9][3] =0; } //D89 if ((keysD[9][4] ==0) and (lastD[9][4] ==0)) { MidiSend(noteOn4, 89, velocity); lastD[9][4] =7; } //Write Midi Note Off if ((keysD[9][4] ==1) and (lastD[9][4] ==7)) { MidiSend(noteOff4, 89, velocity); lastD[9][4] =0; } //D90 if ((keysD[9][5] ==0) and (lastD[9][5] ==0)) { MidiSend(noteOn4, 90, velocity); lastD[9][5] =7; } //Write Midi Note Off if ((keysD[9][5] ==1) and (lastD[9][5] ==7)) { MidiSend(noteOff4, 90, velocity); lastD[9][5] =0; } //D91 if ((keysD[10][0] ==0) and (lastD[10][0] ==0)) { MidiSend(noteOn4, 91, velocity); lastD[10][0] =7; } //Write Midi Note Off if ((keysD[10][0] ==1) and (lastD[10][0] ==7)) { MidiSend(noteOff4, 91, velocity); lastD[10][0] =0; } //D92 if ((keysD[10][1] ==0) and (lastD[10][1] ==0)) { MidiSend(noteOn4, 92, velocity); lastD[10][1] =7; } //Write Midi Note Off if ((keysD[10][1] ==1) and (lastD[10][1] ==7)) { MidiSend(noteOff4, 92, velocity); lastD[10][1] =0; } //D93 if ((keysD[10][2] ==0) and (lastD[10][2] ==0)) { MidiSend(noteOn4, 93, velocity); lastD[10][2] =7; } //Write Midi Note Off if ((keysD[10][2] ==1) and (lastD[10][2] ==7)) { MidiSend(noteOff4, 93, velocity); lastD[10][2] =0; } //D94 if ((keysD[10][3] ==0) and (lastD[10][3] ==0)) { MidiSend(noteOn4, 94, velocity); lastD[10][3] =7; } //Write Midi Note Off if ((keysD[10][3] ==1) and (lastD[10][3] ==7)) { MidiSend(noteOff4, 94, velocity); lastD[10][3] =0; } //D95 if ((keysD[10][4] ==0) and (lastD[10][4] ==0)) { MidiSend(noteOn4, 95, velocity); lastD[10][4] =7; } //Write Midi Note Off if ((keysD[10][4] ==1) and (lastD[10][4] ==7)) { MidiSend(noteOff4, 95, velocity); lastD[10][4] =0; } //D96 if ((keysD[10][5] ==0) and (lastD[10][5] ==0)) { MidiSend(noteOn4, 96, velocity); lastD[10][5] =7; } //Write Midi Note Off if ((keysD[10][5] ==1) and (lastD[10][5] ==7)) { MidiSend(noteOff4, 96, velocity); lastD[10][5] =0; } //Write Keyboard C, only for inverted switches, first 32 notes only. /* //C36 if ((keysC[0][0] ==0) and (lastC[0][0] ==0)) { MidiSend(noteOff3, 36, velocity); lastC[0][0] =7; } if ((keysC[0][0] ==1) and (lastC[0][0] ==7)) { MidiSend(noteOn3, 36, velocity); lastC[0][0] =0; } //C37 if ((keysC[1][0] ==0) and (lastC[1][0] ==0)) { MidiSend(noteOff3, 37, velocity); lastC[1][0] =7; } if ((keysC[1][0] ==1) and (lastC[1][0] ==7)) { MidiSend(noteOn3, 37, velocity); lastC[1][0] =0; } //C38 if ((keysC[1][1] ==0) and (lastC[1][1] ==0)) { MidiSend(noteOff3, 38, velocity); lastC[1][1] =7; } //Write Midi Note Off if ((keysC[1][1] ==1) and (lastC[1][1] ==7)) { MidiSend(noteOn3, 38, velocity); lastC[1][1] =0; } //C39 if ((keysC[1][2] ==0) and (lastC[1][2] ==0)) { MidiSend(noteOff3, 39, velocity); lastC[1][2] =7; } //Write Midi Note Off if ((keysC[1][2] ==1) and (lastC[1][2] ==7)) { MidiSend(noteOn3, 39, velocity); lastC[1][2] =0; } //C40 if ((keysC[1][3] ==0) and (lastC[1][3] ==0)) { MidiSend(noteOff3, 40, velocity); lastC[1][3] =7; } //Write Midi Note Off if ((keysC[1][3] ==1) and (lastC[1][3] ==7)) { MidiSend(noteOn3, 40, velocity); lastC[1][3] =0; } //C41 if ((keysC[1][4] ==0) and (lastC[1][4] ==0)) { MidiSend(noteOff3, 41, velocity); lastC[1][4] =7; } //Write Midi Note Off if ((keysC[1][4] ==1) and (lastC[1][4] ==7)) { MidiSend(noteOn3, 41, velocity); lastC[1][4] =0; } //C42 if ((keysC[1][5] ==0) and (lastC[1][5] ==0)) { MidiSend(noteOff3, 42, velocity); lastC[1][5] =7; } //Write Midi Note Off if ((keysC[1][5] ==1) and (lastC[1][5] ==7)) { MidiSend(noteOn3, 42, velocity); lastC[1][5] =0; } //C43 if ((keysC[2][0] ==0) and (lastC[2][0] ==0)) { MidiSend(noteOff3, 43, velocity); lastC[2][0] =7; } //Write Midi Note Off if ((keysC[2][0] ==1) and (lastC[2][0] ==7)) { MidiSend(noteOn3, 43, velocity); lastC[2][0] =0; } //C44 if ((keysC[2][1] ==0) and (lastC[2][1] ==0)) { MidiSend(noteOff3, 44, velocity); lastC[2][1] =7; } //Write Midi Note Off if ((keysC[2][1] ==1) and (lastC[2][1] ==7)) { MidiSend(noteOn3, 44, velocity); lastC[2][1] =0; } //C45 if ((keysC[2][2] ==0) and (lastC[2][2] ==0)) { MidiSend(noteOff3, 45, velocity); lastC[2][2] =7; } //Write Midi Note Off if ((keysC[2][2] ==1) and (lastC[2][2] ==7)) { MidiSend(noteOn3, 45, velocity); lastC[2][2] =0; } //C46 if ((keysC[2][3] ==0) and (lastC[2][3] ==0)) { MidiSend(noteOff3, 46, velocity); lastC[2][3] =7; } //Write Midi Note Off if ((keysC[2][3] ==1) and (lastC[2][3] ==7)) { MidiSend(noteOn3, 46, velocity); lastC[2][3] =0; } //C47 if ((keysC[2][4] ==0) and (lastC[2][4] ==0)) { MidiSend(noteOff3, 47, velocity); lastC[2][4] =7; } //Write Midi Note Off if ((keysC[2][4] ==1) and (lastC[2][4] ==7)) { MidiSend(noteOn3, 47, velocity); lastC[2][4] =0; } //C48 if ((keysC[2][5] ==0) and (lastC[2][5] ==0)) { MidiSend(noteOff3, 48, velocity); lastC[2][5] =7; } //Write Midi Note Off if ((keysC[2][5] ==1) and (lastC[2][5] ==7)) { MidiSend(noteOn3, 48, velocity); lastC[2][5] =0; } //C49 if ((keysC[3][0] ==0) and (lastC[3][0] ==0)) { MidiSend(noteOff3, 49, velocity); lastC[3][0] =7; } //Write Midi Note Off if ((keysC[3][0] ==1) and (lastC[3][0] ==7)) { MidiSend(noteOn3, 49, velocity); lastC[3][0] =0; } //C50 if ((keysC[3][1] ==0) and (lastC[3][1] ==0)) { MidiSend(noteOff3, 50, velocity); lastC[3][1] =7; } //Write Midi Note Off if ((keysC[3][1] ==1) and (lastC[3][1] ==7)) { MidiSend(noteOn3, 50, velocity); lastC[3][1] =0; } //C51 if ((keysC[3][2] ==0) and (lastC[3][2] ==0)) { MidiSend(noteOff3, 51, velocity); lastC[3][2] =7; } //Write Midi Note Off if ((keysC[3][2] ==1) and (lastC[3][2] ==7)) { MidiSend(noteOn3, 51, velocity); lastC[3][2] =0; } //C52 if ((keysC[3][3] ==0) and (lastC[3][3] ==0)) { MidiSend(noteOff3, 52, velocity); lastC[3][3] =7; } //Write Midi Note Off if ((keysC[3][3] ==1) and (lastC[3][3] ==7)) { MidiSend(noteOn3, 52, velocity); lastC[3][3] =0; } //C53 if ((keysC[3][4] ==0) and (lastC[3][4] ==0)) { MidiSend(noteOff3, 53, velocity); lastC[3][4] =7; } //Write Midi Note Off if ((keysC[3][4] ==1) and (lastC[3][4] ==7)) { MidiSend(noteOn3, 53, velocity); lastC[3][4] =0; } //C54 if ((keysC[3][5] ==0) and (lastC[3][5] ==0)) { MidiSend(noteOff3, 54, velocity); lastC[3][5] =7; } //Write Midi Note Off if ((keysC[3][5] ==1) and (lastC[3][5] ==7)) { MidiSend(noteOn3, 54, velocity); lastC[3][5] =0; } //C55 if ((keysC[4][0] ==0) and (lastC[4][0] ==0)) { MidiSend(noteOff3, 55, velocity); lastC[4][0] =7; } //Write Midi Note Off if ((keysC[4][0] ==1) and (lastC[4][0] ==7)) { MidiSend(noteOn3, 55, velocity); lastC[4][0] =0; } //C56 if ((keysC[4][1] ==0) and (lastC[4][1] ==0)) { MidiSend(noteOff3, 56, velocity); lastC[4][1] =7; } //Write Midi Note Off if ((keysC[4][1] ==1) and (lastC[4][1] ==7)) { MidiSend(noteOn3, 56, velocity); lastC[4][1] =0; } //C57 if ((keysC[4][2] ==0) and (lastC[4][2] ==0)) { MidiSend(noteOff3, 57, velocity); lastC[4][2] =7; } //Write Midi Note Off if ((keysC[4][2] ==1) and (lastC[4][2] ==7)) { MidiSend(noteOn3, 57, velocity); lastC[4][2] =0; } //C58 if ((keysC[4][3] ==0) and (lastC[4][3] ==0)) { MidiSend(noteOff3, 58, velocity); lastC[4][3] =7; } //Write Midi Note Off if ((keysC[4][3] ==1) and (lastC[4][3] ==7)) { MidiSend(noteOn3, 58, velocity); lastC[4][3] =0; } //C59 if ((keysC[4][4] ==0) and (lastC[4][4] ==0)) { MidiSend(noteOff3, 59, velocity); lastC[4][4] =7; } //Write Midi Note Off if ((keysC[4][4] ==1) and (lastC[4][4] ==7)) { MidiSend(noteOn3, 59, velocity); lastC[4][4] =0; } //C60 if ((keysC[4][5] ==0) and (lastC[4][5] ==0)) { MidiSend(noteOff3, 60, velocity); lastC[4][5] =7; } //Write Midi Note Off if ((keysC[4][5] ==1) and (lastC[4][5] ==7)) { MidiSend(noteOn3, 60, velocity); lastC[4][5] =0; } //C61 if ((keysC[5][0] ==0) and (lastC[5][0] ==0)) { MidiSend(noteOff3, 61, velocity); lastC[5][0] =7; } //Write Midi Note Off if ((keysC[5][0] ==1) and (lastC[5][0] ==7)) { MidiSend(noteOn3, 61, velocity); lastC[5][0] =0; } //C62 if ((keysC[5][1] ==0) and (lastC[5][1] ==0)) { MidiSend(noteOff3, 62, velocity); lastC[5][1] =7; } //Write Midi Note Off if ((keysC[5][1] ==1) and (lastC[5][1] ==7)) { MidiSend(noteOn3, 62, velocity); lastC[5][1] =0; } //C63 if ((keysC[5][2] ==0) and (lastC[5][2] ==0)) { MidiSend(noteOff3, 63, velocity); lastC[5][2] =7; } //Write Midi Note Off if ((keysC[5][2] ==1) and (lastC[5][2] ==7)) { MidiSend(noteOn3, 63, velocity); lastC[5][2] =0; } //C64 if ((keysC[5][3] ==0) and (lastC[5][3] ==0)) { MidiSend(noteOff3, 64, velocity); lastC[5][3] =7; } //Write Midi Note Off if ((keysC[5][3] ==1) and (lastC[5][3] ==7)) { MidiSend(noteOn3, 64, velocity); lastC[5][3] =0; } //C65 if ((keysC[5][4] ==0) and (lastC[5][4] ==0)) { MidiSend(noteOff3, 65, velocity); lastC[5][4] =7; } //Write Midi Note Off if ((keysC[5][4] ==1) and (lastC[5][4] ==7)) { MidiSend(noteOn3, 65, velocity); lastC[5][4] =0; } //C66 if ((keysC[5][5] ==0) and (lastC[5][5] ==0)) { MidiSend(noteOff3, 66, velocity); lastC[5][5] =7; } //Write Midi Note Off if ((keysC[5][5] ==1) and (lastC[5][5] ==7)) { MidiSend(noteOn3, 66, velocity); lastC[5][5] =0; } //C67 if ((keysC[6][0] ==0) and (lastC[6][0] ==0)) { MidiSend(noteOff3, 67, velocity); lastC[6][0] =7; } //Write Midi Note Off if ((keysC[6][0] ==1) and (lastC[6][0] ==7)) { MidiSend(noteOn3, 67, velocity); lastC[6][0] =0; } */ //Expression Pedal controls //Expression pedal on analog pin A13 to Channel 6 int Cur6 =analogRead(13); int Map6 =map(Cur6, 0, 1023, 0, 127); if (abs(Cur6 - LastPot6)>=8) { MidiSend(chan6,Exp,Map6); LastPot6 =Cur6; } //Expression pedal on analog pin A14 to Channel 7 int Cur7 =analogRead(14); int Map7 =map(Cur7, 0, 1023, 0, 127); if (abs(Cur7 - LastPot7)>=8) { MidiSend(chan7,Exp,Map7); LastPot7 =Cur7; } //Expression pedal on analog pin A15 to Channel 8 int Cur8 =analogRead(15); int Map8 =map(Cur8, 0, 1023, 0, 127); if (abs(Cur8 - LastPot8)>=8) { MidiSend(chan8,Exp,Map8); LastPot8 =Cur8; }}void MidiSend(int one, int two, int three) { Serial.write(one); Serial.write(two); Serial.write(three); } 

Esquemas

Wiring diagram for 6x11 Matrix keyboards and pedalboard with potentiometer inputsWiring diagram for Bussed keyboards with potentiometer inputs

Processo de manufatura

  1. Certificação ISO 26262 para Componentes de Software
  2. Eclipse Ditto 1.0:Uma estrutura para construtores gêmeos digitais
  3. Componentes para atualizações de software baseado em nuvem na IoT
  4. Solução de Corte para Indústria de Tapetes - Máquina de Corte Digital
  5. Estratégias para gerenciamento de ativos digitais
  6. UL:Testando componentes de plástico para inflamabilidade
  7. PET com enchimento de vidro para componentes externos automotivos
  8. Três tendências de manufatura digital para 2020
  9. Planeje o sucesso na transformação digital
  10. Materiais para componentes de Invar 36