Índice:

Arpeggiating Synthesizer (Mosquito I): 6 etapas
Arpeggiating Synthesizer (Mosquito I): 6 etapas

Vídeo: Arpeggiating Synthesizer (Mosquito I): 6 etapas

Vídeo: Arpeggiating Synthesizer (Mosquito I): 6 etapas
Vídeo: Top 10 Most Expensive Synthesizers In The World 2024, Julho
Anonim
Arpeggiating Synthesizer (Mosquito I)
Arpeggiating Synthesizer (Mosquito I)

O Mosquito I é um pequeno sintetizador de arpejo que usa um Arduino Nano e a biblioteca de síntese de som Mozzi. Ele pode reproduzir mais de vinte sequências de 8 etapas, mas você pode adicionar quantas sequências personalizadas desejar. É relativamente simples de configurar e não requer muitas peças.

Suprimentos:

  • Arduino Nano (ou qualquer Arduino realmente deve funcionar)
  • 5 ea Potenciômetros (10K Linear)
  • 2 botões cada
  • 1 cada LED
  • 1 cada resistor (330 ohm)
  • 2 resistores cada (1K)
  • 1 cada resistor (2K)
  • 1 ea capacitor eletrolítico (100 uF)
  • 1 ea Capacitor de cerâmica (33 nF)
  • 1 cada tomada estéreo
  • Fio de conexão
  • Tábua de pão

Etapa 1: Configurando o Arduino

Configurando o Arduino
Configurando o Arduino
Configurando o Arduino
Configurando o Arduino

Primeiro, vamos colocar o Nano na placa de ensaio e configurar nossa alimentação:

  1. Coloque o Nano na placa de ensaio. Posicione conforme mostrado na imagem acima. Ele deve ocupar o canal central da placa de ensaio. Você vai querer que ele fique próximo a uma extremidade da placa de ensaio, com a porta USB voltada para esse lado. Dessa forma, o cabo não atrapalhará quando o conectarmos. Se você estiver usando um Arduino maior, como o Uno ou o Mega, não o montará na placa de ensaio, é claro.
  2. Conecte os trilhos de alimentação ao Arduino. Conecte um dos trilhos positivos (vermelhos) de sua placa de ensaio ao pino de 5 V do Arduino usando fios ou fios de jumper. Em seguida, conecte um dos trilhos negativos (azuis) a um dos pinos GND do Nano.
  3. Conecte os trilhos de alimentação uns aos outros. Para obter energia ao longo dos trilhos em ambos os lados da placa de ensaio, conecte os trilhos de cada lado da placa de ensaio entre si passando um fio do trilho positivo de um lado ao trilho positivo do outro lado. Repita isso com os trilhos negativos.

Etapa 2: Adicionando os controles

Adicionando os controles
Adicionando os controles

O Mosquito I usa cinco potenciômetros e dois botões para os controles.

Potenciômetros:

  1. Coloque os potes na placa de ensaio. Coloque os potes de forma que cada pino fique em sua própria fileira.
  2. Conecte os potes aos trilhos de energia. Conecte o pino do lado esquerdo de cada pote (se você estiver olhando para o lado do botão) a um dos trilhos negativos na placa de ensaio. Conecte o pino do lado direito de cada pote a um dos trilhos positivos da placa de ensaio.
  3. Conecte pots ao Arduino. Conecte o pino central de cada potenciômetro a um dos pinos analógicos no Arduino. O pino central do primeiro pote se conecta a A0, o segundo pote a A1 e assim por diante, com o último pote sendo conectado a A4.

Apertar botões:

  1. Coloque os botões na placa de ensaio. Coloque os dois botões de pressão na placa de ensaio de modo que eles ocupem o canal central.
  2. Conecte os lados positivos. Em um lado da placa de ensaio, conecte um dos pinos do botão ao trilho positivo.
  3. Conecte os lados negativos. Coloque um dos resistores de 1K na placa de ensaio de forma que uma extremidade seja conectada ao pino não utilizado do botão de pressão e o outro lado do resistor se conecte ao trilho negativo.
  4. Botão de conexão ao Arduino. Passe um fio na linha que conecta o botão ao trilho negativo ao pino D2. Faça o mesmo com o outro botão, mas conecte-o ao D3.

Etapa 3: adicionando saídas

Adicionando Saídas
Adicionando Saídas

Estamos emitindo áudio do pino 9 e também piscando um LED na primeira etapa de cada sequência. Veja como configurar o hardware para isso.

CONDUZIU

  1. Coloque um LED em um espaço vazio na placa de ensaio.
  2. Conecte a perna negativa (curta) do LED ao trilho negativo.
  3. Coloque o resistor limitador de corrente. Conecte um lado de um resistor de 330 ohms à perna positiva (longa) do LED. Conecte o outro lado do resistor ao pino D4 do Arduino.

