Colegas, tenho uma novidade incrível para quem gosta de música e sintetizadores! 

Encontrei um projeto opensource de um sintetizador usando o RaspBerry Pi, com qualidade de som fenomenal. 

Você vai precisar de:

- um Raspberry Pi 3 ou 4 (acho que o Zero funciona) 

- placa I2S de audio

- display

- chave rotatória (rotary encoder) 

- GPIO expander

Link do projeto:

https://github.com/probonopd/MiniDexed

Vou montar um. Quem quiser me acompanhar, fique à vontade para perguntas. 

Para tocar os instrumentos no Raspberry Pi, vai precisar de teclado MIDI (com interface USB). 

Tenho estudado sobre sintetizadores, MIDI desde a muitos anos. A teoria eu sei muito, mas não tinha verba para desembolsar em um sintetizador. Apesar de não saber tocar um...

Dá uma olhadinha nesse vídeos :

Exibições: 710

Responder esta

Respostas a este tópico

Galera boa noite,

Consegui montar grande parte do miniDexed! 

Mas faltam algumas coisas. Como por exemplo, a interface MIDI.

Aguardem, pois assim que possível, irei postar tudo o que eu fiz.

O tutorial do Floyd Steinberg me ajudou bastante:

https://youtu.be/Z3t94ceMHJo

A montagem do hardware foi baseado nesse link:

https://github.com/probonopd/MiniDexed/wiki/Hardware

Usei um LCD 16x2 com interface I2C para simplificar as conexões com o Raspberry Pi. 

Eu fixei o LCD/Interface I2C com dois suportes de bronze. 

Não quis conectar a interface I2C do display diretamente no Raspberry, pois ela é 5V.

Para converter os pinos SCL e SDA (I2C) de 5V para 3,3V, usei um conversor bidirecional de nível lógico. 

Como eu não tinha o Encoder KY-040, montei o circuito com o encoder que eu tinha, com resistores e capacitores. 

Para não ter que usar o switch do encoder, acrescentei uma mini chave botão. Acho que ficou muito melhor. 

Aguardem! 

Boa noite colegas, 

Estou montando o turorial também no Github:

https://github.com/Gustavomurta/miniDexed_RaspPi_synthesizer

Montando o Display LCD com interface I2C: 

Guia Completo do Display LCD – Arduino

LCD 16×2 com Interface I2C:

  • GND – conecte no terra (pino 6) do Raspberry Pi
  • VCC – conecte no pino +5V (pino 2) do Raspberry Pi
  • SDA – serial Data – interface I2C => GPIO_02 (pino 3) do Raspberry Pi
  • SCL – serial Clock – interface I2C => GPIO_03 (pino 5) do Raspberry Pi

Nesse módulo I2C, resistores de PULL UP (4,7 K ohms) já existem.

Portanto acrescentei resistores de 10K conectados ao terra, para reduzir a tensão da interface para 3,3V.

Dessa forma, não é necessário o conversor de nível lógico (de 5V para 3,3V). 

O chip PCF8574 possui alguns endereços I2C já definidos, dependendo do modelo (identifique o chip do seu módulo):

  • PCF8574 = 0x20H
  • PCF8574A = 0x38H

O potenciômetro Azul nessa interface é usado para ajuste do contraste.

Após o Display energizado e programado, ajuste-o para tornar a imagem visível.

O jumper LED é usado para ativar o LED Backlight.

Clique na imagem para ampliá-la. 

Montando o Encoder e a chave de botão: 

Como já disse, achei melhor não usar o botão de pressionar do encoder.

Acrescentei uma chave de botão. E ficou muito bom.

Como eu não tinha o modulo Encoder KY-040, montei esse circuito no Protoboard. 

Teclado para o miniDexed: 

Para tocar o multi-instrumento miniDexed, é necessário o uso de um teclado MIDI. Teclado MIDI só serve para enviar as notas musicais, os parâmetros e a duração de cada uma, para um sintetizador onde o som é gerado.

No meu caso, para testes estou usando um mini teclado MIDI da AKAI - modelo MPK Mini que é da minha filha. A interface MIDI é transimitida pela USB, como a maioria dos teclados MIDI atuais. Hoje também existe MIDI através do Bluetooth. O miniDexed suporta MIDI através da USB. 

https://www.akaipro.com/mpk-mini-mkii

 

Outra opção existe para uso com o miniDexed - é a interface MIDI original, antiga usando aqueles cabos com conectores RCA. Mas é preciso montar um circuito com acopladores óticos. 

Interface MIDI clássica : 

https://diyelectromusic.wordpress.com/2022/07/28/minidexed-raspberr...

https://github.com/diyelectromusic/sdemp_pcbs/tree/main/RpiMiniDexe...

ou 

https://github.com/gmcn42/clumsyMIDI

clique na imagem para ampliá-la

Se você não tem um teclado MIDI (não são baratos), não se desepere, pois pretendo no futuro divulgar um projeto de Teclado MIDI - USB. Esse projeto pode ser uma demonstração de como ele será. 

Preparando o SD card do Raspberry Pi: 

Observação importante: 

Como estou usando um Raspberry Pi Zero, o meu miniDexed emula somente um Sintetizador DX7. Se for usar um Raspberry Pi 3B ou modelo 4, poderá ter até 8 sintetizadores DX7 (Geradores de Tons) ! Para quem esta começando, acho que é um exagero. 

Instruções de como criar o SD card estão no link abaixo:

https://github.com/probonopd/MiniDexed

Mas vou explicar tudo detalhadamente!

1) Baixe no seu PC, o arquivo zipado do link abaixo - MiniDexed_2023-07-09-571816f.zip

https://github.com/probonopd/MiniDexed/releases 

(O nome do arquivo poderá mudar após atualizações da versão) 

2) Descompacte o arquivo zipado no seu PC. Dentro da pasta descompactada, precisará editar alguns arquivos de configuração do miniDexed. 

3) Como estamos usando o módulo DAC PCM5102, é necessário alterar a configuração. Abra o arquivo minidexed.ini com qualquer editor de texto, como o editor de notas do Windows. 

# Sound device
SoundDevice=i2s                  <= retire o caracter # para selecionar I2S do PCM5102 
#SoundDevice=pwm             <= acrescente o caracter # para desativar essa opção 
#SoundDevice=hdmi
SampleRate=48000
#ChunkSize=256
DACI2CAddress=0
ChannelsSwapped=0

4) Ainda no arquivo minidexed.ini: 

Se estiver usando o LCD 16x2 com interface I2C como eu montei, mude o endereço I2C para 0x3F ou 0x20, dependendo do endereçamento do chip PCF8574A da interface. Salve as alterações no arquivo. 

# HD44780 LCD
LCDEnabled=1
LCDPinEnable=17
LCDPinRegisterSelect=4
LCDPinReadWrite=0
LCDPinData4=22
LCDPinData5=23
LCDPinData6=24
LCDPinData7=25
LCDI2CAddress=0x3F

5) Gravando os arquivos SYS dos instrumentos musicais:

  • Crie uma pasta com o nome sysex, dentro da pasta descompactada. 
  • dentro dessa pasta sysex, crie outra pasta com o nome voice
  • Dentro da pasta voice, adicione os arquivos SYS, que desejar. 

Veja no próximo tópico, mais informações sobre os arquivos SYS. 

6) No arquivo performance.ini poderá editar algumas configurações, como o ajuste do volume do som de cada Tone Generator: 

# TG1
BankNumber1=0
VoiceNumber1=1
MIDIChannel1=255
Volume1=10  (ajuste 0 a 100) 

7) Copie toda a pasta descompactada e já configurada em um micro SD Card (Classe 10). O cartão SD deve ser antes formatado no Windows, com o formato FAT32. Insira o SD Card no Rasp Pi. 

Acople um amplificador de som (abaixe o volume) na saída do módulo PCM5102. Conecte um teclado MIDI na USB do Rasp Pi e ligue a fonte do miniDexed! Pronto para testá-lo! 

Se o seu não funcionar, me avise. 

Carregando os arquivos de Instrumentos - SYS:

Como eu informei no tópico anterior:

Gravando os arquivos SYS dos bancos de instrumentos musicais: (cada banco possui 32 instrumentos) 

Esses bancos são na verdade derivados dos cartuchos do sintetizador original Yamaha  DX7. 

  • Crie uma pasta com o nome sysex, dentro da pasta descompactada. 
  • dentro dessa pasta sysex, crie outra pasta com o nome voice
  • Dentro da pasta voice, adicione os arquivos SYS, que desejar. 

Nos  meus testes iniciais, veja como eu identifiquei os arquivos. Inseri uma numeração na frente do nome do arquivo, para facilitar a seleção dos Bancos de Instrumentos (Bank), no display LCD do miniDexed. 

Na pasta sysex/voice

0001_ROM1A.syx

0002_ROM1B.syx

0003_ROM2A.syx

0004_ROM2B.syx

Mas onde conseguir esses arquivos de bancos de instrumentos?

Você poderá baixar o arquivo zipado Dexed_cart_1.0.zip no link abaixo:

http://hsjp.eu/downloads/Dexed/

Nesse link abaixo existem uma grande quantidade de cartuchos! 

http://synthzone.com/midi/yamaha/dx7/

Descompacte os arquivos zipados e copie os arquivos SYS na pasta sysex/voice

Mas atenção na organização dos arquivos. 

exemplo:

Dexed_cart_1.0\Dexed_cart_1.0\Original Yamaha\DX7 ROM1

ROM1A.syx

ROM1B.syx

copie somente os arquivos tipo SYS. 

====================================================

Dica interessante: 

Você pode testar todos os instrumentos de todos os cartuchos (arquivos SYS) usando o emulador de sintetizador DEXED no seu PC: 

https://asb2m10.github.io/dexed/

Gerenciador de Cartuchos (no DEXED):

Qualquer arquivo .syx no diretório Cartridges estará disponível na janela "CART". Encontre este diretório usando o botão "CARRINHO" e depois o botão "MOSTRAR DIR".


