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 >>
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.

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

Séries



Outros da Série

Menu
Privacy Settings saved!
Configurações de Privacidade

Entenda quais dados e informações usamos para ter melhor entrega de conteúdo personalizado para você.

These cookies are necessary for the website to function and cannot be switched off in our systems.

Para usar este site, usamos os seguintes cookies tecnicamente exigidos

  • wordpress_test_cookie
  • wordpress_logged_in_
  • wordpress_sec

Decline all Services
Accept all Services