Saída de áudio

  1. Coloque a rede RC. O sinal de saída do Arduino está vindo do pino 9, mas o sinal pode ser um pouco mais quente do que alguns alto-falantes podem suportar. Para trazê-lo para algo mais próximo do nível de linha, adicionei uma rede RC (com base em um projeto de Notes & Volts). Coloque os capacitores de 33nF e 100uF, junto com o resistor 2K, conforme mostrado na imagem / esquema. Certifique-se de que o capacitor eletrolítico de 100uF esteja conectado com a polaridade correta (a perna positiva / longa indo para o pino 9 no Arduino e a perna negativa / curta conectada ao conector).
  2. Conecte o lado negativo do conector de áudio ao aterramento. As conexões do conector de áudio variam um pouco dependendo do tipo que você usa, mas geralmente funcionam da mesma forma. Precisamos conectar a manga do jack ao aterramento. Isso às vezes é marcado com um símbolo de menos ou rotulado como "manga", "anel" ou "gnd". Se não houver etiquetas em seu conector de áudio, você pode precisar consultar a folha de dados ou apenas fazer uma inspeção cuidadosa do conector e ver se você pode determinar qual pino está conectado à luva ou anel externo do conector.
  3. Conecte o lado positivo do conector de áudio ao lado negativo do capacitor 100uF. Nosso sinal de áudio agora flui do pino 9 do Arduino através da rede RC e emerge do lado negativo do capacitor 100uF. Vamos conectá-lo ao lado positivo de nosso conector de áudio. Isso geralmente é marcado com um símbolo de mais ou pode ser rotulado como "dica". Novamente, se não estiver rotulado, você pode precisar inspecioná-lo para descobrir qual pino se conectará à ponta do conector. Além disso, se você estiver usando um conector estéreo, pode haver uma conexão de ponta L e ponta R. Como estamos emitindo um sinal mono, você pode simplesmente conectar a qualquer uma das conexões de ponta.

Importante: Se você achar que o áudio está muito baixo, você pode eliminar a rede RC na etapa 1 e conectar diretamente ao áudio do pino 9 do Arduino. Isso deve funcionar se você estiver conectando o áudio a algo com um pré-amplificador, como alto-falantes externos de computador, onde você tem um botão de volume, mas eu não recomendaria para coisas como fones de ouvido, ou conectando diretamente a um alto-falante. Se você decidir eliminar a rede RC, sugiro abaixar totalmente o volume dos alto-falantes antes de ligar o Arduino e aumentar gradualmente o volume para evitar estourar os alto-falantes.

Depois de ter tudo configurado, verifique novamente se todas as conexões parecem corretas e correspondem à imagem e esquema acima

Etapa 4: enviando o código

