collapse

* Posts Recentes

LASER M140 por dropes
[Ontem às 22:25]


Craftsmanship em pianos e em tudo o resto... por blabla
[15 de Maio de 2022, 17:20]


Um artigo interessante - Building a startup with Rust por blabla
[13 de Maio de 2022, 10:55]


Um ritual de passagem - Fazer um interpretador de LISP por blabla
[13 de Maio de 2022, 09:51]


Cabo espiral por josecarlos
[08 de Maio de 2022, 19:23]


Can Life Really Be Explained By Physics? por blabla
[07 de Maio de 2022, 13:41]


100 Computer Science Concepts Explained por blabla
[04 de Maio de 2022, 21:34]


Um pouco de low level em Windows e Linux :-) por blabla
[03 de Maio de 2022, 19:52]


How Electricity Actually Works - Veritasium por blabla
[29 de Abril de 2022, 23:49]


Generating true random numbers from bananas por blabla
[29 de Abril de 2022, 10:27]

Autor Tópico: Espectro de um nota de guitarra, que nos ensinam muito sobre física, áudio e DSP  (Lida 166 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline blabla

  • Mini Robot
  • *
  • Mensagens: 207
Boa tarde a todos,

Hoje trago-vos algo que achei muito interessante,
a pergunta é:

Se eu tocar na minha guitarra um C (Dó), e se fizer no Audacity o gráfico do espectro através da FFT, porquê razão a 3 º harmónica é a que tem maior amplitude e não a 1º harmónica ou fundamental na frequência da minha nota C (Dó)?

A pergunta é simples de perceber, especialmente pelo facto de que vêm com um gráfico.

Contudo nas respostas é que está o verdadeiro sumo da coisa, ou seja é nas respostas que se percebe todas as nuances que podem estar a afetar este sistema de forma a que o gráfico / plot final da frequência vs amplitude tenha aquele comportamento.

Vejam que vale mesmo a pena ver esta discussão. Pelo meio ela inclusivamente chega a ser cômica, mas é uma discussão genial com a qual se aprende muito.

Why is the 5th stronger than the 1st in guitar spectrum?
https://music.stackexchange.com/questions/101677/why-is-the-5th-stronger-than-the-1st-in-guitar-spectrum

Só para contextualizar, eu cheguei até esta página ou pergunta no stackexchange depois de umas pesquisas no contexto do espetro de uma nota numa guitarra. Nomeadamente, se existiria uma forma melhor de conseguir fazer um detetor polifónico de acorde de notas de guitarra ex: clássica ou de cordas de Nylon. Com base na análise do espetro de uma FFT do sinal.

No passado, eu já dediquei algum tempo a este problema e já implementei um pequeno projeto que fazia isto mas com base num algoritmo relativamente simples que é o Harmonic Product Spectrum:

Polyphonic note detector using Harmonic Product Spectrum
https://github.com/joaocarvalhoopen/Polyphonic_note_detector_using_Harmonic_Product_Spectrum

Na realidade eu estava a conjeturar a hipótese de fazer uma implementação em tempo real deste algoritmo em Rust ou C / C++ em que iria buscar os dados diretamente à placa de som, processa-se buffers de FFT mais pequenos em tempo real, um pequeno servidor de sockets UDP e que envia-se sinais de note_C4_on, note_C4_off, tal como o protocolo MIDI para outras aplicações, e com isso quem sabe para eu ou outras pessoas fazerem um jogo para guitarra que contribui-se para que uma pessoa pratica-se mais guitarra, pelo menos para principiantes. Já fiz uma coisa similar para flauta e para harmónica no passado.

Contudo e neste caso queria ver se conseguia melhorar o algoritmo e foi nesse contexto que cheguei a esta pérola que partilhei aqui convosco.

Obrigado,

Cumprimentos,
João