![(quase) Programador Universal MIDI SysEx CC (e sequenciador ): 7 etapas (com imagens) (quase) Programador Universal MIDI SysEx CC (e sequenciador ): 7 etapas (com imagens)](https://i.howwhatproduce.com/images/010/image-29783-j.webp)
Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-23 15:03
![(quase) Programador Universal MIDI SysEx CC (e sequenciador …) (quase) Programador Universal MIDI SysEx CC (e sequenciador …)](https://i.howwhatproduce.com/images/010/image-29783-1-j.webp)
![(quase) Programador Universal MIDI SysEx CC (e sequenciador …) (quase) Programador Universal MIDI SysEx CC (e sequenciador …)](https://i.howwhatproduce.com/images/010/image-29783-2-j.webp)
Em meados dos anos 80, os fabricantes de sintetizadores iniciaram um processo "menos é melhor" que levou aos sintetizadores barebones. Isso permitiu a redução de custos do lado do fabricante, mas tornou o processo de patch tediuos, senão impossível para o usuário final.
Os próprios fabricantes e empresas terceirizadas realizaram caixas opcionais cheias de botões e / ou controles deslizantes para permitir que você realmente "toque" com seus tons de sintetizador, mas estes são absurdamente caros hoje em dia e, como sempre, somos forçados a encontrar soluções baratas por nós mesmos;)
Este projeto surgiu da minha necessidade de programar facilmente patches em alguns dos meus sintetizadores mais recentes: um Roland Alpha Juno 2 e JX8P. Começou como um simples controlador SysEx, depois cresceu comigo e se tornou algo mais complexo, com outros sintetizadores suportados no caminho (Korg DW8000, Oberheim Matrix 6 / 6R, SCI MAX) e um sequenciador embutido.
Neste instrutível, mostrarei como realizar seu próprio controlador: uma ferramenta barata que emula aquelas caixas de controle de parâmetros de alto preço … e muito mais (continue lendo para obter detalhes …).
Etapa 1: O que exatamente é essa coisa (e o que não é …)
![O que exatamente é essa coisa (e o que não é …) O que exatamente é essa coisa (e o que não é …)](https://i.howwhatproduce.com/images/010/image-29783-3-j.webp)
![O que exatamente é essa coisa (e o que não é …) O que exatamente é essa coisa (e o que não é …)](https://i.howwhatproduce.com/images/010/image-29783-4-j.webp)
![O que exatamente é essa coisa (e o que não é …) O que exatamente é essa coisa (e o que não é …)](https://i.howwhatproduce.com/images/010/image-29783-5-j.webp)
O controlador MIDI SysEx e Control Change aqui é essencialmente um controlador MIDI de 16 botões (potenciômetros) e 4 botões. O esboço padrão lida com três "páginas", para um total de 48 parâmetros de tom de sintetizador.
Tornei o controlador compatível com mensagens MIDI de alteração de controle (um tipo simples e "global" de mensagem MIDI amplamente usado por fabricantes de sintetizadores, especialmente a partir dos anos 90) e mensagens SysEx (outro tipo de mensagem MIDI, bem menos geral e altamente específica de sintetizador usado nos anos 80).
Em particular, o controlador por padrão é compatível com:
- Roland Alpha Juno (1/2)
- Roland JX8P
- Korg DW8000
- Oberheim Matrix 6 / 6R (firmware> 2.14)
- Circuitos sequenciais MAX / SixTrak.
Eventualmente, você pode habilitar o controlador para agir em qualquer sintetizador que possa receber mensagens de alteração de controle MIDI (CC), mas ele está desabilitado por padrão.
Sendo a natureza de código aberto do projeto, é muito fácil oferecer suporte a qualquer outro sintetizador de sua escolha (consulte a etapa de código para obter detalhes).
O layout dos parâmetros de tom com todos aqueles números pode ser confuso no início, mas não é "aleatório" como pode parecer: segue a ordem do gráfico de implementação de MIDI do fabricante. Essa foi uma escolha de design para manter o código simples e "universal".
Você pode baixar folhas de imagens com o "layout" 4x4 que percebi para Alpha-Junos, JX8P, DW8000, Matrix 6 e MAX / SixTrak nesta página: parâmetros azuis são aqueles que você pode ajustar enquanto na página 1, pretos aqueles na página 2 e laranja aqueles na página 3.
Mesmo que o controlador não tenha tela, brincar com sintetizadores que mostram qual parâmetro está sendo ajustado em tempo real torna o processo de criação de um patch uma alegria. O JX8P e o Matrix 6, por exemplo, são capazes disso; o Alpha Juno, em vez disso, não mostra o parâmetro sendo alterado e torna as coisas um pouco mais difíceis (mas criar patches incríveis é definitivamente factível e mais fácil do que usar a interface sem botões embutida); O DW8000 tem apenas displays numéricos, mas você pode ver seus tweakins em tempo real, então fica entre os dois.
E aqueles botões aí?
Bem, o primeiro (canto superior esquerdo do meu layout) é para navegação na página: pule para a página do próximo parâmetro a cada pressionamento do botão. LEDs irão indicar em qual página você está.
O segundo, quando pressionado, envia o patch que você estava trabalhando de volta para o sintetizador (imagine: você fez o patch da sua vida, então tocou um botão de programa na superfície do sintetizador e o patch específico do botão foi carregado … todo o seu trabalho foi embora !). Com este botão você pode enviar todos os valores que o programador memorizou durante o último processo de patch. Este processo de recuperação de patch não funciona se você pressionar o randomizador novamente (o processo de randomização sobrescreve todos os parâmetros na memória) e só é efetivo em parâmetros que você editou pelo menos uma vez. O patch mais recente não é mantido na memória após o desligamento.
O terceiro é para uma função secundária: o randomizador / patcher! Gire totalmente no sentido anti-horário os botões nos quais deseja que o parâmetro em que atuam para travar no valor mínimo (ou seja, LFO do oscilador, envelope do oscilador, etc.) ou gire totalmente no sentido horário para maximizar o valor (ou seja, volume de mistura do oscilador, volume VCA, etc.) e pressione o botão para iniciar o processo de randomização para todos os outros parâmetros.
O quarto botão está lá para ativar um ovo de páscoa (mais ou menos …) que coloquei no código depois de perceber que o layout era perfeito para … um sequenciador MIDI de 16 etapas! Exatamente: pressione o quarto botão (botão MODE), o controlador entrará no "modo sequenciador" e você poderá disparar notas de forma semelhante ao antigo sequenciador analógico. Legal uh!
Pressione o botão MODE novamente para voltar ao modo controlador / patcher.
E aqueles LEDs?
Existem 4 LEDs correspondentes a cada botão (à direita de cada botão no meu layout); esses LEDs têm vários pourpouses:
1) eles informam em qual página de parâmetros você está (o LED superior acende quando você está na página 1, o LED inferior acende quando a página 2 está ativa, o LED 3 está aceso … você mesmo percebeu). Estamos limitados a 3 páginas ATM, mas o código pode ser facilmente ajustado para lidar com mais páginas;
2) o segundo LED indica os parâmetros da página 2 E acende quando o microcontrolador está enviando o patch anterior (rechamada do patch);
3) o terceiro LED indica os parâmetros da página 3 E acende durante o processo de randomização.
O quarto LED não faz nada no modo do controlador MIDI e é usado para a alteração global do MODO.
Todas essas funções são transmitidas como mensagens MIDI, portanto, para ser eficaz, seu sintetizador deve ser capaz / habilitado de receber e interpretar esse tipo de mensagens
Etapa 2: O sequenciador "Oculto" de 16 etapas
![o o](https://i.howwhatproduce.com/images/010/image-29783-6-j.webp)
Como disse, ao testar o controlador, percebi que seria ótimo deixar uma sequência de notas rodar para que eu pudesse ajustar os parâmetros do sintetizador e ter uma ideia melhor do efeito final no timbre. Eu tenho um sequenciador de software (eu gosto muito do seq24!), Mas este hardware é um sequenciador de 16 etapas quase PERFEITO! Então, foi apenas uma questão de código para implementá-lo.
Você pode alternar entre o modo do controlador e o modo do sequenciador pressionando o botão # 4 (botão MODE).
Enquanto no modo sequenciador, os botões funcionam de forma diferente e os LEDs fornecem novas informações:
- o primeiro botão (botão SHIFT) quando pressionado permite o andamento, duração da nota, canais e modificação de oitava; o valor do tempo é dado pela posição do primeiro potenciômetro, o comprimento da nota é calculado a partir da posição do segundo potenciômetro, canais MIDI da terceira e quarta posições do potenciômetro e oitava (-1 o até +2) do quinto potenciômetro. Você pode controlar o tempo de 40 BPM (gire o potenciômetro # 1 totalmente no sentido anti-horário enquanto mantém o botão # 1 pressionado) a quase 240 BPM (gire o potenciômetro # 1 totalmente no sentido horário enquanto mantém o botão # 1 pressionado). Você pode definir o comprimento das notas em mínimas, semínimas, oitavos e semicolcheias girando o potenciômetro nº 2 enquanto mantém o botão SHIFT pressionado. Você pode definir os canais MIDI (canal primário e canal secundário) de 1 a 16. A faixa de notas básicas (de C2 a F # 4) pode ser reduzida em uma oitava ou aumentada em uma ou duas oitavas.
Por padrão, o tempo é definido como 120 BPM e o comprimento da nota até semínimas.
- o segundo botão inicia e pára a sequência de notas. Como dito, se você alterar o modo pressionando o botão # 4 (MODE) enquanto executa a sequência, você entrará no modo de controlador, mas a sequência continuará a ser executada.
- o terceiro botão é um PÂNICO! Ao pressioná-lo, todas as notas serão desligadas.
- o quarto é usado para alternar entre os modos globais (padrão ou sequenciador) quando o botão nº 1 não é pressionado, ou entre os modos de sequência (veja a seguir) quando o nº 1 é pressionado.
No modo sequenciador, se você pressionar o botão de seleção de modo enquanto mantém o botão # 1 (SHIFT) pressionado, você pode alternar entre 3 modos de sequência diferentes:
1 - sequência mono de 16 etapas
Sequência poli de 2 - 16 passos: notas uma oitava abaixo daquelas definidas pelos potes também são acionadas (isto esgota 2 vozes por batida)
3 - sequência poli de 8 etapas, canal duplo: duas sequências paralelas de 8 etapas são enviadas para dois canais diferentes (CH1 e CH2 por padrão); configurando o mesmo valor de canal nos canais primário e secundário, você pode ter duas sequências paralelas de 8 etapas reproduzidas pelo mesmo sintetizador (polifônico).
Sobre os LEDs: assim que você entrar no modo sequenciador, todas as quatro luzes se acenderão. Quando você inicia a sequência, os LEDs seguem a sequência (ou as sequências). Coloquei um LED a cada quatro potenciômetros e é muito bom para mim. Seria simples modificar o esboço para lidar com 16 LEDs, um para cada mil passos.
O step sequencer miss apresenta que alguém pode achar necessário: MIDI sync IN, steps hold (você só pode desligar um step), CV out.
Eu implementei o clock OUT, mas de alguma forma está cheio de erros. Tentei duas abordagens para isso (uma com e outra sem interrupções do cronômetro), mas ambas eram imperfeitas (ou uma falha total). O relógio MIDI deve ser estritamente perfeito para funcionar a longo prazo. Um sinal de relógio é enviado de qualquer maneira e você pode desativá-lo diretamente no esboço (consulte mais tarde para obter detalhes).
Observe que este sequenciador de etapas é MIDI, ou digital se você preferir, então para funcionar deve estar conectado a um sintetizador habilitado para receber e interpretar este tipo de mensagens
Etapa 3: Hardware necessário e construção
![Hardware necessário e construção Hardware necessário e construção](https://i.howwhatproduce.com/images/010/image-29783-7-j.webp)
![Hardware necessário e construção Hardware necessário e construção](https://i.howwhatproduce.com/images/010/image-29783-8-j.webp)
![Hardware necessário e construção Hardware necessário e construção](https://i.howwhatproduce.com/images/010/image-29783-9-j.webp)
![Hardware necessário e construção Hardware necessário e construção](https://i.howwhatproduce.com/images/010/image-29783-10-j.webp)
Depois de todas essas palavras, vamos nos divertir!
Estamos seguindo o caminho comum do Arduino. Usei um Arduino MEGA por causa da grande quantidade de entradas analógicas (queremos uma caixa cheia de botões giratórios, não é ?!:)).
Em particular, o Arduino MEGA pode lidar com 16 entradas analógicas (com alguns ajustes de hardware, ou seja, muxing, você pode aumentar isso, mas não vamos por esse caminho aqui), então vamos enviar as 48 mensagens MIDI por meio de 16 potenciômetros. Cada potenciômetro controlará então três parâmetros, um para cada "página"; as páginas são selecionadas por um botão alternar.
Lista de hardware:
- 1x Arduino MEGA
- Potenciômetros 16x lineares, de volta única de 10 K ohm
- maçanetas de 16x
- 4 botões momentâneos
- 4x LED
- resistor 6x 220 ohm
- 1 conector MIDI
- 1 caixa de projetos ABS
Um pouco de cabo, fio de solda e seis - oito horas de tempo livre.
Usei um perfboard e alguns conectores de pinos para fazer uma espécie de blindagem onde soldei os resistores e direcionei os cabos. Isso tem a vantagem de permitir que você tire seu Arduino e o use para outros projetos (todos nós rodamos com poucas placas Arduino em algum ponto!). Não é obrigatório de qualquer maneira e outra boa abordagem poderia ser dessoldar os cabeçotes de pinos arduino MEGA e os cabos de solda diretamente no lugar.
Usei resistores de 200 ohms no lugar de resistores de 220 ohms e eles funcionam perfeitamente de qualquer maneira; Eu apostaria que mesmo resistores de 150 ohms funcionariam muito bem (para comunicação MIDI e LEDs).
Para modelar a caixa, primeiro apliquei um papel adesivo na superfície da caixa, medido onde os orifícios deveriam ser perfurados (eu tinha 3 cm de orifício a orifício para deixar todos os vasos caberem), fiz os orifícios de guia e depois ampliei para a direita tamanho para deixar a rosca de vasos ou botões para passar com uma mini furadeira. Gastei mais ou menos 2 horas para terminar a caixa. Também percebi pequenos orifícios e colei LEDs no lugar.
Também perfurei um orifício para o conector MIDI OUT e outro para o conector de alimentação do arduino (usei diretamente o conector de alimentação USB embutido e travei firmemente o arduino MEGA no lugar).
AVISO: sempre use SEMPRE proteção para os olhos e as mãos durante a perfuração, seja qual for o material em que estiver trabalhando (plástico, madeira, metais, compostos … não importa: você está em risco com relação a ferramentas elétricas e lascas de material corroído / queimado da ferramenta móvel).
Em seguida, coloquei todos os potes e botões e soldei os componentes conforme a imagem em anexo. Uma maneira eficaz de reduzir o peso do objeto final (e o comprimento dos cabos) é conectar todos os potenciômetros na linha 5V e na linha GND.
E antes que alguém pergunte: eu sei, aquela caixa que usei é feia! Mas era grátis e nada bate de graça:)
Etapa 4: Fiação
![Fiação Fiação](https://i.howwhatproduce.com/images/010/image-29783-11-j.webp)
Conectar as coisas é fácil como conectar um potenciômetro (x16), um botão (x4) e LED (x4) a uma placa de microcontrolador Arduino. Todas as noções básicas do Arduino são abordadas aqui:)
Em anexo está a fiação. Notar que:
- São utilizados todos os pinos analógicos (de A0 a A15), um para cada potenciômetro;
- São utilizados 4 pinos digitais (entradas) (de D51, D49, D47, D45), um para cada botão;
- outros 4 pinos digitais (saídas) são usados para LEDs (D43, D41, D39, D37);
- A conexão de saída MIDI é muito simples e pede dois resistores de 220 ohms (mas até 150 ohms vai funcionar)
- Os botões não pedem resistores pullup, sendo que o sketch ativa os resistores pullup internos do Arduino.
- Cada LED pede um resistor limitador de corrente (200-220 ohms estão ok para LEDs verdes).
Usei os pinos digitais listados para comodidade, mas eles não são pinos "especiais" (não estamos usando a capacidade pwm de alguns pinos aqui ou algum outro recurso específico de pino): você pode definir seus pinos digitais favoritos, mas lembre-se de modificar o código em conformidade ou seus botões / LEDs não funcionarão!
Observe que a conexão MIDI OUT na imagem é a vista FRONT (não vista traseira).
Etapa 5: Software - Alguns links para a teoria
Não vou explicar toda a teoria por trás das mensagens System Exclusive ou Control Change porque existem muitos artigos bons por aí e é bobagem reescrever o que já foi escrito.
Apenas um link rápido para implementação do Roland SysEx:
- https://erha.se/~ronny/juno2/Roland%20Juno%20MIDI%2… (INGLÊS)
- https://www.2writers.com/eddie/tutsysex.htm (INGLÊS)
- https://www.chromakinetics.com/handsonic/rolSysEx.h… (INGLÊS)
- https://www.audiocentralmagazine.com/system-exclusi… (ITALIANO)
e algum link para MIDI em geral:
-
-
Etapa 6: Software - o esboço
Aqui está o esboço que você deve enviar para o Arduino Mega.
Tentei manter o programador o mais "universal" possível, o que significa que tentei reduzir partes específicas do código do sintetizador. Tentei manter o código o mais simples possível. Adicionar o sequenciador de passos tornou as coisas mais complexas e o código mais confuso, de qualquer forma valeu a pena para mim. Manter o código "universal" é o motivo pelo qual o layout do controlador é tão "aleatório": ele segue a ordem dos parâmetros da implementação MIDI que o fabricante do sintetizador definiu no manual. Pode ser confuso no início, mas você se acostumará muito rápido.
O código / esboço / firmware padrão suporta "apenas" 48 parâmetros (três páginas de 16 botões cada), então não poderia ser possível controlar todas as mensagens MIDI suportadas por seu sintetizador (pense em um Access Virus ou Novation Supernova: eles aceitam mais ou menos 110 parâmetros compatíveis com MIDI). Você pode facilmente alterar o esboço para suportar mais mensagens, se necessário.
Na verdade, mensagens SysEx compatíveis com Roland Alpha-Juno, JX8P, Korg DW8000 e Oberheim Matrix 6 são suportadas. Deixei o código para mensagens compatíveis com Juno 106 caso você precise disso.
Para Matrix 6, tive que selecionar os parâmetros para controlar. Deixei de fora o terceiro envelope, a segunda rampa e mais alguma coisa. A matriz não pode ser controlada via MIDI de qualquer maneira, então também está fora. Você precisa do firmware atualizado (versão 2.14 ou superior) e deve definir o parâmetro "Master -> Sysex Enable" para "3".
O relógio de saída é um tanto problemático (o relógio deve ser estritamente perfeito para funcionar como deveria e provavelmente as duas abordagens que adotei não foram eficazes). Por padrão, ele está desabilitado.
O código inclui comentários, portanto, não há necessidade de mais comentários aqui.
Como sempre: lembre-se que não sou um programador na vida real e com certeza existem maneiras melhores de codificar o que precisamos aqui. Se você é codificador e tem sugestões, seja bem-vindo! Por favor, envie-me qualquer variação que possa aumentar a eficiência / eficácia do código e eu irei incluí-la no esboço principal (citando o Colaborador obviamente!).
Eu sempre aprendo algo novo lendo algum código de bom codificador;)
Etapa 7: Projetos relacionados
Até onde eu sei, não há um controlador de parâmetro MIDI e sequenciador por aí (talvez o antigo Behringer BCR2000 com um firmware modificado?)
de qualquer forma, se você não está propenso a perceber uma caixa como esta, mas muito interessado em soluções baratas para controlar seus parâmetros de sintetizador remotamente, considere estas outras alternativas:
- Editor CTRL MIDI: este é um programa de código aberto gratuito brilhante rodando em win / Linux / mac que pode transformar seu PC em um controlador completo para sintetizadores SysEx
- Conversor CC "junosex" de David Konsumer: este projeto pede um pequeno trabalho de hardware do seu lado e a ideia é ótima - um conversor CC para SysEx baseado em arduino que permite que você use um controlador MIDI comum não SysEx (ou seja, um teclado mestre AKAI MPK) para falar com o seu sintetizador pronto para SysEx
Recomendado:
Sintetizador de sequenciador paralelo: 17 etapas (com imagens)
![Sintetizador de sequenciador paralelo: 17 etapas (com imagens) Sintetizador de sequenciador paralelo: 17 etapas (com imagens)](https://i.howwhatproduce.com/images/002/image-5639-j.webp)
Parallel Sequencer Synth: Este é um guia para a criação de um sequenciador simples. Um sequenciador é um dispositivo que produz ciclicamente uma série de etapas que acionam um oscilador. Cada etapa pode ser atribuída a um tom diferente e, assim, criar sequências ou efeitos de áudio interessantes
Transforme quase tudo em um alto-falante: 13 etapas (com imagens)
![Transforme quase tudo em um alto-falante: 13 etapas (com imagens) Transforme quase tudo em um alto-falante: 13 etapas (com imagens)](https://i.howwhatproduce.com/images/003/image-7354-j.webp)
Transforme quase tudo em um alto-falante: Você pode transformar quase qualquer objeto em um alto-falante usando um disco piezoelétrico e um punhado de componentes adicionais. Embora possa parecer mágica, na verdade há uma explicação técnica bastante simples. Ao dirigir um disco piezoelétrico usando um amplificador, o disco
Spin Coater V1 (quase analógico): 9 etapas (com imagens)
![Spin Coater V1 (quase analógico): 9 etapas (com imagens) Spin Coater V1 (quase analógico): 9 etapas (com imagens)](https://i.howwhatproduce.com/images/005/image-13636-j.webp)
Spin Coater V1 (quase analógico): Nem todos os equipamentos são feitos para durar, sou um estudante / pesquisador estudando materiais de filmes finos para tecnologia solar. Uma das peças de equipamento de que dependo é chamada de aplicador de centrifugação. Esta é uma ferramenta usada para fazer filmes finos de um material a partir de uma solução líquida
DoReMiQuencer - Sequenciador MIDI programável com teclado: 7 etapas
![DoReMiQuencer - Sequenciador MIDI programável com teclado: 7 etapas DoReMiQuencer - Sequenciador MIDI programável com teclado: 7 etapas](https://i.howwhatproduce.com/images/004/image-9060-13-j.webp)
DoReMiQuencer - Sequenciador MIDI programável com teclado: Este dispositivo foi criado para uso com VCVRack, um sintetizador modular virtual criado pela VCV, mas pode servir como um controlador MIDI de uso geral. Ele serve como um sequenciador MIDI ou teclado, dependendo do modo selecionado. As notas MIDI mapeadas para o ke
Sequenciador digital de 4 etapas: 19 etapas (com imagens)
![Sequenciador digital de 4 etapas: 19 etapas (com imagens) Sequenciador digital de 4 etapas: 19 etapas (com imagens)](https://i.howwhatproduce.com/images/001/image-707-76-j.webp)
Sequenciador digital de 4 etapas: CPE 133, Cal Poly San Luis ObispoProject Criadores: Jayson Johnston e Bjorn Nelson Na indústria musical de hoje, um dos “ instrumentos ” é o sintetizador digital. Todos os gêneros musicais, do hip-hop ao pop e à noite