Quais são as categorias básicas de operações executadas em sinais de áudio para criar sons interessantes?

10

Não sei se essa pergunta fará sentido, pois sou muito novo no dsp.

Na minha incursão limitada no dsp de áudio, me deparei com:

  1. Modulação de frequência
  2. Modulação de amplitude
  3. Síntese Aditiva
  4. Síntese Subtrativa

Minha pergunta é: essas são as principais categorias fundamentais de manipulação de sinal (especificamente para áudio)?

Em outras palavras, todos os efeitos e coisas sofisticadas que o FL Studio com um conjunto completo de plug-ins pode fazer, podem ser divididos em uma série e na combinação das 4 operações acima? Ou há muito mais? Uma DAW moderna com plug-ins pode, teoricamente, ser dividida em qualquer categoria dessa maneira? As 4 categorias acima fazem sentido em si mesmas ?!

Um pouco de fundo: Essencialmente, estou tentando criar um sintetizador / editor de áudio muito básico (mas muito flexível) como um projeto para aprender programação e áudio dsp. Usando java, comecei imitando as classes básicas do sintetizador do mundo real, chamando coisas como Oscillator, LFO e similares, mas toda vez que aprendo algo novo, encontro-me tendo que reescrever tudo para ajustar o novo conceito ao programa.

Estou tentando começar de novo agora e criar os objetos e a estrutura básicos do programa. Para isso corretamente, preciso saber como devo permitir que esses objetos interajam, etc ...

Obrigado!

EDIT * * *

Obrigado pelos comentários e respostas úteis. Sei que provavelmente subestimei o lado dsp das coisas e não poderei apenas criar um modelo e estrutura básicos para um sintetizador simples e depois expandi-lo / construí-lo. Provavelmente terei que reconstruir repetidamente várias vezes enquanto aprendo coisas novas e a maneira "correta" de fazer as coisas ... Vai demorar mais, mas talvez eu aprenda mais? Lamento também não ter representantes suficientes para votar em alguém ainda ... assim que puder, terei.

EDIT * EDIT ***

Devo acrescentar que um pouco de pesquisa no Google revelou este guia básico para "tipos de síntese" que achei relevantes e interessantes.

kiman
fonte
Você quer o embasamento teórico das técnicas de síntese ou quer algo mais como este (isto é, métodos comuns usados ​​na prática)? dsp.stackexchange.com/questions/192/…
datageist
11
Se eu resumisse todas as possíveis manipulações sonoras no menor número possível de categorias, nomearia transformações lineares e não lineares. Mas esses são gerais e amplos demais para serem capazes de implementar.
Alexey Frunze
@ datageist - Acho que vou precisar de ambos! Mas esse é um link muito útil, obrigado.
Kiman 26/05
@ Alex Isso é muito geral, mas é um ponto de partida conceitual e pelo menos agora eu sei que estava meio que latindo na árvore errada.
Kiman 26/05/12
obtenha o livro de Will Pirkle, Projetando plug-ins de sintetizador de software em C ++: para RackAFX, VST3 e unidades de áudio. você estará criando um sintetizador e aprendendo ao longo do caminho, em vez de tentar descobrir tudo sozinho.
panthyon

Respostas:

9

A categoria AM / FM é um pouco estranha para efeitos - é verdade, você pode obter alguns efeitos interessantes modulando a amplitude de um sinal de entrada; mas o que significa "modulação de frequência" para um sinal de entrada complexo para o qual você nem tem uma representação de frequência precisa? Você poderia muito bem dizer que todo efeito é uma modulação de amplitude pelo sinal , mas isso não vai ajudá-lo a implementá-lo!out(t)in(t)

Não existe um mecanismo mágico de propósito único no centro de todos os efeitos de áudio fornecidos pelo software de produção musical. Mas se você olhar para o código-fonte de um grande conjunto de efeitos de áudio de um desenvolvedor de DSP, aqui estão alguns "blocos de construção" que serão fatorados em suas próprias classes e que são compartilhados por muitos efeitos diferentes. Não quero dizer que isso constitua uma boa base para categorizar efeitos; mas do ponto de vista da implementação, esses blocos são essenciais:

  • Filtros Biquad.
  • Linhas de atraso fracionárias.
  • Mecanismo de convolução, para rápida convolução de um sinal de entrada com respostas de impulso de tamanho arbitrário.
  • Waveshaper (aplicação de uma função não linear ao sinal de entrada no domínio do tempo).
  • Blocos de construção de sintetizadores: osciladores, LFOs, envelopes ADSR.
  • Detectores de sinais: seguidor de envelope, extrator f0.

Com esses blocos você pode criar:

  • Filtros sintéticos ou wah-wah: um ou dois biquads
  • Auto-wah: seguidor de envelope + envelope + biquíni
  • Flanger / Phaser: LFO + linha de atraso
  • Coro: LFO + linhas de atraso
  • Reverb algorítmico: linhas de atraso (conjunto de filtros combinados paralelos e seriais)
  • Reverb de convolução: convolução
  • Spatializer: convolução (com respostas de impulso de HRTFs)
  • Simulação de amplificador de guitarra: convolução, waveshappers
  • Distorção, Fuzz: gain + waveshapper
  • Bitcrusher (quantizer): um caso particular de wavehapper
  • Modulador de anel com transportador senoidal: oscilador
  • Noise Gate e outros efeitos dinâmicos: seguidor de envelope
  • Simulação de fita: convolução, modelador de ondas, seguidor de envelope (para o processamento dinâmico)
  • EQ: biquads
  • Tremolo: LFO
  • Emulação de Leslie: convolução + LFO
  • Vocoder: biquads + envelope seguidor

Embora alguns desses efeitos sejam apenas uma questão de corrigir os diferentes blocos (um flanger realmente é um LFO modulando uma linha de atraso), alguns outros efeitos precisam de cola mais complexa entre as partes, que é específica o suficiente para não ser fatorada em um bloco de construção. própria.

Este é, em geral, um conjunto interessante de efeitos que cobrirá muito terreno para a produção musical, mas não é exaustivo e existem alguns efeitos que não se encaixam nessa estrutura ... Alguns exemplos: * Redutor sujo da taxa de amostragem (em um triturador de bits): true, é uma multiplicação por um dirac comb e, em seguida, uma convolução por uma janela retangular ... mas é mais fácil escrevê-lo como algo que duplica o valor de uma amostra sobre as N amostras seguintes, em vez de aplicar uma modulação de amplitude e uma convolução! * Os efeitos de alteração de afinação (mudança de afinação, ajuste automático) não se encaixam bem nessa estrutura. Eles precisam de uma representação mais complexa do sinal de áudio a ser executado (vocoder de fase para métodos no domínio da frequência; detecção de pitch e marcas de pitch nos métodos no domínio do tempo).

Sugiro que você jogue com ferramentas de software de "estilo modular", como Pd, Reaktor, Plogue, SyntheEdit ... - e tente implementar efeitos a partir dos componentes básicos que eles fornecem.

pichenettes
fonte
2
Para o que vale a pena, a modulação de frequência é usada na síntese FM. Isso é facilmente visto no caso de uma modulação FM de tom único, que resulta em um sinal com uma série de Fourier definida pelas funções de Bessel do primeiro tipo.
22712 Bryan
11
A "síntese FM", conforme implementada nos sintetizadores (como a série Yamaha DX, o hardware baseado em OPL e a emulação de software), é um nome impróprio, pois isso é realmente feito com modulação de fase. pt.wikipedia.org/wiki/Phase_modulation
pichenettes
Não vejo nenhuma fonte anexada a essa entrada da Wikipedia. Independentemente disso, de acordo com essa entrada, ele diz que soa "semelhante" e que o PM é usado porque o FM é mais difícil de implementar. Eu não compro isso, já que FM é um caso especial de PM. Ainda assim, a teoria que citei por trás da modulação FM produzindo harmônicos relacionados às funções de Bessel permanece e é útil.
Bryan
@Bryan. Ver reivindicação 1 da patente de síntese "FM", US4018121. Um pecado (wt + I (t) sin w_m t) - é modulação de fase. O PM é mais fácil de implementar porque 1 / você não precisa de um acumulador extra para integrar a frequência instantânea variável em uma fase - veja as poucas postagens aqui nas quais as pessoas tentaram gerar um tom com frequência variável e foram mordidas de volta 2 / a conversão de uma frequência em um incremento de fase envolve uma divisão. Com PM você recalcula os incrementos de fase na taxa de modulações; com FM, você precisará recalcular os incrementos de fase na taxa de amostragem.
pichenettes
Resposta muito útil, obrigado. Percebo que tenho me concentrado muito no aspecto de programação (que estou apenas aprendendo) e não levando o lado dsp a sério o suficiente. Provavelmente não será um projeto que eu possa apenas começar pequeno e desenvolver gradualmente, mas um que terei que reconstruir e reconstruir muitas vezes à medida que aprender.
Kiman