MUMT-307 Report (Fall 2017)

Using FFT analysis and resynthesis to create infinite sustained sounds and spectral reverb.

Introduction

One of my research interests is the modification of the sound characteristics of the classical guitar. This instrument features rich timbre but its notes have short sustain.

The use of Fast Fourier Transform (FFT) to analyze the sound of the instrument can allow the synthesis of sounds that have a similar pitch to that of the classic guitar, but which can be synthesized indefinitely.

A quick summary of objectives

In summary, the objectives of this final project are:

  • The analysis of classical guitar sound in real time;
  • Manipulation or processing performed in the frequency domain in order to generate either a sound of infinite sustain and a spectral delay;
  • Sound resynthesis using the inverse FFT process (IFFT).

The project design

Although my research points to the possibility of achieving the goals of this project using either granular synthesis or delay lines (in a complex and possibly unstable configuration), the frequency domain sound manipulation allows me to further expand the functionality of the programmed patch, including pitch Control and time stretching.

Main patch window.

For this project I opted for programming in Pure Data because this language allows me to execute the programmed patch on computers running operating systems based on Linux. This feature will allow me to use the patch on embedded systems based on Raspberry Pi, for example.

The patch contains 2 operation modes: a continuous analysis and resynthesis mode (spectral delay) and a manual triggering mode (freeze). The spectral delay mode will analyze blocks in a given time interval that can be set by the user and the output will respond according to the real time input intensity after N samples (spectral delay). The freeze mode will synthesize a continuous sound from the blocks acquired immediately after the user activates the function, i.e. push the freeze button.

The programming includes several concepts learned during the course MUMT-307 (Music \& Audio Computing II): Signal Analysis using STFT and resynthesis using IFFT, digital delay lines, feedback (in filters and frequency domain processing), windowing, FFT “hop” and “Phase”, overlapping, convolution, etc.

Particular issues that proved challenging / rewarding

Programming in Pure Data presents some extra challenges in relation to Max/MSP: The lack of objects in Pure Data makes it necessary to use multiple objects to perform functions that are easily solved with only one object in Max/MSP. An interesting example is the counter object. The Vanilla version of the PD does not have any counter object, being necessary to the use of the metro object and the creation of accumulators using mathematical operators with storage objects.

Subpatch acting as a mixing desk (depth control).

This problem can be solved by using the PD-Extended version or by using other distributions such as Pd-L2Ork (Purr Data). The use of PD-Extended is not the ideal solution since it is abandoned. Pd-L2Ork is the best option to use external and libraries that leave PD functionality similar to Max/MSP.

One last important comment about choosing which version of PD to use is the issue of compatibility: PD-Vanilla is still a good software choice if the intention is to make the programmed patch available in all operating systems and devices, including mobile phones.

All the references provided great information to build the patch. Some examples of different approaches for spectral freeze and spectral delay were found among Pure Data and Max/MSP community. Some of these patches provided good ideas and were implemented in the resulting patch, including visual feedback and “speed control” (Ralf’s Freeze3.pd) and practical tips for implementing procedures (Jean-francois Charles paper and patches in Max/MSP).

Unfortunately most implementations found in both the PD and Max/MSP communities have conceptual errors or present very simple implementations that do not provide sound quality or different configuration possibilities.

Even using the different procedures studied during the discipline, the resulting sound quality can vary drastically according to the sound source used and the signal-to-noise ratio. The patch proved itself moderately robust for sounds with concentrated energy in the medium-high regions of the spectra, such as trumpet’s high register or a whistle.

A mixing object has been programmed to control the relationship between the original sound and its synthesized version (depth control). This patch can be checked in the above figure (mixer).

For the low region of the spectrum (more present in classical guitar spectra) the noise level in the synthesized sound is considerably higher and greater attenuation of the more energetic frequency peaks is required. This attenuation is provided in the form of a noise filter control, which provides destructive interference to the signal to eliminate excess noise.

Example usage / demo

Both the Pure Data patch and a PDF version of this document can be found in the above links.

References

Appendix: FFT subpatch

 

Participação no congresso da AES-Brasil 2015

Tive o imenso prazer de ter um conference full paper aprovado no 13º Congresso de Engenharia de Áudio – AES-Brasil, que ocorreu entre 26 e 28 de maio de 2015. Este congresso foi parte da 19ª Convenção Nacional da AES-Brasil no Pavilhão Amarelo da Expo Center Norte (São Paulo/SP).

O título do paper é Projeto e Construção de uma Interface Gestual para Improvisação Livre  e tem como co-autores o Prof. Marcelo Wanderley e o Prof. José (Tuti) Fornari.

Segue o resumo do trabalho:

A utilização de interfaces gestuais na performance de música eletroacústica mista é uma importante frente de desenvolvimento da música contemporânea. A interação entre algoritmos e intérpretes tem auxiliado uma significativa quantidade de artistas a explorarem e a transcenderem algumas fronteiras da performance musical; bem como tem promovido a interação distribuída e a cooperação remota de intérpretes em redes sociais de performances multimodais. Este trabalho apresenta um estudo neste tópico onde sessões de improvisação livre foram realizadas utilizando interfaces gestuais controlando algoritmos criados em software de código livre. A construção do dispositivo, assim como as implicações práticas da utilização de um instrumento aumentado (IA) específico em sessões de improvisação livre são aqui apresentadas, descritas e discutidas.

 

Este trabalho foi apresentado por mim durante a Paper Session #02 do congresso e tanto os anais do congresso quanto o conference paper podem ser acessados livremente através dos links fornecidos.

 

Workshop para os alunos do Programa Guri

Música, tecnologia e criatividade

Em diversos polos do Programa Guri encontramos alunos com excelente aproveitamento nos cursos de instrumento/canto mas que possuem pouca ou nenhuma experiência em atividades criativas de improvisação, além de pouco (ou nenhum) contato com música contemporânea. Pensando nestes alunos propuz à equipe pedagógica do Programa a realização de 1 (um) workshop para prática de improvisação livre com suporte tecnológico onde os alunos puderam experimentar atividades criativas coletivas, além de realizar um primeiro contato com as possibilidades de criação e manipulação sonora com o auxílio de computadores.

No dia 22 de outubro de 2014 foi realizado o workshop intitulado Música, Tecnologia e Criatividade para os alunos do Programa Guri do polo Penha (São Paulo/SP). Esta atividade, conduzida por mim e pelo professor Bruno Hernandes, teve duas horas de duração e incluiu uma pequena apresentação sobre processos criativos e organização na improvisação, além da relação entre música e tecnologia nos séculos XX e XXI.

Neste encontro os alunos improvisaram enquanto os sons de seus instrumentos eram manipulados em tempo real utilizando o software Pure Data.

Muito se fala hoje em desenvolvimento criativo e sobre o papel da música no desenvolvimento humano e, para a grande maioria dos pensadores do ensino musical (incluindo Swanwick, Dalcroze, Gainza, Willems e Kodály, entre outros), a improvisação é parte fundamental do ensino musical. Em ambiente de ensino coletivo, as atividades de improvisação são deixadas em segundo plano, atrasando o aprendizado ou mesmo prejudicando a criação da relação de intimidade com o instrumento.

Diversos alunos relataram que viam a improvisação como algo inatingível, muito difícil ou destinado apenas a grandes mestres. É pensamento comum a todos os educadores citados anteriormente que a improvisação deve ser estimulada desde cedo nos alunos de música e, além do crescimento criativo, aumenta a intimidade do instrumentista com o instrumento (e seu corpo), estimula a audição crítica, incentiva a pró-atividade e, no caso de improvisações coletivas, incentiva o trabalho em equipe.

A inclusão digital também é tópico em pauta no Brasil e alvo de diversos programas governamentais. Relacionar o contato com o computador e de outras tecnologias com a criação musical insere sentido a esta inclusão, adicionando um resultado criativo à exploração destes dispositivos. Com a utilização do computador na performance musical expandimos as possibilidades criativas, gerando material sonoro que não poderia ser obtido de outra forma.

O retorno desta apresentação foi extremamente positivo conforme podemos observar na avaliação da atividade, realizada em forma de questionário pelos próprios alunos e compilada neste documento.

Minha participação no 1° Colóquio Franco-Brasileiro de Análise e Criação Musicais com Suporte Computacional

Entre os dias 18 e 28 de agosto de 2014 tive a feliz oportunidade de participar do 1° Colóquio Franco-Brasileiro de Análise e Criação Musicais com Suporte Computacional, realizado pelo Núcleo Interdisciplinar de Comunicação Sonora (NICS, núcleo de pesquisa que sou participante) e em parceria com a Faculdade de Engenharia Elétrica e Computação (FEEC) da Unicamp, o Instituto de Artes da Unicamp (IA), o Centro de Integração, Documentação e Difusão Cultural (CIDDIC), USP e UNESP. O Colóquio contou também com o apoio da FAPESP.

Este foi um evento especial por dois motivos: a transmissão integral das atividades online em tempo real e a participação de três integrantes do RepMus.

A Équipe de Représentations Musicales (RepMus) é um núcleo de pesquisa mantido pelo IRCAM cujo tema é a representação de estruturas musicais, linguagens e paradigmas computacionais aplicados à música. Contamos durante o Colóquio com a presença dos pesquisadores Gérard Assayag, Moreno Andreatta e Jean Bresson.

Mesa redonda – 20/08/2014

Além dos pesquisadores citados também participarão diversos pesquisadores importantes da área de música e tecnologia: Jônatas Manzolli, Stéphan Schaub, Silvio Ferraz, Fernando Iazzetta, Flo Menezes e Tuti Fornari.

Os temas abordados foram os processos avançados aplicados à análise e criação musicais a interação musical em tempo real e formalização de estruturas musicais.