Agora que o hardware está todo configurado, estamos prontos para lidar com o lado do software:

  1. Inicie o IDE Arduino. Em seu computador, inicie o IDE do Arduino (se não o tiver, você pode baixá-lo em
  2. Baixe a biblioteca Mozzi. A biblioteca Mozzi é o que nos permite usar nosso Arduino como um sintetizador. Para obter essa biblioteca em seu IDE, vá para a página do Mozzi github https://sensorium.github.io/Mozzi/download/. Clique no botão verde "Código" e escolha Download ZIP.
  3. Instale a biblioteca Mozzi do arquivo zip. No IDE do Arduino, vá para Sketch-> Incluir Biblioteca-> Adicionar Biblioteca. ZIP … Navegue até o arquivo zip que você baixou para adicioná-lo. Agora você deve ver Mozzi listado na seção Sketch-> Incluir Biblioteca.
  4. Baixe o código do Arduino do Mosquito I. Você pode obter isso no meu site github https://github.com/analogsketchbook/mosquito_one. (Observe que os esquemas também estão disponíveis lá se você precisar deles para referência de fiação.
  5. Conecte o Arduino ao computador e faça o upload do código.

Etapa 5: Brincando

É isso. Você deve ser capaz de conectar seus alto-falantes ao conector de áudio e ouvir o doce som da síntese arpejeada daquele Nano ittybitty! Se você não ouvir nada no início, tente centralizar os botões em todos os potes para ter certeza de que está obtendo valores iniciais decentes.

Aqui está o que os controles fazem:

Panelas:

Taxa: controla a velocidade de reprodução do sequenciador. Abaixá-lo reproduz notas discretas em sequência. Girar para cima une as notas para criar formas de onda completamente novas.

Legato: O segundo pote controla o legato ou a duração da nota. Girar mais para a esquerda produz notas curtas e esticadas, enquanto girá-lo para a direita produz notas mais longas.

Pitch: Isso define o pitch básico para a sequência. O controle de afinação está configurando valores MIDI, portanto, aumenta / diminui a afinação em semitons, em vez de uma mudança contínua de afinação.

Fase: girar este botão para a direita introduz um efeito de fase sutil. Tecnicamente falando, isso está fazendo com que os dois osciladores no Mosquito I sejam ligeiramente desafinados, o que é o que causa o faseamento. No entanto, não está acompanhando a afinação, então o efeito de fase é provavelmente mais perceptível nas notas de afinação mais baixas.

Filtro: Este botão controla a frequência de corte de um filtro passa-baixas. Girar para a esquerda corta as frequências altas, produzindo um som mais abafado, enquanto girando para a direita, produz um som mais brilhante.

Botões:

O Mosquito tem mais de vinte sequências diferentes que pode reproduzir por padrão. Os botões permitem que você selecione a sequência que está sendo reproduzida. Um botão move você para cima na lista de sequências e o outro desce na lista.

Etapa 6: Personalização

Costumização
Costumização

Eu adicionei um monte de sequências padrão, principalmente escalas diferentes, mas você pode personalizar o código com bastante facilidade para alterar a sequência de notas que estão sendo tocadas, adicionar novas ou alterar o número de notas em uma sequência. Abaixo estão os detalhes de como isso está sendo feito caso você queira customizá-lo.

Mudança de notas na sequência existente

As sequências são armazenadas em uma matriz de matrizes chamada NOTES. Cada nota é armazenada como um valor de nota MIDI, portanto, se você quiser alterar as notas em uma sequência específica, basta alterar os números das notas MIDI dessa sequência. A configuração padrão é reproduzir 8 etapas por sequência, de forma que você possa ter apenas 8 valores MIDI em uma sequência (veja abaixo se você deseja ter diferentes comprimentos de sequência).

Uma coisa a ser observada: o botão de afinação adiciona um deslocamento de nota aos valores MIDI especificados no array NOTES. Quando o botão está centralizado, ele reproduz as notas MIDI indicadas na matriz, mas conforme você gira o botão de afinação, ele adiciona ou subtrai um semitom às notas que estão sendo tocadas.

Adicionando novas sequências

Você pode adicionar novas sequências ao array NOTES simplesmente adicionando um novo array de 8 notas no final da lista. Porém, se você fizer isso, também precisará alterar o valor da variável numSequences para corresponder ao novo número de sequências. Por exemplo, o array NOTES tem 21 sequências por padrão, então a variável numSequences é definida como 21. Se você adicionar uma nova sequência, será necessário alterar a variável numSequences para 22.

Você pode adicionar quantas novas sequências desejar.

Alterando o comprimento da sequência

Se quiser alterar o comprimento de suas sequências (se quiser, digamos, uma sequência de 4 ou 16 passos), você pode fazer isso, mas a única ressalva é que todas as sequências precisam ter o mesmo comprimento. Você também precisará definir a variável numNotes para corresponder ao comprimento de suas sequências.

Outras Mudanças

Existem várias outras personalizações possíveis, como a troca de tipos de forma de onda, configurações / valores de filtro, que estão além do escopo deste tutorial. Descobrir o código Mozzi pode ser um pouco desafiador no início, mas tentei documentar o código o máximo possível para mostrar o que as várias partes do código estão fazendo.

Existem algumas partes principais do código para Mozzi que têm usos bastante específicos e eu as listei abaixo para lhe dar uma ideia de para que são usadas:

  • setup () - Se você já programou para Arduinos antes, está familiarizado com esta função e ela é usada da mesma forma no Mozzi. Usamos principalmente para definir as configurações padrão para osciladores, filtros, etc.
  • updateControl () - É aqui que a maior parte do código Mozzi está fazendo seu trabalho. É onde lemos os valores do potenciômetro e do botão, mapeamos e transformamos esses valores para alimentar o sintetizador e onde o sequenciamento está sendo feito.
  • updateAudio () - Esta é a saída final da biblioteca Mozzi. Normalmente, o código aqui é mantido muito pequeno e enxuto porque essa função está sendo usada pelo Mozzi para maximizar todos os ciclos de clock que puder. Como você pode ver no código do mosquito, pode ser um pouco enigmático, mas basicamente tudo o que estamos fazendo é combinar / multiplicar nossas várias formas de onda e, em seguida, alterá-las para caber em um intervalo de número específico. É melhor manter essa função bem leve (não chamadas seriais ou pinos de leitura) e colocar a maior parte das coisas na função controlUpdate (). A documentação do Mozzi detalha isso mais detalhadamente.

Recomendado: