Fentuino Open Synth - projeto "faça você mesmo" seu sintetizador.

Autor Mensagem
kiki
Moderador
# abr/18
· votar


Casper
Mas quem quiser transformar algum teclado
inutilizado em controlador MIDI, tem um monte de
projetos na internet que é só copiar:


Eu arrumei um keytar de Rock Band 3, serve como controlador midi!

Casper
Veterano
# abr/18
· votar


Caro Beto Guitar Player:

Eu só estou juntando pedaços das
ideias de outras pessoas. Eu sou
incapaz de fazer o que as bibliotecas
MIDI e Mozzi fazem. E qualquer
contribuição será bem vinda.

Casper
Veterano
# abr/18
· votar


Caro kiki:

100%:

https://spinditty.com/artists-bands/Rockband-3-Keyboard-as-a-MIDI-Cont roller

kiki
Moderador
# abr/18
· votar


Casper
Legal! Eu tô usando ele com um synth mesmo, um Korg volca
Mas eu queria fazer ele no mozzi, igual vc tá fazendo.
Tem um amigo me ajudando (eu manjo muito pouco dessas partes eletrônica)

kiki
Moderador
# abr/18
· votar


A gente já tá usando o mozzi apenas como theremin
https://www.instagram.com/p/Bg-UWS-gsg2/

kiki
Moderador
# abr/18
· votar


http://synthino.com/

Casper
Veterano
# abr/18
· votar


Caros colegas:

Estou ausente nesses dias porque
estou viajando a trabalho, mas continuo
(em ritmo mais lento) trabalhando
nesse projeto. Minhas encomendas
do e-bay estão a caminho.

Alguém já instalou o Mozzi para testar?

xmarhunterx
Membro Novato
# mai/18
· votar


Casper
E como vai o projeto?

Casper
Veterano
# mai/18
· votar


Ainda não retornei, e não chegaram oa arduinoa.
Mas já adiantei um pouco do código MIDI

xmarhunterx
Membro Novato
# mai/18
· votar


Casper
Mais de um mês e os arduinos ainda não chegaram? Cara, esse treco custa 40 conto aqui, pra que comprar do aliexpress?

kiki
Moderador
# mai/18
· votar


Casper
E aí mano, beleza?
Você é de SP, né? Descobri recentemente que existe um grupo aberto de Arduíno no Fab Lab Livre da Galeria Olido, às quintas de tarde.
Eu tô esperando ter uma folga no trabalho pra ir lá conhecer.

xmarhunterx
Casper
Mais de um mês e os arduinos ainda não chegaram? Cara, esse treco custa 40 conto aqui, pra que comprar do aliexpress?

