Programação de pedais digitais

Autor Mensagem
Bog
Veterano
# jun/14
· votar


Ismah

Não tenho tempo para ir a fundo em explicações como o pedrolake, mas qual a sua experiência com programação de computadores? Pergunto porque programar uma pedaleira com DSP é basicamente isso: programação de computadores. Não é algo trivial, do tipo "montagem de Lego", e se você quiser entender como os algoritmos funcionam de fato, começar tentando entender direto um código completo em linguagem de montador (como o postado acima) talvez não seja o melhor caminho, até porque isso exige um pouco de conhecimento sobre a arquitetura de um processador.

Ah, e uma observação:

Afinal temos um DSP (mesmo que emulado), não?

Na verdade, não. Em VSTs, o DSP não é "simulado" ou algo do tipo. DSP é simplesmente um tipo de processador. Tem algumas características diferentes do processador do seu PC, mas é essencialmente a mesma coisa. O que quer dizer que num VST o processador do seu PC realiza as mesmas tarefas que seriam feitas pelo DSP. Mas o código não pode ser portado diretamente, porque existem diferenças de plataforma (por exemplo, o VST roda sobre um sistema operacional, enquanto o DSP normalmente é programado diretamente, além das instruções não serem exatamente as mesmas).

Ismah
Veterano
# jun/14
· votar


Bog

São básicas (literalmente estou limitado ao Basic, e claro o HTML - que nem todos consideram linguagem de programação), mas me interessa entender isso.

É um começo, eu encontrar um código e entender o que cada parte faz. Depois precisarei me aprofundar.

nichendrix
Veterano
# jun/14 · Editado por: nichendrix
· votar


Bog

Rapaz, to atrás de ti tem uns dias já, olha teu inbox.

Ismah
Cara, no coursera tem vários cursos de programação ministrado por boas universidades, se você é iniciante, tente o Programming For Everybody, ministrado pelo Charles Severance, que é um professor bem conhecido da University of Michigan:

https://www.coursera.org/course/pythonlearn

Depois que você fizer esse, dá para pegar algum curso voltado a outras coisas, como um curso voltado para jogos que trabalham relativamente bem a parte de interfaces e algumas coisas de processamento de imagens.

Depois você pode procurar alguns cursos que tem lá que são de processamento de imagem e processamento de som. Alguns dos cursos oferecidos que envolvem a parte de processamento de som e engenharia de som e um de acústica.

https://www.coursera.org/course/digitalsounddesign
https://www.coursera.org/course/musictech
https://www.coursera.org/course/audiomusicengpart1
https://www.coursera.org/course/compartsaudio
https://www.coursera.org/course/acoustics1

Enfim, para aprender essas coisas hoje em dia é bem mais fácil do que no tempo que eu aprendi a programar, hoje você tem curso e livro do mundo inteiro em sites como o Coursera ou o MIT Open Courseware ou o Stanford Open Courses. Só para citar iniciativas de 2 das 5 melhores universidades do mundo (O Coursera, apesar de oferecer cursos de universidades do mundo inteiro, foi criado e é administrado pela Stanford University);

Ismah
Veterano
# jun/14
· votar


Na primeira parte eu defino as características do efeito (input, ouput), e controles/configurações da mesma.

ponteiros de registradores

O comando reg, indica registro (register), logo posso entender que ele se equivale a resistores fixos (como reg1, reg5 e reg6) e váriáveis (reg2 e reg7) - ou conjuntos dos mesmos (como filtros RC, etc), em analogia a um analógico. Certo?

No comando sin0, eu tenho o efeito fast, e no sin1, slow (1/4 do anterior). Específicamente o que cada valor regula?

Ismah
Veterano
# jun/14
· votar


nichendrix

Não encontrei se esses cursos são pagos ou não. O capital é minha maior limitação hoje.

nichendrix
Veterano
# jun/14 · Editado por: nichendrix
· votar


Ismah
No comando sin0, eu tenho o efeito fast, e no sin1, slow (1/4 do anterior). Específicamente o que cada valor regula?

Essas são as instruções para gerar a senoide pode ver que todo o resto do código é realizado operações com essas duas senoides.

Não encontrei se esses cursos são pagos ou não. O capital é minha maior limitação hoje.

Todos os cursos do Coursera são gratuitos. Tem milhares de cursos lá nas áreas que você se interessa (Matemática, Física e Ciência da Computação).

