Roland Juno Di Editor – V2 (Implementação)

Para a implementação do projeto eu fiz um teste com a biblioteca Juce, que já tem muita coisa implementada. Mas essa muita coisa, é muita coisa mesmo, agora ficou muito fácil.

Eu utilizei o Visual Studio Express para compilar a Juce Demo.

Baixe aqui para testar. Veja que já tem o básico pra tudo !

Estou impressionado como parece estar fácil demais.

Atualização 1: Codificar a comunicação do programa via midi realmente foi fácil. Mas fazer a interface ter uma cara apresentação é que pegou ! Por ora vai ficar bem feia mesmo, só o rascunho do que deverá ser, assim que eu pegar o jeito com skins no juce eu atualizo a interface. Mas para implementação de skins e geração de delas, alguns desevolvedores de Vst me indicaram: Knobman, Skinman e a VstGui.

VSTs gratuitos

Como postado anteriormente acho que o melhor canal para pesquisar os gratuitos está no cifraclub.

Mas pesquisando alguma coisa sobre a programação deles, eu acabei encontrando muita coisa e vou colocar por aqui, até para indexar os links para que eu possa pesquisar futuramente:

Tópico de um fórum internacional

– Não sei o que o cara quer dizer com delay bizarro, mas depois eu vou conferir aqui.

Aqui também tem bastante. [ http://www.vstplanet.com/Effects/Effects.htm ]

– Mais por aqui. [ http://www.pluginboutique.com/free ]

Aqui a competição de desenvolvimento com vários, e ainda é possível entrar na página de cada desenvolvedor. [ http://www.kvraudio.com/kvr-developer-challenge/2012/ ]

 

Ou seja, para se tornar um “acumulador” nesta área é pulo !

Roland Juno Di Editor – V2 (Interface Gráfica)

Para a interface gráfica da aplicação windows, eu vou utilizar alguns componentes já prontos.

Se o projeto continuar e eu não me cansar dele, eu penso eu comprar esse pacote para desenvolvimento do layout, o cara manda muito bem.

No momento eu vou utilizar UI mais simples para ver tudo funcionando logo !

Roland JUNO Di Editor – V2 (Introdução)

Vou começar por reunir as informações a respeito de uma ideia que surgiu e estou tocando em frente.

O JUNO Di apesar de ser classificado como teclado/sintetizador, possui poucos botões no console para alteração dos parâmetros de sintetização.

Estudando um pouco a arquitetura do editor que acompanha o teclado eu imaginei fazer um controlador externo, físico e não somente software, com alguns botões de controle para alteração de parâmetros em tempo real (o que só acontece com o editor aberto e o Juno Di conectado).

Como fazer isso ? O editor do Juno Di se comunica com o hardware através de mensagens midi. Essa informação está no manual do editor, e lá também fala da possibilidade de enviar essas mensagens, para alteração de parâmetros em tempo real, através de controladores externos ou softwares.

Resumidamente os passos que tenho em mente para chegar no controlador externo são:

  1. Entender como funciona essa comunicação através de mensagens midi.
  2. Enviar mensagens midi como testes.
  3. Criar um aplicativo windows para fazer o trabalho virtual do hardware, para testes e uma possível App IOs para rodar no Ipad.
  4. Criação do hardware controlador.

Dentro desses objetivos eu concluí até o momento:

  1. Entender como funciona essa comunicação através de mensagens midi.
    Essa parte foi relativamente fácil, pois no manual do editor já vem falando sobre o assunto, inclusive com um exemplo (p.24). O único problema é o cálculo hexadecimal, o chamado checksum, que é preciso fazer em toda mensagem que será enviada (depois eu vou detalhar que na verdade há mais de um tipo de mensagem e que o cálculo só é efeito para mensagens exclusivas, as chamadas “Sysex”).
  2. Enviar mensagens midi como testes.
    Depois eu fui em busca de algum aplicativo windows que enviasse mensagens midi para fazer os teste de comunicação software/hardware do teclado. Encontrei o Midi-Ox; o ícone dessa aplicação é um canivete suiço, e é exatamente isso que ele é: um faz tudo midi. Dentro do Midi-Ox há uma parte para enviar mensagens midi personalizadas. Enviei as mensagens e funcionou perfeitamente. Eu consigo controlar todos os parâmetros do hardware, por exemplo: eu consigo alterar a forma de onda do LFO, Chorus, Reverb, ligo ou desligo o arpejador – altero seus parâmetros… faço o que eu quiser… isso é muito legal !
  3. Criar um aplicativo windows para fazer o trabalho virtual do hardware, para testes e uma possível App IOs para rodar no Ipad.
    Desenvolver o aplicativo é bastante simples, pois é só pegar alguma biblioteca de comunicação midi e enviar as mensagens. Eu estou pesquisando um pouco mais pois fiquei curioso pra saber como os desenvolvedores de Vst atuam (apesar do meu aplicativo não ser um Vst).
    Descobri que eles:
    – A maioria desenvolve em C++
    – Utilizam o photoshop para criação do layout (botões, sliders etc)
    – Para implementação da interface gráfica fazem uso de alguma biblioteca já consagrada: Juce / wxWidgets / VtsGui / GDI+ / Outras… / +Outras

Agora eu estou na elaboração da interface (photoshop), assim que eu tiver mais notícias do projeto eu posto por aqui.

Se alguém tiver alguma sugestão pode ficar a vontade para compartilhar por aqui.

PS: Na pesquisa das bibliotecas eu descobri que a Steinberg disponibiliza para desenvolvedores independentes um sdk para desenvolvimento de plugins para suas ferramentas, mas isso fica para o futuro !

PS2: O Walter Cruz publicou em seu blog uma competição de desenvolvimento de Vst’s e foi de lá que surgiu a ideia de começar a pesquisar as bibliotecas que eles utilizam ! Eu encontrei muitas coisa já pronta, até mesmo filtros, reverbes etc, tudo já implementado – é só usar.

Key Cusioso

Você também está  tentando aprender teclado/piano sozinho ? Muito prazer, eu também !

Eu criei o blog para reunir as informações que estou conseguindo pesquisando e com algumas ajudas.

Como já tenho um material eu quero compartilhar com quem também está começando.

Só tem um porém, o objetivo aqui não é tirar dúvidas, é troca de experiências – de iniciante para iniciante.

É possível que haja algum informação equivocada nos posts, use o conteúdo do blog como referência, não como verdade absoluta.

Abraços e bons estudos.