Projeto de um sintetizador (Synth) de MIDI Programável com a placa Intel Edison e Csound

Intel Edison e Csound
Este post faz parte da série Sintetizador MIDI. Leia também os outros posts da série:

Originalmente publicado no Instructables em inglês neste link e traduzido por Thiago Lima com autorização do autor Jomar Silva.

Um controlador MIDI é como um teclado de computador, mas em vez de enviar caracteres para o computador, ele envia notas musicais (e um monte de informações adicionais sobre como essa nota está sendo tocada). Você pode aprender mais sobre controladores MIDI neste link.

Geralmente, um controlador MIDI é muito barato quando comparamos seu preço com o de um sintetizador completo, mas os controladores MIDI requerem um PC (ou MAC) e uma grande quantidade de software adicional para funcionar. Só para fazer uma comparação, o MIDI Synth que é construído neste tutorial gera um timbre muito semelhante a um dos timbres gerados pela Roland Jupiter 8 Analog Synth, que está sendo vendido por um preço em torno de US$ 12.000. Clique neste link e confira.

Se você não tem os 12 mil dolares para investir agora para tocar o tema do Axel Foley, mas tem um controlador MIDI, uma placa de som USB e uma placa Intel Edison, você deve tentar seguir este tutorial (e sim, você também pode tocar algumas músicas do Krafwerk, Van Halen e um monte de outras músicas legais).

Usaremos Csound neste tutorial, e em poucas palavras você pode gerar o que quiser com ele. De Hammond Organs a Moog, sua criatividade e habilidades com Csound são tudo que você precisa para explorar esta linguagem de programação de áudio maravilhosa.

No final deste texto, coloquei um vídeo com a demonstração do sintetizador com a Placa Intel Edison.

sintetizador Intel Edison e Csound
Figura 1 – Projeto de um sintetizador (Synth) de MIDI Programável contruído com a placa Intel Edison e Csound

Passo 1: Do que a gente precisa

Vamos usar uma Intel Edison com a placa Breakout Board Arduino.

Meu controlador MIDI é um Behringer UMA25S, e tem uma placa de áudio embutida. Você pode usar dois dispositivos separados para fazer o mesmo.

Nós também vamos precisar de uma fonte externa para alimentar a placa Intel Edison e no meu caso eu também vou precisar de um Hub USB ativo (um hub USB com alimentação externa), para alimentar o controlador MIDI. As especificações para a fonte de alimentação da Intel Edison Breakout Board podem ser encontradas neste link.

Eu também usei um alto falante externo (adoro música alta) e também fones de ouvido durante o processo.

Step 2: Configurando a placa Intel Edison e instalando os pacotes adicionais necessários

Se este é o seu primeiro contato com uma placa Intel Edison, por favor leia o Guia de Introdução a essa placa. Ele pode ser encontrado em inglês como Getting Started Guide.

Conecte a sua placa Intel Edison à sua máquina, seguindo os passos encontrados neste link.

Atualize o firmware de sua placa Intel Edison, baixe o software necessário a partir deste link.

Para continuar, certifique-se de que sua placa Edison está conectada à Internet. Para saber mais sobre a conexão da placa com a Internet, siga o “Passo 3: Get your board online“, deste documento. Para ligar a placa a uma conexão Wi-Fi existente, siga as instruções disponíveis nesta página.

Você também vai precisar que sua placa Edison esteja conectada a uma fonte de alimentação externa, e conectada ao seu computador por uma porta USB de debug (para isso utilize o conector USB inferior), ou deverá acessar a placa usando SSH, via rede.

No console Linux da placa, vamos precisar configurar um repositório de pacotes adicionais. Este repositório não é suportado pela Intel (então deverá usá-lo por sua conta e risco).