Pois é, eu fui até a luz e comprei ali na região da Santa ifigênia.
Mas depende se ele encomendou em quantidade, ele queria usar um Uno e 5 Nano, pode valer a diferença (porém, a previsão atual é de enroscar beeeeeem nos correios.

rodolfo1982
Veterano
# jun/18
· votar


Casper
Show de bola esse tópico, pena que só ví agora.

Fiquei sem olhar o fórum por uns meses, e agora me deparei com este tópico show de bola !
Bom, se eu puder contribuir... eu montei um sintetizador, e meu prof. orientador do mestrado montou também.

Vou postar aqui alguns links para quem quiser olhar/ler. Tô com pouco tempo para acessar o fórum, mas posso ajudar e contribuir como for possível.

Aqui o código-fonte do synth que eu criei:
https://github.com/rppirotti/rgsynth

Nunca fiz um vídeo pra demonstrar ele todo, mas tenho esse abaixo, quando ainda era um protótipo:
https://www.youtube.com/watch?v=asuycIvozhg

No vídeo acima eu usei ele como MIDI, mas na versão final tenho ele anexado em um teclado de um Casio antigo.

Aqui página no face com fotos e vídeos:
https://www.facebook.com/arduinoduesynth/

Bom, espero que isso ajude. Qualquer coisa é só perguntar...

Casper
Veterano
# jun/18
· votar


Caro rodolfo1982:

Ainda estou em viagem se trabalho,
por mais um mês. Olhei rapidamente
seu código... parabéns!

Tem mais detalhes do hardware em
algum lugar?

Obrigado por compartilhar seu
conhecimento.

rodolfo1982
Veterano
# jun/18 · Editado por: rodolfo1982
· votar


Casper
Grande Casper !

Sim ! Na verdade, a implementação desse synth foi parte da minha dissertação de mestrado. O arquivo da dissertação pode ser encontrado no link abaixo (é o repositório digital da UFRGS, podem clicar sem medo).

http://hdl.handle.net/10183/157542

Lá tem o capítulo de desenvolvimento prático com detalhes (e recomendo também olhar as referências - algumas me ajudaram muito no desenvolvimento).

Um dos principais pontos que eu cito é o algoritmo PolyBLEP, para gerar osciladores sem aliasing. Melhora muito a qualidade do som (para formas de onda com descontinuidade, como quadrada, dente-de-serra, etc).

Outro ponto interessante é a abordagem para usar síntese aditiva (usando a ideia dos osciladores do Hammond) de forma mais eficiente. Tem um capítulo sobre isso, mas sem muitos detalhes. Porém eu aponto algumas referências que detalham mais.

Casper
Veterano
# jun/18
· votar


Caro rodolfo1982:

Lerei tudo, com certeza. Minha abordagem
é diferente: decidi usar o arduino mais
simples com biblioteca Mozzi. Seu projeto
utiliza um processador muito mais requintado.

Meu objetivo é fazer um sintetizador
extremamente simples e acessível.

Mas tenho certeza que a leitura de
seu texto irá ajudar muito.

Obrigado!

rodolfo1982
Veterano
# jun/18
· votar


Casper
Tens razão.

Meu objetivo era um misto entre qualidade e custo/benefício. Eu queria algo simples e barato, mas que tivesse uma qualidade de áudio "mínima". E por qualidade de áudio, no meu caso me refiro à não existência de aliasing no sinal de saída (que para ondas quadradas e dente-de-serra em síntese subtrativa são bem chatas) e também um DA de alta qualidade na saída (com baixo nível de ruído).

Mas ainda considero o Due um processador barato pois não usei unidade de ponto flutuante em HW, e isso deixa uma ampla gama de processadores baratos possíveis (especialmente ARMs M0, M3 e similares). Mas ainda assim foquei em processadores 32 bits (e não 8 bits como esses Arduinos mais baratos).
BTW, tu encontra o Arduino Due por uns 100 reais por aí ou menos (mercado livre).

No caso do Aruino Nano ou menores, realmente não dá pra fazer tudo o que fiz. Mas se tu fores utilizar síntese subtrativa (e já que está fazendo experimentos) recomendo se for possível testar esses algoritmos anti-aliasing (PolyBLEP), pois melhoram muito a qualidade de saída.

Hoje, se eu fosse continuar meu projeto, tentaria usar o Teensy 3.2. É mais caro (em torno de 200 reais aqui no Brasil comprado em loja - deve ter mais barato vindo da china), mas é um processador com FPU, ou seja, dá pra fazer maravilhas com ele.

Por fim, realmente para fazer um synth bem barato e simples, usar o Mozzy como referÊncia é um ótimo ponto de partida.

Valeu !

Jonathas Lacerda
Veterano
# jun/18 · Editado por: Jonathas Lacerda
· votar


rodolfo1982
E se considerarmos módulos como nodeMCU (ESP8266) ou ESP32, que hoje custam equivalentes ao preço de um arduino uno?



Casper
Veterano
# jun/18
· votar


Caro Jonathas Lacerda:

Eu descobri que existia o Teensy 3.2
quando instalei o Mozzi. Me parece
realmente uma excelente opção, com
um custo intermediário.

Mesmo assim vou dar andamento no
projeto usando uno/nano, que são
(acredito eu) os módulos mais baratos
e mais populares hoje em dia. Sei que
isso implica em sacrificar a qualidade
final do áudio, mas faz parte.

Lerei com calma todas suas referências.
Novamente obrigado!

Casper
Veterano
# jun/18
· votar


Caro Jonathas Lacerda:

Sobre o ESP8266, eu não sei ao certo, tem
que pensar sobre o ambiente de programação.
Eu sei que fazer coisas simples com lua é
tarefe simples, mas em C++ já ouvi muita gente
falando que patina bastante.

A escolha do arduino se deve principalmente
pela facilidade do IDE, que realmente é de
fácil acesso até para quem nunca usou.

E gostaria que o projeto tivesse essa
característica: atrair novos usuários.

Jonathas Lacerda
Veterano
# jun/18
· votar


A ESP8266 também funciona com a IDE do Arduino e aceita código em C++.

Cleber Vaz
Veterano
# jun/18
· votar


Casper

Excelente ideia/tópico. Parabéns pela iniciativa
Apesar de programação ainda não ser tão popular entre tecladistas, não me parece exagero sugerir que este tópico seja fixo pois cada vez mais arduino e similares estão se tornando mais populares e é muito importante concentrar essas informações para a comunidade diy.

Sintetizadores analógicos sempre foram a minha praia mas quando comecei a pensar em construir um "string machine" a ideia de programar ficou extremamente tentadora, pela economia de hardware, sem falar no fato de poder optar facilmente por usar midi e não acumular teclados.

Acompanhando!

rodolfo1982
Veterano
# jun/18
· votar


Jonathas Lacerda
Sobre o ESP8266/ESP32, pelo que lí ele parece ter um processador muito similar ao Arduino Due, que eu utilizei. Neste caso seria possível sim usar ele para fazer algo similar ao que eu fiz, e com mais poder de processamento que usando o Arquido Nano/Uno.

Só não encontrei muitos detalhes sobre o processador utilizado no ESP32. Achei apenas que é 32 bits e roda a 160Mhz, mas não consegui comparar sua eficiência diretamente com um ARM M0 ou M3, por exemplo.

Casper
Veterano
# jun/18
· votar


Caro rodolfo1982:

Em uma pesquisa rápida também não
consegui muita informação útil sobre
os ESP32. Eu ví que existem versões
de 80Mhz e de 160Mhz, ambas com
bastante ROM e RAM. Quem sabe em
um próximo projeto...

Casper
Veterano
# jun/18
· votar


Links interessantes para quem está
interessado no projeto:

http://linksprite.com/wiki/index.php5?title=MIDI_Shield_for_Arduino

https://www.farnell.com/datasheets/1682209.pdf

http://www.farnell.com/datasheets/1682238.pdf

Abaixo o Mega, para quem quiser colocar display e/ou
outras firulas:

http://www.farnell.com/datasheets/810077.pdf

Casper
Veterano
# jun/18
· votar


Chegaram os nano, depois de 2 meses!

Já estou com tudo pronto para
montar:

1 arduino uno
1 shield MIDI para uno
8 bases para nano
8 arduinos nano (na verdade 20)
1 fonte 12V x 1A (exagerada)

Daqui a 6 dias iniciarei os trabalhos.

Casper
Veterano
# jul/18 · Editado por: Casper
· votar


Fiz um Blog para o projeto, mas continuarei a postar
antes por aqui.

http://menegasso.blogspot.com/2018/07/fentuino-sintetizador-com-arduin o.html

Todas as informações relevantes estarão lá e aqui.

Habilite o Menu Lateral para vert tudo que está lá.

Casper
Veterano
# jul/18
· votar


Primeira implementação do Arduino master, que distribui as
notas para os outros arduinos:

https://menegasso.blogspot.com/2018/07/distribuindo-as-notas-entre-os. html

Casper
Veterano
# jul/18
· votar


Atualização dos pinos do Uno (master):

//=========================================================
// Project: Fentuino Open Source Musical Synthesizer
// Module: Arduino Uno (Master)
// V1.10
// 12/07/2018
//
// MIDI Library:
// https://github.com/FortySevenEffects/arduino_midi_library
// Serial Library:
// http://gammon.com.au/Arduino/SendOnlySoftwareSerial.zip
//
// Hardware
// 0 - RX (MIDI In)
// 1 - TX (MIDI Out)
// 2 - "All Notes Off" (Panic) - Active on 0 (pull-up)
// 3 - SERIAL OSC1 (31250 Hz)
// 4 - SERIAL OSC2 (31250 Hz)
// 5 - SERIAL OSC3 (31250 Hz)
// 6 - SERIAL OSC4 (31250 Hz)
// 7 - SERIAL OSC5 (31250 Hz)
// 8 - SERIAL OSC6 (31250 Hz)
// 9 - SERIAL OSC7 (31250 Hz)
// 10 - SERIAL OSC8 (31250 Hz)
// 11 - CH1_LED
// 12 - CH2_LED
// 14 (A0) - CH3_LED
// 15 (A1) - CH4_LED
// 16 (A2) - CH5_LED
// 17 (A3) - CH6_LED
// 18 (A4) - CH7_LED
// 19 (A5) - CH8_LED
//=========================================================

Casper
Veterano
# jul/18
· votar


Atualização do estado atual de montagem:

Fazendo uns testes para ver se mudo a comunicação
serial por software (SendOnlySoftwareSerial) para uma
saída TX apenas no master, da UART, que vai para
os 8 RX dos nanos.

Hoje:
O Uno recebe o MIDI no canal 1 e manda o MIDI
individualmente para cada oscilador, que também
responde no canal 1 (individualmente).
Prós: A mesma programação em todos os Nanos,
e o MIDI OUT funciona perfeitamente
Contra: Mais fios passeando, implementação
de 8 seriais por software (que são uma merda).

Teste:
O Uno recebe o MIDI no canal 1, e manda pela
mesma serial para os 8 Nanos, cada um em um canal
exclusivo (de 1 a 8, internos).
Prós: Mais estabilidade, menos fios
Contras: O MIDI OUT morre (mas eu não ia usar mesmo)
e dada Nano tem um endereço diferente, que pode
ser resolvido de muitas formas, não decidi qual é a melhor.

Essa questão do serial atrasou o projeto, mas estou
caminhando para uma solução definitiva.

TrebleH
Veterano
# jul/18
· votar


Bom dia galera blz?
Tô um tanto por fora e não pude nem ler direito o que tá rolando... mas talvez alguma dica possa ajudar:

1 - Sobre o MIDI OUT morrer, talvez seja por algum problema de alimentação mesmo. É bom verificar se o Arduino sozinho é capaz de gerar a corrente necessária para alimentar a comunicação do dispositivo.

2 - Sobre a questão dos fios, talvez, pelo menos na comunicação com o arduino, fosse interessante o uso de shields com interfaces I2C para econimizar pinos do microcontrolador.

Tá fino de mais gente. Desculpem não estar contribuindo com nada, mas gostaria de em breve estar aprendendo com vcs sobre sintetização com Arduino.

Talvez, futuramente, a gente poderia utilizar soluções mais específicas com um outro microcontrolador (talvez um ARM da ST, por exemplo) e desenvolvendo nossas próprias placas para brincar. Estou tentando arrumar tempo pra isso, mas tá foda :/

Tá destruindo mestre Casper, parabéns

Enviar sua resposta para este assunto
        Tablatura   
Responder tópico na versão original
 

Tópicos relacionados a Fentuino Open Synth - projeto "faça você mesmo" seu sintetizador.