Quelles sont les catégories de base des opérations effectuées sur les signaux audio pour créer des sons intéressants?

10

Je ne sais pas si cette question aura un sens car je suis très nouveau sur dsp.

Dans mon incursion limitée dans le DSP audio, je suis tombé sur:

  1. Modulation de fréquence
  2. La modulation d'amplitude
  3. Synthèse additive
  4. Synthèse soustractive

Ma question est la suivante: s'agit-il des principales catégories fondamentales de manipulation du signal (spécifiquement pour l'audio)?

En d'autres termes, tous les effets et toutes les fantaisies que FL Studio avec une suite complète de plugins peut faire, peuvent-ils être décomposés en une série et une combinaison des 4 opérations ci-dessus? Ou y en a-t-il beaucoup plus? Un DAW moderne avec des plugins peut-il théoriquement être divisé en n'importe quelle catégorie de cette manière? Les 4 catégories ci-dessus ont-elles même un sens en elles-mêmes?!

Un peu de contexte: Essentiellement, j'essaie de créer un synthétiseur / éditeur audio très basique (mais très flexible) en tant que projet pour apprendre à la fois la programmation et le dsp audio. En utilisant java, j'ai commencé par imiter des cours de base de synthétiseur du monde réel, en appelant des choses comme Oscillator et LFO et similaires, mais chaque fois que j'apprends quelque chose de nouveau, je me retrouve à tout réécrire pour adapter le nouveau concept au programme.

J'essaie de recommencer maintenant et de trouver les objets de base et la structure du programme. Pour cela, j'ai besoin de savoir comment je dois permettre à ces objets d'interagir, etc.

Merci!

MODIFIER * * *

Merci pour les commentaires et réponses utiles. Je me rends compte que j'ai probablement sous-estimé le côté dsp des choses et je ne serai pas en mesure de simplement créer un modèle et une structure de base pour un simple synthétiseur, puis de le développer / le développer. Je devrai probablement reconstruire à plusieurs reprises encore et encore pendant que j'apprends de nouvelles choses et la façon "correcte" de faire les choses ... Cela prendra plus de temps, mais j'apprendrai peut-être plus? Aussi désolé, je ne semble pas avoir suffisamment de représentants pour voter pour qui que ce soit ... dès que possible, je le ferai.

MODIFIER * MODIFIER ***

Je dois ajouter qu'un peu de recherche sur Google a révélé ce guide de base sur les "types de synthèse" que j'ai trouvé pertinent et intéressant.

kiman
la source
Souhaitez-vous avoir une formation théorique sur les techniques de synthèse, ou voulez-vous quelque chose de plus similaire (c'est-à-dire des méthodes courantes utilisées dans la pratique)? dsp.stackexchange.com/questions/192/…
datageist
1
Si je devais résumer toutes les manipulations sonores possibles dans le moins de catégories possible, je nommerais les transformations linéaires et non linéaires. Mais ceux-ci sont trop généraux et trop larges pour pouvoir être mis en œuvre.
Alexey Frunze
@datageist - Je suppose que je vais avoir besoin des deux! Mais c'est un lien très utile, merci.
kiman
@Alex C'est très général, mais c'est un point de départ conceptuel et au moins je sais maintenant que j'étais en train d'aboyer le mauvais arbre.
kiman
obtenir le livre de Will Pirkle, Designing Software Synthesizer Plug-Ins in C ++: For RackAFX, VST3, and Audio Units. vous allez en fait créer un synthétiseur et apprendre en cours de route au lieu d'essayer de tout comprendre par vous-même.
panthyon

Réponses:

9

La catégorie AM / FM est un peu étrange pour les effets - c'est vrai, vous pouvez obtenir des effets intéressants en modulant l'amplitude d'un signal d'entrée; mais que signifie la "modulation de fréquence" pour un signal d'entrée complexe pour lequel vous n'avez même pas une représentation précise de la fréquence? On pourrait très bien dire que chaque effet est une modulation d'amplitude, par le signal , mais cela ne va pas vous aider à l'implémenter!out(t)in(t)

Il n'y a pas de moteur magique à usage unique au cœur de tous les effets audio fournis par les logiciels de production musicale. Mais si vous regardez le code source d'une grande suite d'effets audio d'un développeur DSP, voici quelques "blocs de construction" qui auront été pris en compte dans leurs propres classes et qui sont partagés par de nombreux effets différents. Je n'implique pas que cela constitue une bonne base pour classer les effets; mais du point de vue de la mise en œuvre, ces blocs sont essentiels:

  • Filtres biquad.
  • Lignes à retard fractionnaires.
  • Moteur de convolution, pour une convolution rapide d'un signal d'entrée avec des réponses impulsionnelles de taille arbitraire.
  • Waveshaper (application d'une fonction non linéaire au signal d'entrée dans le domaine temporel).
  • Blocs de construction du synthétiseur: oscillateurs, LFO, enveloppes ADSR.
  • Détecteurs de signaux: suiveur d'enveloppe, extracteur f0.

Avec ces blocs, vous pourriez construire:

  • Filtres synthétiques ou wah-wah: un ou deux biquads
  • Auto-wah: suiveur d'enveloppe + enveloppe + biquad
  • Flanger / Phaser: LFO + ligne à retard
  • Chorus: LFO + lignes à retard
  • Réverbération algorithmique: lignes à retard (réseau de filtres en peigne parallèle et série)
  • Réverbération à convolution: convolution
  • Spatialiseur: convolution (avec réponses impulsionnelles des HRTF)
  • Simulation d'ampli guitare: convolution, ondes heurtées
  • Distorsion, Fuzz: gain + ondes d'échappement
  • Bitcrusher (quantizer): un cas particulier d'ondes d'échappement
  • Modulateur en anneau à porteuse sinusoïdale: oscillateur
  • Noise Gate et autres effets dynamiques: suiveur d'enveloppe
  • Simulation de bande: convolution, ondes d'échappement, suiveur d'enveloppe (pour le traitement dynamique)
  • EQ: biquads
  • Trémolo: LFO
  • Emulation Leslie: convolution + LFO
  • Vocoder: biquads + suiveur d'enveloppe

Alors que certains de ces effets consistent simplement à patcher les différents blocs (un flanger est vraiment un LFO modulant une ligne à retard), certains autres effets nécessitent une colle plus complexe entre les parties, ce qui est suffisamment spécifique pour ne pas être pris en compte dans un bloc de construction. de sa propre.

Il s'agit, dans l'ensemble, d'un ensemble d'effets intéressant qui couvrira beaucoup de terrain pour la production musicale, mais il n'est pas exhaustif et il y a en effet des effets qui ne correspondent pas à ce cadre ... Quelques exemples: * Réducteur de taux d'échantillonnage sale (en un bitcrusher): c'est vrai, c'est une multiplication par un peigne dirac puis une convolution par une fenêtre rectangulaire ... mais il est plus facile de l'écrire comme quelque chose qui duplique la valeur d'un échantillon sur les N échantillons suivants au lieu de patcher une modulation d'amplitude et une convolution! * Les effets d'altération de la hauteur (pitch-shifting, auto-tune) ne correspondent pas bien à ce cadre. Ils nécessitent une représentation plus complexe du signal audio à effectuer (vocodeur de phase pour les méthodes du domaine fréquentiel; détection de hauteur et marques de hauteur pour les méthodes du domaine temporel).

Je vous suggère de jouer avec des outils logiciels de "style modulaire" comme Pd, Reaktor, Plogue, SyntheEdit ... - et d'essayer d'implémenter des effets à partir des blocs de construction de base qu'ils vous fournissent.

pichenettes
la source
2
Pour ce que ça vaut, la modulation de fréquence est utilisée dans la synthèse FM. Ceci est facilement visible dans le cas d'une modulation FM à un seul ton, qui se traduit par un signal avec une série de Fourier définie par les fonctions de Bessel du premier type.
Bryan
1
La "synthèse FM" telle qu'elle est implémentée dans les synthétiseurs (tels que la série Yamaha DX, le matériel basé sur OPL et l'émulation logicielle de ceux-ci) est un terme impropre, car cela se fait en fait avec la modulation de phase. en.wikipedia.org/wiki/Phase_modulation
pichenettes
Je ne vois aucune source attachée à cette entrée Wikipedia. Quoi qu'il en soit, selon cette entrée, il est dit qu'ils semblent "similaires" et que PM est utilisé car la FM est plus difficile à mettre en œuvre. Je n'achète pas cela, étant donné que la FM est un cas particulier de PM. Pourtant, la théorie que j'ai citée derrière la modulation FM produisant des harmoniques liées aux fonctions de Bessel est valable et utile.
Bryan
@Bryan. Voir la revendication 1 du brevet de synthèse "FM", US4018121. Un sin (wt + I (t) sin w_m t) - c'est la modulation de phase. PM est plus facile à mettre en œuvre car 1 / vous n'avez pas besoin d'un accumulateur supplémentaire pour intégrer la fréquence instantanée variable dans une phase - voir les quelques articles ici dans lesquels les gens ont essayé de générer un ton avec une fréquence variant dans le temps et se sont fait mordre 2 / la conversion d'une fréquence en incrément de phase implique une division. Avec PM, vous recalculez les incréments de phase au taux de modulations; avec FM, vous devrez recalculer les incréments de phase à la fréquence d'échantillonnage.
pichenettes
Réponse très utile, merci. Je me rends compte que je me concentre beaucoup sur l'aspect programmation (que j'apprends juste) et que je ne prends pas le côté dsp assez au sérieux. Ce ne sera probablement pas un projet que je peux commencer petit et construire progressivement, mais que je devrai reconstruire et reconstruire plusieurs fois au fur et à mesure que j'apprendrai.
kiman