Para adicionar o repositório, edite o arquivo base-feeds.conf em /etc/opkg/ (por exemplo #vi /etc/opkg/base-feeds.conf). E insira as seguintes linhas:

Depois disso, atualize sua lista de pacotes com o seguinte comando: 

Agora vamos instalar todos os pacotes necessários para ter tudo instalado e funcionando, com o comando:

Step 3: Configurando o adaptador de áudio

sintetizador Intel Edison e Csound: adaptador de áudio
Figura 2 – Configurando o adaptador de áudio

Para conectar o controlador MIDI à porta USB host da placa de Edison (conector tipo A), eu usei um hub USB alimentado externamente, para fornecer energia suficiente para o controlador. Para usar esta porta USB na placa, você precisa mudar o a chavinha (SW1) para cima (para o conector USB Tipo A), como mostra na imagem acima. Normalmente, essa chave está na direção oposta, permitindo a alimentação da placa e o carregamento de Sketches Arduino.

Verifique se sua placa de som e controlador MIDI foram reconhecidos:

A ferramenta amidi irá exibir mais informações sobre o seu controlador MIDI. 

Para verificar todos os seus dispositivos de áudio reconhecidos por alsa, digite:

Para definir o dispositivo alsa padrão para sua placa de som, verifique primeiro o número do cartão de HW:

No meu caso, o padrão é 2.

Crie um arquivo chamado .asoundrc em sua pasta pessoal (/home/root) com o seguinte conteúdo (substitua X com o seu ID de hardware):

Neste ponto, você vai precisar recarregar a configuração alsa para alterar o adaptador de áudio padrão. Para fazer isso você pode simplesmente fazer logoff e fazer login novamente ou executar o comando:

Para ajustar o volume de saída, use o alsamixer.

Se tudo estiver bem, alsamixer abrirá mostrando a barra de volume para sua placa de som. Para testar a saída de som, use a ferramenta de teste de alto-falante chamada speaker-test tool (você deve ouvir um som de onda senoidal na saída estéreo):

Para terminar o teste, pressione CTRL + C. 

Passo 4: Faça o Download, Compile e Instale o CSound

As instruções para baixar, compilar e instalar csound podem ser encontradas neste link.

Siga a segunda lista de passos (1 a 10) a partir da seção “Building Csound 6“. Uma coisa importante é que no Passo 7, adicione o parametro -DALSA_HEADER=/usr/include ou o módulo alsa não vai compilar. Portanto, sua linha de comando cmake deve ser como:

Nas etapas 9 e 10, o comando sudo não é necessário (você já deve estar logado como root, certo?). Por padrão, libs serão copiadas para /usr/local/lib. Você pode acrescentar isso ao caminho ou simplesmente copiar as libs à pasta /usr/lib com o comando:

Passso 5: Configure o Csound

Execute os samples GetDeviceList.csd disponíveis neste link, para obter o ID de hardware de sua placa de som Audion (que por acaso deve ser o mesmo ID que usamos antes, mas agora serão informados por Csound):

Você verá algumas linhas e, finalmente, algo como isto:

Na minha placa, o ID de hardware é 2.

Faça o download do código do Sintetizador MIDI Csound disponível para sua placa no seguinte endereço:

Edite a configuração (seção <CsOptions> no início do arquivo) para algo como:

A parte importante aqui é a -odac: hw: X, onde X é sua ID de hardware da placa de som (no meu caso, -odac: hw: 2).

Este Sintetizador foi escrito por Victor Lazzarini e publicado na lista de emails Csound. Victor me autorizou a redistribuir o código, e eu gostaria de agradecê-lo pelo código e também por ajudar outras pessoas em fóruns. Suas respostas e explicações sobre várias configuraçoes e programação foram fundamentais para me ajudar a colocar todas as peças juntas. Muito obrigado, Victor!

DICA: Salve a configuração anterior em algum arquivo em sua placa, porque você vai precisar dele para executar vários outros programas Csound que estão disponíveis na web.

Passo 6: Curta o seu sintetizador

Finalmente, para executar o seu programa Csound, simplesmente digite:

Aproveite o seu sintetizador!

Referências

Intel Developer Zone – IoT

Alsa Project

Csound Project

Csound Community

Csound Repository

Csound Documentation

Originalmente publicado no Instructables em inglês neste link e traduzido por Thiago Lima com autorização do autor Jomar Silva.

Outros artigos da série

Projeto de um Sintetizador MIDI SoundFont com a placa Intel Edison e Fluidsynth >>
Website | Veja + conteúdo

Engenheiro Eletrônico, pós graduado em Gerenciamento de Projetos e Desenvolvimento de Sistemas. Especialista em Padrões Abertos e Software Livre. Developer Evangelist de IoT e Open Source na divisão de Software da Intel no Brasil.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Comentários:
Notificações
Notificar
guest
0 Comentários
Inline Feedbacks
View all comments
Talvez você goste:

Séries



Outros da Série

Menu