Alguns cursos tem a opção de signature track que é paga, nesse caso além do certificado do Coursera, você ganha o certificado emitido pela universidade como tendo cursado aquela matéria por EAD. Outra opção paga é o specialization, onde tu paga um valor e faz o signature track de vários cursos dentro de uma determinada área (como o de Data Science da Johns Hopkins) a diferença é que tu pode, durante dois anos fazer e refazer os cursos quantas vezes quiser, sem precisar pagar o signature track toda vez.

Tanto signature track e specialization são opcionais, nenhum é oferecido exclusivamente na modalidade paga.

No caso do Stanford Open Courses e do MIT Open Couseware ou do OpenMichigan da University of Michigan, também são todos gratuitos.

Ismah
Veterano
# jun/14
· votar


nichendrix

Verdade. Encontrei na aba "About" essa resposta. Esse certificado é via correio?

Realmente chego a uma conclusão decepcionante: o problema do país é o povo. (Mas esse assunto, precisa de uma cerveja - portanto se seguir vai pro nichendrix's bar)
--------------------
No caso, essas senoides são meu LFO virtual?

nichendrix
Veterano
# jun/14 · Editado por: nichendrix
· votar


Ismah
No caso, essas senoides são meu LFO virtual?

Não cheguei a olhar o código com calma, e na verdade nem é o tipo de código que estou acostumado a lidar, mas se não forem elas são usadas para gerar a LFO, já que tem algumas operações aplicando delay time a elas ali pelo meio.

Ismah
Veterano
# jun/14
· votar


mas se não forem elas são usadas para gerar a LFO

Não elas não são, mas são elas que geram meu LFO (faltou o "geram" lá em cima).


Do carvalho esses cursos já encontrei dois que me increvi (mas na área de áudio e não programação).

nichendrix
Veterano
# jun/14 · Editado por: nichendrix
· votar


Ismah

Bom, os cursos de Python ajudam muito, tipo, tem uma comunidade grande de DSP e também para criação de VSTs em Python, pra mim não rola nem tempo de olhar pra essas coisas, tenho que terminar um simulador até a primeira semana de julho, e terminar a parte burocrática do fim do mestrado até o final do mês (correções, entrega de manuscrito final, pegar o canudo, etc). Depois é me ocupar da mudança pra lá pra terra que a rainha é só duquesa, então mesmo que quisesse só dava tempo de pegar algo disso lá pro ano que vem.

De qualquer forma, ainda fica minha impressão que programa de DSP tem uma semelhança com programa de processamento de imagens, muitas das técnicas parecem seguir os mesmos princípios, mas ainda é um pulo grande pra eu começar a brincar com isso.

Enfim, hora de ir pro berço, que eu não guento mais ver o Eclipse na minha frente.

pedrolake
Veterano
# jun/14
· votar


A universidade de Stanford, e a universidade de White Horse Canadá, ministra cursos de programação em C, C++ , Java, pela internet pelo portal do moodle.

O Gerador de onda, pode funcionar indiferente do gerador do LFO, neste caso precisa-se conhecer um pouco da estrutura do processador.

Neste exemplo estou usando um DSPic, ele tem internamente um gerador de LFO independente do gerador de ondas senoidais.

amilanezi
Veterano
# jun/14
· votar


Legal o tópico!

Me lembrando das aulas práticas de microprocessadores no curso de engenharia...hehe

Mas a maioria desses comandos em assembly eu não conheço.

Isso é pra processadores baseados na arquitetura da família x86 eu imagino, é isso mesmo?

o/

pedrolake
Veterano
# jun/14
· votar


essa passou longe, não tem nada haver com processadores convencionais, estamos na área do DSP

Bog
Veterano
# jun/14
· votar


Ismah

Uma coisa que precisa ficar meio clara é que programação envolve 2 "monstros": a sintaxe e a lógica. Para quem começa, às vezes é difícil diferenciar as duas coisas, mas é como confundir literatura com gramática.

Me parece que você tem alguma experiência com eletrônica analógica. Infelizmente, você não vai encontrar paralelos diretos entre as duas coisas. Inclusive, já tive alunos de engenharia eletrônica que tinham uma dificuldade enorme de programar, exatamente porque ficavam tentado encaixar as coisas no molde dos circuitos que eles já entendiam. Por exemplo, eles achavam estranho ter que pegar o sinal e manipular cada valor individualmente.

E HTML definitivamente não é linguagem de programação. Se você encarar como tal, talvez até dificulte a compreensão de certas coisas - em particular, o fato de que algoritmos seguem sempre uma sequência, que por sinal é outra das coisas que o pessoal de eletrônica costumava achar estranho.

nichendrix
De qualquer imagem, ainda fica minha impressão que programa de DSP tem uma semelhança com programa de processamento de imagens, muitas das técnicas parecem seguir os mesmos princípios, mas ainda é um pulo grande pra eu começar a brincar com isso.

A semelhança existe sim, porque tanto processamento de áudio quanto processamento de imagens são "filhotes" do processamento de sinais.

Aliás, eu ando usando brincadeiras simples com processamento de áudio como trabalho para alunos calouros...

pedrolake
Veterano
# jun/14
· votar


Bog que tipo de processador você anda brincando, com os alunos...

Ando usando muito o TigerSHARC da AD

Bog
Veterano
# jun/14
· votar


pedrolake

Como são calouros em um curso de computação, usamos PC mesmo, com linguagem C e arquivos wav. A última vez que eu trabalhei com desenvolvimento para DSP de fato foi há mais de 10 anos (!).

pedrolake
Veterano
# jun/14
· votar


A plataforma java também melhorou sua manipulação no processamento de audio, mesmo que trabalho em uma camada mais longe que o C, C++

Alex guitar man
Veterano
# jun/14
· votar


Nossa gente.. que complicado.. não mais fácil deixar softwares pra la e usar os diodos e leds pra distorcer?


Galera, como funiona o hardware disso?

Guitarra > conversor A/d >>DSP(aqui o sinal é trabalhado) >Conversor D/A>out

O DSP busca a informação em um outro CI, um de memoria? e quem controla o display e etc é proprio DSP?

pedrolake
Veterano
# jun/14 · Editado por: pedrolake
· votar


Alex, não o dsp, não controla displays, usbs, e etc. Ele somente realiza funções matemáticas sobre a amostra.

Para ter displays, chaves e USB, é necessário um microprocessador ou microcontrolador, para fazer a interface entre o DSP e controles externos.

O DSP (claro que depende da arquitetura do processador), pode ou não se conectar a uma memoria externa, mas no caso somente memorias ROM, PROMS, DROM e SROM. Mas geralmente quem controla o acesso a essas memorias são micro processadores, mico controladores que funcionam como uma CPU.

O hardware, varia de acordo com as necessidades e complexidades do sistema, não daria para definir um hardware minimo para o funcionamento, isso depende da arquitetura do chip. Alguns funcionam sozinho, pois já possuem os conversores embutidos, outros precisam de estágio de correção linearização e pré- amplificação antes do conversor. Além disso existe o controle de clock, codecs, PLL e etc. E uma infinidade de outros pontos a serem controlados e gerenciados para garantir um ótimo funcionamento.

pedrolake
Veterano
# jun/14
· votar


Por exemplo segue o digrama de uma Boss GT-6


Block Diagram

nichendrix
Veterano
# jun/14
· votar


Bog
A semelhança existe sim, porque tanto processamento de áudio quanto processamento de imagens são "filhotes" do processamento de sinais.

Aliás, eu ando usando brincadeiras simples com processamento de áudio como trabalho para alunos calouros...


Eu já imaginava isso pelas características comuns que vejo nesse tipo de programa.

Esse semestre eu dava monitoria de algumas matérias aqui na USP, numa delas eu peguei uns alunos com dificuldade em alguns tipos de análise de dados e coloquei pra fazer alguns programinhas usando processamento de imagens e geolocalização, assim eles tinham que aprender a tratar os dados antes do programa localizar o lugar e depois pegar um bitmap com o mapa da região e marcar os locais da base de dados, em outro programa eles tinham que fazer um programa para analisar os dados e com base nisso reconhecer a região no bitmap e mudar a cor de acordo com uma legenda preestabelecida para a distribuição geográfica dos dados.

Coisa bem simples, creio que até bem mais simples do que processamento de som.

Bog
Veterano
# jun/14
· votar


Alex guitar man
não mais fácil deixar softwares pra la e usar os diodos e leds pra distorcer?

Se for para propósitos específicos, talvez sim. O processamento digital tem algumas vantagens, como a consistência e a flexibilidade. Mas se o objetivo é só "fazer um fuzzinho simples", normalmente os circuitos analógicos são mais simples e diretos.

Tá, na verdade eu sei 0 de eletrônica analógica. Digo isso pelo que ouço o pessoal comentar. No meu mundo abstrato, tudo é software, os dados são fornecidos pelos gnomos mágicos que moram no hardware. =P

nichendrix

Não tem como ser mais simples do que a primeira funçãozinha que eu uso só para ilustrar o trabalho para os alunos: uma modificação no ganho de um sinal. É só percorrer um vetor multiplicando todas as posições por uma constante, hehe.

nichendrix
Veterano
# jun/14
· votar


Bog
Não tem como ser mais simples do que a primeira funçãozinha que eu uso só para ilustrar o trabalho para os alunos: uma modificação no ganho de um sinal. É só percorrer um vetor multiplicando todas as posições por uma constante, hehe.

O que não é muito diferente de uma funçãozinha multiplicando um vetor de mapa de bits e substituir todos os valores por uma constante... kkkkkkk

Ismah
Veterano
# jun/14
· votar


Bog
nichendrix

Essa briga vai longe...

Bog
Alex guitar man

Quanto a processamento analógico vs digital, no exemplo do Bog (Fuzz), temos alguns poréns...

Na analógica, até uma nuvem no céu altera parte dos circuitos, o que altera o timbre em alguma proporção. Imagina então, no caso de uma guitarra diferente.

Já na digital (e pode ser POD, GT100 e qualquer outra), não teremos variação, de acordo com fatores externos. Mas como contra, uma guitarra qualquer, soa igual a uma de marca (o que se altera é qualidade da afinação, e curva de frequência do resultado final, que sim torna os sons de ambas diferentes).

É um dos motivos que acho inútil usar uma pedaleira, numa amplificação valvulada. A "coloração" das válvulas não é bem vinda. Enquanto a linearidade de um SS/CI é muito bem vinda.

pedrolake
Alguns funcionam sozinho, pois já possuem os conversores embutidos, outros precisam de estágio de correção linearização e pré- amplificação antes do conversor.

Posso entender essa parte como o buffer comum aos Boss?

pedrolake
Veterano
# jun/14
· votar


Alguns funcionam sozinho, pois já possuem os conversores embutidos, outros precisam de estágio de correção linearização e pré- amplificação antes do conversor.

Não Ismah, são estágios de amplificação, correção de ganho, filtragem de possiveis ruídos como 60Hz, e buffers.

Lembre-se buffer não amplifica, não altera a voltagem pico-a-pico de uma onda, somente acrescentam um dreno de corrente, aumentando a sensibilidade do sinal e com isso diminuem as interferências sobre ele.

Mas como contra, uma guitarra qualquer, soa igual a uma de marca (o que se altera é qualidade da afinação, e curva de frequência do resultado final, que sim torna os sons de ambas diferentes).

Isso depende muito, em pedaleiras comerciais, o hardware é de media capacidade, e muitas vezes mau explorado, para não alongar o desenvolvimento. Por isso existem marcas como a Fractal Audio, que possuem hyper processadores que utilizam hardware de maior capacidade, com uma amostragem equivalente a 256bits, exploram o potencial dos códigos, utilizam componentes de qualidade audiófila, para que quando você ligar uma stato 1954 ela soe como uma strato de 54 e não igual a uma squier bullet atual. Por isso racks desses custa uma bagatela, para começar a brincar, de U$ 6000,00

Ismah
Veterano
# jun/14
· votar


pedrolake

E por isso, ainda a saída mais econômica (depende o quanto vc for exigente, também), na razão máxima qualidade/menor custo, são pedais analógicos...

pedrolake
Veterano
# jun/14
· votar


Olha Ismah, do jeito que as coisas vão não me surpreenderia de comprar um tube screamer, abir e está lá dentro um processador.

Ismah
Veterano
# jun/14
· votar


pedrolake

A ideia era plantar a treta...

Bog
Veterano
# jun/14
· votar


Ismah
Quanto a processamento analógico vs digital, no exemplo do Bog (Fuzz), temos alguns poréns...

Isso que você descreveu é exatamente a "consistência" à qual me referi. ;) Mas a parte das guitarras soarem todas iguais não é beeeeem assim.

Ismah
Veterano
# jun/14
· votar


Bog

Cara genericamente é assim. Humanamente é possível perceber que uma válvula reage bem diferente de sua simulação (e não entremos nos méritos da discussão).

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

Tópicos relacionados a Programação de pedais digitais