Informations sur l'accordéon
Accueil Commencer à jouer Description de l'accordéon Trouver des partitions
⭐ Special 📤 Email 🖨️ Print

🏁 This page has been validated by alexoudeon on 2024-09-08 at 00:00:00.

📌
Modéliser un accordéon virtuel Détermination du spectre à la main Détermination du spectre avec Morphine Tableau des volumes Modélisation de l'oscillateur avec Sytrus Enveloppe ADSR Pitch-bend transitoire Balance Unison et réverbération Modulation FM/AM Patcher Résultat final Sampling audio d'un accordéon

Modéliser un accordéon virtuel

La technologie VST a été inventée par l'entreprise Steinberg et est utilisée par l'ensemble des logiciels du marché. L'idée est d'ajouter des capacités musicales aux logiciels de composition (surnommés « DAW » pour digital audio workstation). Il s'agit là d'outils expert en traitement du signal. Les synthétiseurs virtuels appliquent uniquement des formules mathématiques pour tracer une onde sonore représentant ce que vous voulez entendre. Ils sculptent littéralement le son selon différentes méthodes :

Détermination du spectre à la main

On maîtrise maintenant ce qu'est un spectre et comment l'obtenir avec un algorithme de FFT. Dans ce chapitre, je vais vouloir modéliser mon instrument virtuellement.

Il faut commencer par enregistrer le son de l'instrument au diapason (🎧 vst_signal.flac), c'est-à-dire un La/A4 de 440 Hz selon l'accordage traditionnel. Nous obtenons un son visuellement simple, périodique et dont le spectre est déterminé dans la partie de sustain, c'est-à-dire au cœur de la note jouée après l'attack et avant le release. Le volume y est le plus stable et le spectre le plus simple :

Vue sinosoïdale de la flûte d'un accordéon

Spectre de la flûte d'un accordéon

Avec toute l'imprécision de la mesure et de mon pauvre matériel d'enregistrement, on trouve beaucoup de choses inutiles dans ce spectre d'Audacity. On va donc garder uniquement les raies supérieures à -60 dB, sachant qu'il y a une perte par défaut de 30 db dans ma mesure. C'est la limite au-delà de laquelle les fréquences concernées ne sont plus significativement audibles. À la souris, je relève les fréquences dans un tableau :

Fréquence Note Harmonique Volume
436 A4 1,0 -34
1776 A6 4,0 -46
2223 C#7 5,1 -57
2670 E7 6,1 -53
3117 C7 7,1 -63
3563 A7 8,1 -67
4457 C#8 10,1 -73
4892 D#8 11,1 -60
5773 F#8 13,1 -58

La voix flûte est une lame vibrante dont les dimensions donnent la fréquence fondamentale unique. Le reste ne doit être que des harmoniques, ce qui est confirmé par le calcul de la troisième colonne. La note indiquée est une approximation fréquentielle juste pour information. La dernière colonne est le volume en décibel (dB) qui va nous permettre de définir les amplitudes relatives des harmoniques.

Voilà qui est intéressant : le son n'a pas beaucoup d'harmoniques, donc on va pouvoir le modéliser assez « facilement ». Le post-processing avec les effets enrichira naturellement cette source.

Détermination du spectre avec Morphine

J'utilise FL Studio pour mes projets musicaux. Son avantage est d'être 100% complet et gratuit pour tout le monde, mais vous ne pouvez pas rouvrir les fichiers sauvegardés et certains plugins se taisent périodiquement si vous n'avez pas payé la licence. Il y a certains plugins sophistiqués qui ne sont pas inclus dans ma version mais que je peux évaluer malgré tout sans sauvegarder. C'est le cas de Morphine, un synthétiseur additif de la marque.

Son concept est assez intéressant : vous indiquez votre échantillon sur la gauche et sa note MIDI (69 pour un La/A4), puis vous demandez le spectre via un menu. Le résultat est différent, alors j'ai enlevé les harmoniques qui ne sont pas dans le tableau précédent et sans toucher aux amplitudes. Le reste du logiciel implémente des effets pour en faire un outil complet.

Son d'accordéon dans FL Studio Morphine

Après une rapide mise en forme, voici de façon très brute le type de son qu'on peut obtenir : 🎧 vst_morphine_demo.mp3

Et c'est pas mal du tout !

Tableau des volumes

Le volume est noté en décibel qui est logarithimique. Pourtant, FL Studio affiche les volumes en décimal ou avec un pourcentage.

Voici les relations mathématiques connues et un tableau de correspondance :

Pourcentage dB Décimal
100 % 0,0 1,0
96 % -0,9 0,9
92 % -1,9 0,8
87 % -3,1 0,7
81 % -4,5 0,6
75 % -6,0 0,5
67 % -7,9 0,4
58 % -10,3 0,3
46 % -13,8 0,2
29 % -19,8 0,1
24 % -24,0 0,06
14 % -27,9 0,04
9 % -32,0 0,03
3 % -43,4 0,01
0 % -∞ 0,0

Modélisation de l'oscillateur avec Sytrus

Je vais utiliser plutôt le synthétiseur Sytrus, car il est inclus à partir d'une licence inférieure (on pourra rouvrir les fichiers sauvegardés) et je ne connais aucune alternative aussi bien. Celui-ci fonctionne avec des volumes en pourcentage, d'où le tableau ci-dessus pour faire correspondre l'amplitude des harmoniques.

En reprenant le spectre donné par Audacity, nous avons la modélisation suivante. Malheureusement, le résultat n'est absolument pas conforme aux attentes... Ça ne mérite même pas de vous proposer un aperçu du son obtenu.

Harmonique ΔdB Pourcentage
1 0 100 %
4 -12 52 %
5 -23 22 %
6 -19 31 %
7 -29 12 %
8 -33 9 %
10 -39 4 %
11 -26 17 %
13 -24 20 %

Modélisation 1 du spectre d'un accordéon

Du coup, on va essayer de reprendre les amplitudes données par Morphine. Nous avons alors :

Harmonique Pourcentage
1 100 %
4 64 %
5 48 %
6 71 %
7 39 %
8 49 %
10 41 %
11 53 %
13 41 %

La modélisation donne un résultat beaucoup plus fidèle bien que cela reste encore non naturel. En ce sens, la fonctionnalité de spectre automatique avec Morphine vous fera gagner un peu de temps.

Modélisation 2 du spectre d'un accordéon

Le côté rustre du son est causé par l'addition spectrale de sinusoïdes qui ne sont pas un son riche et qui sont limitées en nombre. On peut composer les harmoniques avec autre chose que des sinusoïdes. C'est pourquoi on va toucher aux excellentes options de l'oscillateur. Ça change le spectre final du son, mais le spectre pour la composition reste inchangé. En fait, ça ne change pas grand chose au problème et ça enrichit le son sans effort et sans trop de déformation.

Options d'oscillation dans Sytrus

Enveloppe ADSR

Le volume de l'accordéon évolue selon une courbe. Parce que la main met en mouvement le soufflet, il y a d'abord un temps d'attaque (attack) amenant le volume quasiment à son maximum. Parce qu'on a tiré un peu fort, la main se détend et tente de garder la pression, donc le volume va diminuer dans un délai (decay) et rester presque constant pendant un autre temps (sustain). Si le volume ne peut pas se maintenir indéfiniment, une pente forcée peut être appliquée (fade). À la fin, la main va repartir dans l'autre sens durant un temps de relâchement (release).

Si votre logiciel est équipé d'un contrôleur d'enveloppe (c'est le cas de Sytrus), vous pouvez tracer la forme de votre choix, aussi folle soit-elle. Sinon la simplification ADSR (attack, decay, sustain, release) permet de définir une équivalence acceptable. Pour trouver les bons paramètres, il faut enregistrer votre instrument et jouer une note normalement. La courbe ADSR apparaît en imaginant un peu :

Enveloppe ADSR d'un son d'accordéon

Je fais le choix que les différents délais sont valables quel que soit le tempo. Je mesure A=100 milli-secondes, pareil pour R. Je définis ensuite -4 dB pour un sustain de 2 secondes. L'enveloppe ressemble à ceci à la fin. Il est bien d'avoir le début et la fin pas abruptes pour éviter l'effet de clic, tel un robinet provoquant des coups de bélier dans votre réseau d'eau si vous l'actionnez trop vite.

Enveloppe ADSR dans Sytrus

Pitch-bend transitoire

En affichant le spectre de l'accordéon en temps réel, on voit que la fréquence d'oscillation n'est pas atteinte immédiatement. Soit c'est un problème algorithmique dans l'implémentation du FFT, soit c'est tout simplement la réalité physique.

La fréquence étant fonction des dimensions de l'anche dont l'une des extrémités est solidement rivetée sur un châssis, la fréquence n'est pas censée varier contrairement à l'amplitude. Pour le vérifier, il faut regarder l'enregistrement brut de l'accordéon. En moyennant sur plusieurs oscillations, on note la durée correspondante au début et à la fin de l'attaque. Dans mon cas, j'obtiens partout 0.009 secondes pour 4 oscillations, soit une fréquence d'environ 444 Hz qui est bien mon La/A4 joué.

Il n'est donc pas nécessaire d'ajouter un pitch-bend, c'est-à-dire une courbe pour faire varier la fréquence en fonction du temps. Je vais néanmoins le faire, car cela donne un petit plus indescriptible. Le son me paraît légèrement moins terne tout en restant dans l'esprit de l'instrument.

Pitch-bend transitoire

Balance

Pour enrichir le son simplement en faussant la perception, on peut modifier la balance (pan). Seulement, une anche est monophonique (elle est toute seule à vibrer) : il ne peut pas y avoir d'effet stéréo natif. Du coup, on ne paramètre rien.

Unison et réverbération

Le son restant toujours un peu sec, on peut l'élargir en activant un peu d'unison et en paramétrant la boîte d'effets pour n'autoriser que la réverbération.

L'unison est la répétition d'un son avec un très léger décalage fréquentiel. Il agit très en amont de l'oscillateur et passe donc à travers les enveloppes de modulation. On peut mettre un effet de chœur (chorus) mais c'est tricher en aval des enveloppes de modulation. C'est vraiment à l'oreille que le choix se fait.

Options d'unison dans Sytrus

La réverbération est complètement valable dans le sens où le son est confiné dans l'instrument. Si votre accordéon a un cassetto, cette réverbération est obligatoire pour la voix concernée. Le volume d'effets est réglé pour ne pas être trop imposant.

Options de réverbération dans Sytrus

Modulation FM/AM

On a vu que la fréquence ne variait pas, donc la matrice de modulation en fréquence (FM) est ignorée.

Je n'ai pas activé la modulation en amplitude (ring modulation, AM) parce que l'enveloppe ADSR laissait entrevoir une pente (fade) qui est déjà prise en compte par le contrôleur d'enveloppe. À moins que vous n'ayez un parkinson en phase terminale, votre main n'est pas censée trembler au point de faire fluctuer le volume. J'avais oublié mais cela tombe bien.

Patcher

Maintenant que la modélisation d'une anche est réalisée, il faut considérer l'assemblage de l'accordéon. Cet instrument est composé de plusieurs voix, registres, cassotto... Pour aborder le sujet, partons du résultat :

Interface de l'accordéon virtuel

Interface de l'accordéon virtuel

La main droite contient 5 réplications du synthétiseur Sytrus modélisé. Le basson est défini avec un pitch de -12 demi-tons (-1 octave) et le piccolo avec +12 demi-tons (+1 octave). Les musettes sont respectivement de ±15% sur l'ajustement de fréquence, car je ne vois pas d'option pour travailler avec des fractions de demi-tons.

Les cassottos sont des coches pour le basson et piccolo qui activent une réverbération mise en série avec Sytrus. En effet, il n'est pas possible de piloter la matrice de modulation directement.

La main gauche se joue en Do/C3 avec le registre de base qui active une voix à +2 octaves (+24 demi-tons ou fréquence x4). Le registre étendu active les voix à -1 octave (-12 demi-tons ou fréquence/2) et +1 octave (+12 demi-tons ou fréquence x2). Si la main gauche est choisie, la main droite est automatiquement rendue silencieuse, mais il est conseillé de désactiver les voix concernées. Cette approche permet d'avoir le même instrument (preset) pour gérer les deux côtés de l'instrument.

Le son est routé vers un WaveShaper pour arrondir le son qui dépasse et créer quelques harmoniques nouvelles au passage. Un filtre passe-bas fait du zèle pour la forme. Et enfin, un Fruity Limiter vient calibrer le volume parce que la démultiplication des oscillateurs augmente le volume de 3 dB à chaque fois que leur nombre double.

Résultat final

Voilà dans les grandes lignes la modélisation qui est loin d'être parfaite. Il manque beaucoup d'harmoniques mais la virtualisation de l'instrument respecte ses caractéristiques.

Le résultat est assez satisfaisant bien que ça ressemble à un orgue : 🎧 vst_final_emile.mp3

Le preset FST de ce projet n'est pas disponible au téléchargement. Vous avez toutes les informations ci-dessus pour reproduire le résultat et faire vos ajustements.

Sampling audio d'un accordéon

Roland désigne ci-dessous un fabricant japonais de matériel électronique connu pour avoir créé des accordéons numériques dans les années 2000. Les produits ont la forme d'un accordéon mais ils ne contiennent que des circuits électroniques. La technologie était protégée par le brevet US6946594B2 jusqu'en 2022. Il suffit de lire pour comprendre quel est le secret.

S'agit-il d'un synthétiseur additif ? Absolument pas et tout ce qu'on a fait au-dessus n'a rien à voir. Les accordéons Roland reposent sur l'échantillonage : ce sont des romplers.

À aucun moment le brevet ne donne les paramètres de modélisation. Les quelques principes élémentaires sont expliqués sans détailler les contraintes d'implémentation au niveau des puces (conversion analogique/numérique, traitement du signal DSP...). Ils se sont arrogé tout le marché des accordéons autonomes pendant 20 ans. Tous les concurrents utilisent des adaptateurs MIDI à monter sur des instruments mécaniques, ou implémentent des systèmes équivalents via onde radio. Dans tous les cas, en ayant un simple contrôleur MIDI, la puissance des ordinateurs pourrait faire tout aussi bien.

En reprenant uniquement mon très court échantillon en La/A4 pour l'analyse spectrale (🎧 vst_signal.flac), je me suis amusé à rompler avec FL Studio via Fruity Enveloppe Controller même si le mieux serait d'utiliser DirectWave à condition d'avoir une licence Signature. Pour modifier la fréquence, on utilise l'algorithme élastique de streching fréquentiel intégré. Le résultat est finalement extrêmement rapide à obtenir, bien que cela nécessite un enregistrement de haute fidélité. Le spectre n'est absolument pas contraint à la 13ème harmonique mais le son est absolument horrible. Il est métallique à souhait, strident, monophonique, sans aucune profondeur : 🎧 vst_rompler_emile.mp3.

Cela illustre l'intérêt des romplers et pourquoi ils sont indispensables pour avoir un son d'accordéon potable.

Revision #15 was last modified by alexoudeon
on 2024-09-08 at 00:00:00 — ee8af82c9e7b8b96

🔝 Top of the page 🔝