Question

Je dois mettre en œuvre un synthétiseur à table d'ondes dans un cœur ARM Cortex-M3.Je recherche du code ou des outils pour m'aider à démarrer.

Je suis conscient de cette implémentation AVR.En fait, je l'ai converti en PIC il y a quelque temps.Maintenant, je recherche quelque chose de similaire, mais avec un son un peu meilleur.

Le code ANSI C serait génial.Tous les extraits de code (C ou C++), exemples, outils ou simplement informations générales seraient grandement appréciés.

Merci.

Était-ce utile?

La solution

Le Synthesis Toolkit (STK) est excellent, mais il est uniquement en C++ :

http://ccrma.stanford.edu/software/stk/

Vous pourrez peut-être extraire le code du synthétiseur à table d'ondes du STK.

Autres conseils

Deux synthétiseurs à table d'ondes open source sont Synthé Fluide et Timidité.

N'importe quel synthétiseur ARM, le meilleur, peut être remplacé par un scanner d'ondes en moins d'une journée.Scanner l'onde à partir de fichiers ou les générer mathématiquement est presque la même chose du point de vue audio, WT fournit d'énormes banques de formes d'onde à un coût de traitement nul, vous avez besoin des ondes, le code de l'oscillateur WT lui-même est de 20 lignes.alors changez votre bouton de forme d'onde de 3 à 100 pour indiquer quel WAV vous lisez, utilisez une rampe/compteur pour lire les fichiers WAV (sous forme de tableaux).WT corrigé.

Après 7 ans d'expérience en synthétiseur, je recommanderais de changer 20 lignes de la fonction oscillateur de votre synthé préféré pour l'adapter à la lecture de tableaux d'ondes.Le WT n'utilise que 20 lignes logiques, le reste du synthétiseur est plus important :LFO's, filtres, paramètres d'entrée, mémoire preset...Utilisez plutôt votre synthétiseur préféré et trouvez une bibliothèque d'ondes WT sous forme de fichiers et de dossiers WAV, et remplacez vos oscillateurs de synthé préférés par des fonctions WT, le son sera presque identique, mais les coûts de traitement seront inférieurs.

Un synthé utilise normalement les fonctions Sin, Sqr, Saw, Antialiased OSC pour l'onde...

Un synthétiseur à table d'ondes utilise environ 20 lignes de code à sa base et 10/20/100ds d'ondes, chaque onde étant idéalement échantillonnée à chaque octave.Si vous pouvez obtenir une bibliothèque de sons à table d'ondes, le synthé se contente de faire des boucles, des changements de hauteur, les sons et les synthés professionnels peuvent également avoir plusieurs octaves pour mélanger les octaves.

Fonction WT =

  • charger des fichiers WAV dans N tableaux
  • changer la forme d'onde = sélectionner le tableau de formes d'onde dans la liste WAV
  • lire le tableau de formes d'onde au Hz souhaité

fonction scanner d'ondes =

  • faites un fondu enchaîné entre 2 ondes et attribuez xfade au LFO, c'est-à-diresinus et xfade.

L'enveloppe, le filtre, l'amplitude et toutes les autres fonctions sont indépendantes de la fonction de génération d'ondes dans tous les synthés.

rappelez-vous que l'outil psychoacoustique le plus puissant pour les synthétiseurs est la déviation de la tonalité numérique des notes, cela s'appelle le désaccord à l'unisson, le caractère sonore des synthétiseurs vient principalement du désaccord du refrain et de l'unisson.

Les WT sont soit des périodes uniques d'ondes de sections plus longues, dans des synthés plus avancés.les éléments à période unique sont très faciles à écrire dans le code.les WT avancés sont échantillonnés par octave avec des ondes durant N périodes, même 2-3 secondes, c'est-à-direpiano, et cela signifie qu'ils changent la qualité du son à travers les octaves, de sorte que les WT complexes sont fondus enchaînés à chaque octave avec des enregistrements sur plusieurs octaves.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top