Talvez o mais interessante deste Colóquio foi ênfase no aspecto prático. Diferentemente do vários congressos e simpósios na área de música, este Colóquio destinou os dois dias finais para a elaboração de atividades práticas que culminaram em um concerto realizado no Almanaque Café no dia 28 de agosto entitulado “Livre Digital: Fronteiras Musicais Tecnologias que desafi(n)am os sentidos”.

Durante esta etapa alguns pesquisadores brasileiros tiveram a oportunidade de apresentar seus projetos em andamento para os convidados do RepMus  Este foi, para mim, o ponto alto do evento pois a troca de informações ao apresentar meu projeto contribuiu de forma inestimável para meu crescimento como pesquisador, além de fornecer importantíssimas informações para o andamento da pesquisa. Nesta etapa também houveram atividades práticas de experimentação de hardware e software criados pelos pesquisadores, o que intensificou o convívio dos participantes.

Existe grande crítica à prática acadêmica de música pelo foco conceitual e teórico e pelo consequente afastamento à prática musical. Este tipo de iniciativa reaproxima teoria (ou teorização) e prática, além de trazer algo palpável ao participante do evento.

Tocando com os pesquisadores – Improvisação coletiva
Tocando com os pesquisadores – Improvisação coletiva
(@Davi Moraes)
Tocando com os pesquisadores – Improvisação coletiva

 

Que venham mais eventos como esse!

Escolha dos componentes para a construção de HMI voltado para performance musical

Nesta postagem falarei sobre a escolha dos componentes para a construção do primeiro protótipo de dispositivo de interface humano-máquina (human machine interface, ou HMI) do meu mestrado.

HMIs são equipamentos eletrônicos responsáveis pela coleta, envio e recebimento de dados e comandos entre o usuário e o computador. Eles podem ter aplicação específica, como é o caso do HMI que construí, que possui a função de transmitir (e enviar) informação do músico para o computador durante uma performance musical.

Para o processamento e comunicação entre os sensores e o computador optei pela utilização do Arduino. O Arduino é uma plataforma de prototipagem eletrônica de hardware aberto, ou seja, um conjunto de equipamentos e componentes intercambiáveis que podem ser utilizados para montar dispositivos eletrônicos para quaisquer necessidades, incluindo o controle de manipulações sonoras em tempo real. Uma grande dificuldade enfrentada na criação de quaisquer dispositivos eletrônicos é a programação do microcontrolador para a realização de determinada tarefa. Tendo a plataforma Arduino um hardware microcontrolador de fácil programação como elemento central e que esta programação pode ser gravada diretamente através de conexão USB presente na própria placa, este processo é simplificado (ARDUINO, homepage. Getting Started with Arduino. Disponível aqui).

Por se tratar de uma plataforma de hardware de código aberto (open-source) podemos encontrar placas e componentes compatíveis com o Arduino e sua programação. Além disso, o ambiente de programação do Arduino é baseado em Wiring e C++, linguagens de programação amplamente difundidas e bem documentadas.

Uma das premissas do meu projeto é manter o HMI o mais simples e o mais barato possível. O Arduino é considerado um microcontrolador de baixo custo, porém mesmo assim temos opções mais econômicas: os clones do Arduino. Optei pelo Freaduino Leonardo R3, um clone do Arduino Leonardo R3 que me oferece as mesmas características do original.

Freaduino Leonardo R3

O modelo Leonardo possui processador ATmega32u4 e tem 20 entradas/saídas digitais, conexão microUSB, botão reset e a possibilidade de emular teclado e mouse.

Como a proposta inicial é controlar quaisquer manipulações durante a performance com o violão e o HMI, optei por utilizar um LCD (JHD162a) de 80 caracteres, além de resistores e cabos para conexão dos sensores.

JHD162a

Os sensores e componentes escolhidos para interação com o músico e o instrumento são:

  • 1 sensor de distância ultra-sônico HC-SR04
  • 1 acelerômetro ADXL345 de 3 eixos
  • 5 interruptores momentâneos modelo SPST (interruptores de uma via de acionamento ativo)

O sensor ultra-sônico será disposto junto ao instrumento para captar gestos voluntários realizados com a mão direita do violonista. Estes sensores captam informação de distância e poderão ser programados para controlar intensidade ou presença/ausência de determinada manipulação sonora.

HC-SR04

O acelerômetro escolhido permite várias funções. Ele será disposto junto ao instrumento e possibilita a leitura de movimentação do violão em 3 eixos (X, Y e Z), além de possuir as funções TAP (detecta uma “pancadinha” ou um toque leve no sensor ou no violão, como um apertar de botão), DOUBLE TAP (similar ao TAP, porém funciona como os “2 cliques” de um mouse) e FREEFALL (detecta “queda livre” do objeto).

ADXL345

O acelerômetro permite leitura de diversas funções de forma independente, proporcionando mapeamentos gestuais complexos e possibilitando a manipulação de diversos eventos sonoros simultaneamente. Mais interessante é poder captar gestos involuntários e secundários do instrumentista.

O resultado desta primeira montagem segue:

Em postagem futura abordarei como viabilizar a comunicação entre o HMI e o Pure Data.