Você pode arrastar e soltar qualquer programa DX7 do que está carregado no dexed e/ou do que você carregou no navegador do cartucho.

Clicar duas vezes em um programa carregará o programa atualmente selecionado no plug-in.

==========================================

Se quiser aprender sobre o funcionamento do Yamaha DX7, recomendo esse livro:

http://synthzone.com/midi/yamaha/dx7/The%20Complete%20DX7.pdf

Voice libraries

Algumas paginas da Wiki do miniDexed: (recomendo a leitura de todos os itens) 

https://github.com/probonopd/MiniDexed/wiki

Home
Algorithms
Development
Exercises  => como configurar o miniDexed
Files   => informações detalhadas sobre os arquivos de configuração
Hardware  => como montar o HW
Menu   => como usar o menu no LCD
MIDI Implementation
MIDI Thru
Recommended Resources

Mini-amplificador de aúdio:

Para amplificar o som stéreo do Audio DAC PCM5102, eu usei um módulo PAM8403: 

Data sheet PAM8403:

https://www.mouser.com/datasheet/2/115/PAM8403-247318.pdf

O PAM8403 é um amplificador de áudio classe D de 3 W. Oferece baixo THD+N,
permitindo-lhe obter uma reprodução de som de alta qualidade. Alimentação com 5V. 

Wiki do módulo PAM8403:

https://www.sunrom.com/p/stereo-audio-amplifier-pam8403

Para a alimentação do miniDexed, usei um regulador LM2596. 

Alimentei o LM2596 com uma fonte de 12V (pode ser 9V também). 

Ajustei a tensão de sáida do regulador para 5,15V. 

O regulador LM2596 pode alimentar o Raspberry Pi, o mini-amplificador PAM8403 e o teclado MIDI através de uma conexão USB adaptada.(depois eu explicarei). 

Na entrada do circuito do mini-amplificador PAM8403 usei um potenciômetro duplo de 10K ohms linear. 

Para conectar as mini caixas de som eu interliguei as sáidas com dois capacitores de 47uF/25V (um em cada canal). 

Usei duas mini caixas de som Pioneer (antigas) com 6 ohms e 100W! Era o que eu tinha aqui e são de ótima qualidade sonora. Recomendo caixas de som com no mínimo 5W. 

Para conectar o fone de ouvido stéreo (headphone), acrescentei dois resistores de 100 ohms em série, um em cada canal. Se for usar o headphone, desconecte as caixas de som. 

OBS: quando for usar o headphone, ajuste o potenciômetro para o mínimo. Depois ajuste o volume. O som poderá estar ajustado para um volume muito alto! 

Diagrama do circuito do meu mini amplificador: 

Procedimentos para operação do miniDexed: 

Aqui estão todas as instruções de operação do miniDexed. 

Se tiver alguma dúvida, me pergunte. Sugiro que veja os vídeos já citados.

https://github.com/probonopd/MiniDexed/wiki/Menu#menu-tree

Muito interessante isso aqui :

  • Desempenho (Performance) 

  • Carregar Carrega um arquivo de desempenho salvo de performance.iniou para o performancediretório. A bandeira "[L]" no canto superior esquerdo da tela indica o arquivo de performance carregado no momento
    • Cargas Padrãoperformance.ini
    • [Outras entradas] Carregue o respectivo arquivo do performancediretório
  • Salvar Salva a configuração de desempenho
    • Substituir Grava as alterações no arquivo de apresentação carregado no momento, sobrescrevendo-o
    • Novo Crie um novo arquivo de desempenho. Por padrão, um nome sugerido será gerado, mas pode ser editado antes que o novo arquivo seja criado. Para fazer isso, pressione o botão de seleção (= para baixo) e mova o codificador rotativo ou os botões de incremento/decremento (= esquerda/direita) para mover o cursor. Selecione (= para baixo) para confirmar e volte (= para cima) para abortar
    • Definir como padrão Salva os parâmetros de desempenho atuais no performance.iniarquivo padrão, substituindo-o. Esta performance será carregada toda vez que o dispositivo for ligado
  • Excluir Exclui o arquivo de desempenho carregado no momento. Observe que o performance.iniarquivo de desempenho padrão não pode ser excluído

Este é meu primeiro protótipo montado com um Raspberry Pi Zero (modelo antigo). E o Audio DAC PCM5102 funciona muito bem. Usei um display LCD com interface I2C e um regulador LM2596 para fornecer 5V para todo o miniDexed. Ajuste a saída de 5V antes de conectar qualquer circuito!

Para testar o miniDexed, estou usando um teclado Akai MPK mini MIDI, conectado na porta USB. Para não sobrecarregar os 5V do Raspberry Pi Zero, adaptei o conector USB (fonte de alimentação 5V separada).

E para amplificar o som, usei um mini-amplificador PAM8403 que pode ser conectado a caixas de som (3W) ou a um Headphone. Muito feliz!

Se alguém tiver algum problema ou dúvida em relação ao projeto, pode me pedir ajuda.

https://github.com/Gustavomurta/miniDexed_RaspPi_synthesizer/tree/main

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço