Primo, je sais que c'est possible.
Pour les newbies, un formant c'est "une résonnance dans le spectre vocal". Et pour créer une résonnance faut créer des pics specifique dans l'égaliseur. Car il paraît qu'un utilisateur du site www.renoise.com (Bit_Arts pour le pas le citer) a réussi à construire une démo .xrns qui émule de façon convainquante une technique 100% native de formant filter sous renoise. Seulement, voilà : il semble se soit "brouillé" avec quelques membres du forum ou quelques modérateurs, et qu'il ait décidé en conclusion de ne plus diffuser son module de démonstration.
Argh. J'avais pas téléchargé sa démo. Maintenant, c'est trop tard. Ca m'apprendra à remettre au lendemain. En plus il paraît que pour ceux qui l'ont chargée et testée, c'est hyper complexe. Mais, qu'à cela ne tienne, je vais re-découvrir la méthode ; on y croit !
Peut-être faut-il partir des bases, c'est à dire de ce que c'est au juste qu'un formant filter, et comment on produit ces fameuses voyelles. D'après Wikipedia, certaines régions du spectrogramme sont plus excitées que d'autres pour produire ces voyelles.
Vowel (IPA) | Formant f1 | Formant f2 |
---|---|---|
u | 320 Hz | 800 Hz |
o | 500 Hz | 1000 Hz |
? | 700 Hz | 1150 Hz |
a | 1000 Hz | 1400 Hz |
ø | 500 Hz | 1500 Hz |
y | 320 Hz | 1650 Hz |
? | 700 Hz | 1800 Hz |
e | 500 Hz | 2300 Hz |
i | 320 Hz | 2500 Hz |
Aussi, on donne quelques "régions" spectrales pour leur expression.
Vowel | Main formant region |
---|---|
u | 200–400 Hz |
o | 400–600 Hz |
a | 800–1200 Hz |
e | 400–600 and 2200–2600 Hz |
i | 200–400 and 3000–3500 Hz |
Certes, instructif, mais pas suffisant, j'ai besoinde plus d'infos pour comprendre.
Par exemple en allant sur le site http://www.csounds.com/manual/html/MiscFormants.html, je tombe sur une série de tables de valeurs intéressantes :
C'est à dire qu'on a 3 types de paramètres, (1) les fréquences en hertz, (2) l'amplitude en dB, et (3) bw, je suppose bandwidth soit la bande passante en hertz.
Ca semble un peu plus exploitable, même si je peine encore à voir ce qu'on évoque par bandwidth en hertz et comment m'en servir.
Je ne connais qu'un seul *dsp qui pourrait m'aider à effectuer un formant filter, c'est non pas le dsp EQ5 qui ne produit pas de pics assez vifs, mais le dsp *Filter ! (lol!)
Mais bon, je ne pense pas à n'importe quel *Filtre ; en testant toutes les combinaisons, seul le filter type "Moog" dispose d'un paramètre de "résonnance", qui peut s'il est booosté suffisemment, produire un "pic" déterminant ; la terminologie de résonnance présente dans ce DSP *filtre spécifique Moog, me fait effectivement penser aux articles que j'ai pu lire par ailleurs, donc à mon avis, il va falloir forcément caser ce filtre quelque part en bout de course dans une chaine ou une piste send.
Mais à lire l'article de wikipedia, un formant filter c'est pas 1 filtre Moog résonnant, positionné sur une fréquence précise, mais au moins deux filtres Moog, positionnés sur deux fréquences précises en même temps qui se chargent du son, et selon des amplitudes de résonnances particulières. Par exemple, en théorie, faire un "A" doit passer par la création de 2 pics l'un situé autour de 1000Hz, l'autre 1400Hz, en gros, un écart de 400Hz entre un pic et un autre. Toutefois et c'est une chose qu'il faut noter, l'étude des autres tableaux de fréquences détaillés dans le lien du précédent post démontre que la résonnance n°2 a une amplitude sonore moins élevée que la première. Il en va de même pour les autres fréquences de référece qui suivent, on les appelles des harmoniques dont l'amplitude va decresendo ; ces harmoniques contribuent à une meilleure identification du formant par l'oreille humaine.
Maintenant vu le niveau d'affaiblissement de la 4ème valeur de fréquence en moyenne au sein des tableaux, je me demande si elle est sera bien audible ; et si elle est bien nécessaire ; en effet, le formant filter n'est jamais aussi bien perçu que dans les zones spectrales où la parole humaine se fait entendre souvent soit entre 300 et 3500Hz maximum, donc créer des harmoniques aux fréquances très élevées est peut-être logique, mais probablement irréaliste.Autant peut-être simplement essayer de monter notre première ébauche de formant filter sur trois bandes de fréquences contenant trois filtres positionnés précisément sur des valeurs types telles que définies dans le tableau.
Enfin, le filtre DSP Filter dispose d'un argument de poids pour la simulation des résonnances du tractus vocal : le paramètre inertia ; ce paramètre permet des transitions douces entre une fréquence de cutoff et une autre et c'est particulièrement utile pour émuler les modulations intermédiaires entre les voyelles.
L'Administrateur
Bit Arts... drôle de gars.
D'un côté, il fait et offre ses outils puis change d'avis, fait sa tête de con...
Je l'ai contacté un jour parce qu'un de ses outils était présent sur une de mes templates mais finalement, je l'ai viré. Aussi dispensable que l'auteur, au final .
J'ai le XRNS mais si j'ai le malheur de te l'envoyer, je pense que la Diva va nous chier une pendule
De toutes façons, balancer le xrns de Bit_Arts n'a aucun intéret, s'il est effectivement trop complexe, personne ne pourra le comprendre et s'en servir ; je préfère encore pondre ma version du formant filter avec des explications détaillées sur la méthode, si j'y arrive ( lol ) et qui sera intelligible car basée sur une explication, qu'une démo brillante mais inutilisable en l'état.
lapiNIC
Puisque j'ai moi aussi effacé par erreur la démo de Bit_Arts initiale qui a bien démontré qu'il était possible de construire ce satané formant filter sous Renoise, j'ai donc potassé encoe plus de bouqins de papiers et de sites. Tout ça pour en refaire un depuis le début.
Donc cette première mouture est basée sur cette page web (pour ceux qui savent la traduire ce qui en soi n'est pas forcément simple car il faut comprendre les termes techniques et les schémas) :http://www.soundonsound.com/sos/mar01/articles/synthsec.asp
Theorie
Bon je résume, en gros ça dit que quun formant filter ça consiste en un montage de 3 filtre en mode bandpass qui fonctionnent en parallèle ; on peut avec eux simuler 5 voyelles en définissant des bandes de frequences bien particulières à mixer dans 3 send tracks bien distinctes. Le son qui alimente ce montage doit de préférence être une onde sonore de type "pulse" , moi sincèrement je vous recommende même de distordre le son un poil (avec le modèle "shift") ou alors, de sévèrement bitcrusher le son avec le DSP LofiMat pour que les résultats soient encore meilleurs. Dites vous de toutes façons que la voix humaine, c'est des fréquences qui montent pas non plus super-haut. Donc faudra aussi que les sons d'entrée soient assez bas, baryton-basse, par exemple.
Donc d'après le site sus-cité il y a une matrice de 3x5 valeurs à considérer en prenant F1 pour la bande de fréquence 1, F2 pour la bande 2, et F3 pour la troisième bande :
Pour le DSP à placer on va donc mettre le dps *Filter de toutes façons on n'a pas le choix il n'y a que celui-là. Parcontre pour le modèle de bandpass je vais simplement choisir celui qui tranche le plus dans la chair du son, le Butterworth 8N, histoire d'avoir des résultats immadiatements audibles.
Alors le problème c'est comment stocker cette matrice de 3x5 valeurs ? La solution elle vient d'un pote que je me suis fait du temps des battles des Dead Dog Renoise Competition l'an dernier, soit Ragnar Aambø (aka TheBellows) ; ce dernier a mis au point un astucieux module, appelé Invisible Melodies. Le but du module est de jouer une piste avec des notes aléatoires, auto-arrangée. Dans cette étonnant module, les notes sont stockés dans un LFO de type "custom" qui contient non pas une courbe mais des points. Et ces points sont enclenchés par le bouton "Reset".
Donc en suivant l'exemple donné par Invisible Melodies, Renoise peut identiquement stocker les 5 frequences particulières (correspondant chacune à une voyelle) dans trois LFOs customisés. La sélection des points se fait simplement avec l'aide du méta-périphérique Hydra qui pointe sur le "Reset" des LFOs. Et si on relie ces LFOs aux Filters Bandpass, tout en utilisant l'"External Editor" inclus maintenant dans le LFO, on peut ajuster très précisément les valeurs des points, et reproduire très exactement la matrice de 3x5 valeurs de fréquences. La seule chose à comprendre est que les valeurs à rentrer dans le LFO ne seront pas montrées en Hertz mais en pourcentage % :
Table de correspondance des Valeurs de LFO (en % et pas en Hz) :
Et hop !
Téléchargement
Télécharger ICI le .XRNS d'exemple.
Usage
C'est basé que 3 méta-périphériques de type hydra, mais pas de panique je les ai allégés visuellement, et renommés, ils en sont plus faciles à comprendre. J'ai essayé de présenter ça de la façon la plus simple possible.
D'abord envoyez / routez le son sur la piste send nommée ControlF.
Puis MODULEZ les sliders des 3 paramètres :
Correspondances entre pourcentage et Formants : 0 % ======================================>> 100 % "ee" =====> "oo" =====> "i" =====> "e" =====> "u" =====> "a"
Crédits
* Bit_Arts - qui a démontré que monter un formant filter en natif était possible * The Bellows - Invisible Melodies * MXB - Resynth 4 est un Tool parfait pour vous aider à construire rapidement des échantillons de type pulse wave
A faire :
Tester un modèle de formant filter à 5 bandes au lieu de 3, et essayer d'autres modèles de filtres.
Tester des modes de modification des formants alternatifs :
Merci pour votre lecture !
lapiNIC
Tu t'attaques à un sacré morceau...Le Wobble, à côté, c'est du "pipi de chat"...
L'outil est excellent, je fais mumuse avec :)
Ahrgh quel boulet je fais !
J'essaie d'inclure cette technique dans certains de mes vieux modules : trop chiant. Faut tout reconnecter, modifier les routages pffff...
Donc j'ai pris mon courage à deux mains et j'ai enfin réussi à SIMPLIFIER le truc.
* * *
J'ai tout casé sur une et une seule chaîne, les valeurs des formants, et les effets, comme ça vous pouvez sauver au format .XRNT la chaine d'effets et la recharger à loisir dans n'importe quel module. Ca marche !
Attention quand même faut la version 2.8 de Renoise pour que ça fonctionne. Pourquoi, parce qu'à l'intérieur ya des DSPs très récents dont un qui est "secret", le *Formula device.
TELECHARGEZ LA VERSION ULTIME ICI.
Question : comment diable j'ai fait ?
Réponse.
J'ai repris mes LFO customises, sans rien changer. Et au lieu de piloter 3 filtres distincts situés dans trois pistes Send différentes, j'ai "détourné" le DSP *MultiTap de sa fonction d'origine. En effet, si vous regardez ce périphérique, vous constaterez qu'il s'agit de 4 périphériques de type *Delay simultanés, empilés les uns sur les autres et agissant donc en... parallèle. Mais la particularité de ces délais, c'est qu'ils sont "filtrés" . On trouve en effet des filtres Lowpass, HighPass, Notch, et ... BandPass ! Justement ceux que je cherche. Donc les délais aussi agissent en parallèle. Donc j'ai simplement viré/coupé les délais dont je n'ai pas besoin, pour laisser 3 filtres agir sur le son d'entrée.
Et Hop !
Initialement j'ai pensé piloter directement les valeurs de fréquence des filtres bandpass avec les LFOs customisés, mais le problème, c'est qu'entre les voyelles, le passage était "brutal", pourquoi, parce que les filtres du DSP * MultiTap ne dispose pas de paramètre Inertia... et donc, les voyelles ne morphent pas naturellement les unes entre les autres.
Donc j'ai simplement cherché une méthode pour faire glisser plus progressivement les paramètres d'une position à l'autre à l'instar de ce que le paramètre "Inertia" du *Filter fait. Ca se fait en utilisant un périphérique DSP secret en alpha test actuellement nommé le *Formula Device. C'est kraken/gore, de la dev team Renoise, qui a montré à la communauté la puissance de cet outil, en programmant une simple fonction permettant de simuler le paramètre "Inertia" pour à peu près tous les sliders de Renoise.
Donc j'ai simplement repompé cet exemple de Slider Inertiel, et je l'ai casé entre le LFO et le filtre et l'amortisseur joue à merveille son rôle !
Et hop !
C'est donc encore plus simple à utiliser et pour le coup vous pouvez caser du Formant Filter à gogo sur un paquet de pistes maintenant sans trop d'ennuis.
Il suffit de sauver la chaîne d'effet située sur la piste FMTS CTRL en fichier de type .XRNT
Et selon vos besoins, vous rechargez cette chaine d'effet ! Elle fait 100% du job toute seule. Et vous y retrouvez les paramètres usuels, Formants, Bandwidth, et j'ai renommé Transtions en Humanize, pour que ça soit encore plus explicite.
Conclusion, ça c'est fait.
Formant Filter : [Check]
L'Administrateur
Amélioration !
On passe à 5 bandes.
C'est beaucoup plus tolérant et ça bouffe beaucoup plus de sons sans broncher, même ceux qui jouent sur des fréquences plus élevées.
Cette fois-ci c'est basé sur l'article original :
http://www.csounds.com/manual/html/MiscFormants.html
Ce sont toujours des bandpass filters montés en parallèle pour produire 5 types de voyelles émulées. La méthode est exactement la même que pour le modèle à 3 bandes sauf que je me suis fait chier à introduire une matrice de 5x25 formants !
Voici la matrice de 3x25 formants :
Note ------
Cette version est un poil différente de la version à 3 bandes. (plus légère et bouffant un poil moins de CPU). J'ai du augmenter l'étendu des formants afin de vous permettre de digérer les tonalités situées sur des fréquences plus hautes. A vous de balancer le slider plus sur la droite si vous entendez mal le son, jusqu'à ce que le formant adapté vous saute à l'oreille.
Attention : n'hésitez pas à retourner au modèle à 3 bandes "Basic Formants for Renoise" si vous approchez les 90% d'usage CPU.
Téléchargement
Usage
Même technique
ROUTEZ le son vers la piste Send "ControlF".
Et Modulez les 3 parameters qui s'y trouvent : (1) Formants - explicite. (2) Bandwidth - augmente la présence / réduit la présence des formants (3) Transitions - transitions vocales humanoïdes/robotiques ; pour l'humain, c'est entre 45% et 50%, pour les robots c'est 70% à 100%.
AUTOMATISEZ LE SLIDER AVE LE BOUTON DROIT
0 % ======================================>> 100 % "ee" =====> "oo" =====> "i" =====> "e" =====> "u" =====> "a"
Crédits
* Bit_Arts - toujours lui puisqu'il a été le pionnier dans ce domaine sur Renoise * The Bellows - Invisible Melodies
lapiNIC
Je viens juste de recevoir un peut d'aide de Bit_Arts himself pour améliorer encore un poil the concept - bien que je pensais en avoir fini et avoir effectué les ultimes ajustements la dernière fois avec ma version qui tient sur une seule piste !
Plus facile que facile ? C'est encore possible !
VOICI SOUS VOS YEUX EBAHIS LA VERSION V2 !!!
Quoi de neuf ? - 4 Formants Filter Bands au lieu de 3, toujours empaquetées sur une seule chaîne - Les formants se contrôlent en live, en utilisant le clavier AZERTY virtuel ou le clavier MIDI - Control des Formants Feedback - Auto Q - Voix Auto Bot - amélioration du RExciter ™ - remplacement du sample detuned wobble par quelque chose d'un peu plus "propre" - en fait un chipsound basique
FAQ
Comment installer ça dans mon module ?
Et comment modifier les Formants ?
Comment avez vous exactement disposé les formants au début du clavier ?
Comment produire le son de robot ?
J'aime pas le son de robot : comment l'enelever ?
A quoi sert le paramètre Feedback ?
A quoi sert le paramètre Auto Q ?
Bizarre, mes sons une fois filtrés ne sonnnent pas aussi riches que les vôtres.
TELECHARGEMENTICI.
Crédits
éclatez-vous avec Renoise !
lapiNIC
Easy Formants for Renoise 2.5 Final
Vous avez bien lu : FINAL (ouf on n'en voyait plus le bout!)
Quoi de neuf ?
Les « aeiou » sont améliorés et l'utilisation des ressources est optimisée.
Pour le principe, c'est sensiblement équivalent à ce qui précède.
TELECHARGER ICI.
lapiNIC
Chapeau
Salut lapiNic,
Ok, voilà j'ai utilisé ton super générateur de formants et c'est super. Je me pose deux questions:
- comment s'appelle l'effet dsp que tu as nomé 'C-0 to D#1 Controler'
- est-il possible par 'formula' ou autre fonction de générer en temps réel des nombres aléatoires. Car je pense que l'on peut augmenter la réalité de ton générateur en introduisant un temolo léger sur la fondamentale. Ou en ajoutant des harmonique proche de la fondamentale. Ceci rejoint la méthode de Paul Nasca (http://zynaddsubfx.sourceforge.net/doc/PADsynth/PADsynth.htm ).
super boulot, j'apprends plein d'astuces avec ces petits modules Merci
P.s. 1 toujours pas fini RRF mai je cale, je fais du sur-place bon faut que je m'y mette sérieusement ou plutôt dans le délire !!!
P.s.2 Bonjour à tous les nouveauxcet bienvenu
Harmel
*le dsp qui détecte les touches du clavier midi/azerty utilisées dans la piste en cours, et les transcode en paramètre pour moduler d'autres DSPs, est un méta-périphérique, le *key-tracker !
* le formula device peut produire du random ; mais tu peux aussi produire du random via le *LFO !
lapiNIC
j'avais pas suivi ce fil ayant été quelque peu absorbé par le travail c deux derniers mois mais la de nouveau en arret je sors de l'hopital et sur quoi je tombe dans les brumes médicamenteuses lol ce sujet sa à du etre un truc de fou a réfléchir ce truc la sa t'a pris comme sa de vouloir faire sa ?
http://drum-memory.bandcamp.com/
http://www.jamendo.com/fr/artist/338357/the-laptop-are-dreaming-too
primo j'avais besoin de ce genre d'effet et j'en avait marre d'utiliser un plugin qui à mon avis n'est pas très pratique et dont la qualité est plus que discutable, je veux parler du Vocalizer de chez Aquest : essayez ce plugin, puis supprimez-le ! Ah c'est sûr il prend pas beaucoup de cycles CPU mais, je sais pas comment il est codé, le résultat est pitoyable, on n'entent pratiquement pas les voyelles ! en plus la sélection des voyelles se fait à travers un pad xy à deux dimensions, cool dans l'apparence et totalement inutile parce qu'au milieu du pad, ya rien, aucun effet ! Impossible de faire une transition correcte entre les voyelles avec ce pad, c'est pas fluide, c'est moche, bref ya rien à sauver
secundo je suis idiot, j'avais téléchargé la démo de bit_arts et je l'ai virée en croyant que c'était une copie, et non en fait j'ai viré l'original, lol, avant de m'apercevoir que bit_arts s'est brouillé avec certains membres du forum anglais, (c'est malin ça), et donc histoire de pousser un peu les autres à bouger leur c... et faire l'effort de comprendre comment ça marche bit_arts a zappé ses liens vers sa démo.
troisio : c'est pas que j'aime les défis, mais presque. En plus j'ai vu qu'un paquet de musiciens quémandaient la démo d'origine, sans la trouver, je me suis dit, ça devrait intéresser les autres si je leur expliquait le truc pour créer des formants, d'autant plus qu'en lisant quelques articles j'avais à peu près compris le concept.
quatro : j'avais simplement rien à faire de mon week end.
lapiNIC
en tout cas je'ai tester hier, la monomachine que j'avais avais un truc similaire et ton taf n'a rien a lui envier chapeau!!!
http://drum-memory.bandcamp.com/
http://www.jamendo.com/fr/artist/338357/the-laptop-are-dreaming-too
merci :)
j'espère toutefois quand même que la prochaine version de renoise si elle arrive un jour intègrera plus directement un formant filter, car ce joli montage bouffe quand même pas mal de cycles CPU, comme je bosse en 96KHz stereo 280BPM, j'arrive facile à 30% de CPU rien qu'avec une seule piste de rien du tout... la qualité est là, mais ça reste un peu lourd ; ça serait tellement mieux si c'était hardcodé dans un DSP natif !
lapiNIC