science-notes/source/music/harmoniques.rst
2024-10-30 11:29:54 +01:00

212 lines
9 KiB
ReStructuredText

Harmoniques
------------
Timbre
========
Lorsqu'on joue une note avec un intrument, celui-ci sonne à une frequence :math:`f_0` (appelée *fondamentale*) ainsi qu'à plusieurs multiples de cette fréquence :math:`f_i=(i+1)\times f_0` (appelées *harmoniques*).
En jouant un do, on entends cette superposition de la fondamentale et de ces harmoniques.
Chacunes des harmoniques corresponds à l'une des 12 notes de musique jouées à des hauteurs (:ref:`octave <intervalles>`) différentes.
.. note::
La video suivante illustre bien ce concept: `Les harmoniques d'une note <https://www.youtube.com/watch?v=sPOLR60ADs8>`__.
.. figure:: figures/harmoniques.svg
:width: 500px
:align: center
Représentation des harmoniques d'une fréquence :math:`f_0` (tout en haut) produits en faisant vibrer une corde
Le signal produit par une cordre vibrant à une fréquence :math:`f_0` contient entre-autres les fréquences suivantes:
.. list-table:: Associations fréquences, notes et intervalles (`source <http://decouverte.orgue.free.fr/r_harmon.htm>`__). Le do 0 est le do du premier octave, do 1 est celui du second etc.
:align: center
:header-rows: 1
* - Fréquence
- Note
- Intervalle
* - :math:`f_0`
- do 0
- fondamentale
* - :math:`2f_0`
- do 1
- octave
* - :math:`3f_0`
- sol 1
- :ref:`quinte <intervalles>`
* - :math:`4f_0`
- do 2
- octave
* - :math:`5f_0`
- mi 2
- :ref:`tierce <intervalles>`
* - :math:`6f_0`
- sol 2
- quinte
* - :math:`7f_0`
- sib 2
- :ref:`septième mineur <intervalles>`
L'origine des termes octave, quinte tierce etc, sera détaillé dans un :ref:`prochain chapitre <intervalles>`.
Ces intervalles correspondent à la distance entre l'harmonique considéré :math:`f_i`, et la fondamental :math:`f_0`, lorsque :math:`f_i` est ramené sur le même octave que :math:`f_0`.
.. note::
La distance entre une fréquence :math:`f_a` et :math:`f_b` se calcule en faisant un ratio :math:`\frac{f_a}{f_b}`.
Comment ramener la fréquence d'une harmonique :math:`f_i` à l'octave de :math:`f_0`?
Diviser ou multiplier une fréquence par deux ne change pas la note.
Ainsi, en divisant par deux autant de fois que nécessaire jusqu'à ce que :math:`f_0 \le f_i \le 2f_0` on ramène l'harmonique à l'octave de la fondamentale.
Le programme suivant détermine pour chacunes des harmoniques d'une note, leurs notes associées ainsi que leurs facteurs les ramenants à l'octave:
.. _harmoniques_prog:
.. literalinclude:: code/harmoniques.R
:language: R
Sortie du programme:
.. code-block:: console
1f do 1/1
2f do 2/1
3f sol 3/2
4f do 4/2
5f mi 5/4
6f sol 6/4
7f la#/sib 7/4
8f do 8/4
Le *timbre* corresponds aux caracteristiques propres au son d'un
instruments permettant de le reconnaitre. Un do joué sur un piano, une
guitare, une flute reste un do. Ce qui les différencient (savoir si il
s'agit d'un piano, guitare ou flute) est le *timbre* de
l'instrument. En terme de fréquences, le timbre ce traduit par une
variation des amplitudes (propre à chaque instruments) des
harmoniques.
Gamme Pythagoricienne
======================
.. _pythagoricienne:
En musique, un intervalle est la rapport de deux fréquences.
Un octave corresponds à deux fois la fréquence initiale :math:`f_{octave}=2f_0`.
Il s'agit d'un intervalle important car il sonne extrêmement juste lorsque l'on joue :math:`f_0` et :math:`f_{octave}` simultanément.
Pour rappel, le passage à l'octave :math:`f_{octave_i}=2^i*f_0` est une opération qui ne change pas la note de départ!
Ainsi, diviser ou multiplier une fréquence par 2, une ou plusieurs fois, ne change pas la note.
Un concept très important sur lequelle repose la gamme Pythagoricienne.
En multipliant par 3 une fréquence :math:`f_0`, on obtient une note
qui correspond quasiment à la quinte de celle-ci. Pourquoi? Car si on
ramène cette quinte sur l'octave the :math:`f_0` (en divisant par 2),
on obtient une fréquence qui correspond à la quinte de cette
octave. Pour rappel, diviser par deux ne change pas la note!
En répétant ce principe, Pythagore ajoute 12 nouvelles notes l'octave.
En partant d'une fréquence :math:`f_0`, il créer une quinte :math:`f_a=3f_0`. Puis il prends à nouveau la quinte de :math:`f_b=3f_a`.
On oubli pas de diviser chacunes de ce nouvelles fréquences par 2 jusqu'a retomber dans l'octave de :math:`f_0`.
C'est à dire une fréquence :math:`f` tel que :math:`f_0<f<2f_0`.
Pourquoi 12 notes? Car si on en créer une :math:`13^{ème}`, on retombe **quasiment** sur :math:`f_0`.
Il est donc inutile de poursuivre.
En effet, :math:`\frac{3}{2}^{12}f_0 = 129.7f_0 \approx 128f_0 = 2^7f_0` ce qui corresponds à :math:`f_0` joué 7 octaves plus haut.
Ramener cela à l'octave de :math:`f_0` celà corresponds **quasiment** à :math:`f_0` joué 1 octave plus haut.
Voici comment générer la gamme Pythagoricienne:
.. literalinclude:: code/pythagoricienne.R
:language: R
Comme on ne retombe pas éxactement à l'octave supérieure, cela créer une dissonance appelée *quinte du loup*.
Ainsi, la dernière quinte de la gamme Pythagoricienne ne sonne pas *juste*.
.. figure:: figures/quinte_loup.jpg
:width: 300px
:align: center
Quinte du loup
De la même manière, l'intervalles de Tierce majeurs (de do à ré) ne tombe pas juste.
Pour résoudre ce problème, on pouvait utiliser le *tempérament mésotonique* (au lieu de multiplier par :math:`\frac{3}{2}`, on multipli par :math:`1.495^4` pour calculer les quintes).
Grace à cela, les tierces tombents juste! Au prix de quintes qui le sont un peu moin.
Par contre, cela agrave la quinte du loup.
En réalité, il y a plusieurs *tempérament mésotoniques*!
Chaque musiciens utilisait celui qui permettait de s'accommoder au mieux à ça pratique.
Historiquement, cela a eu un impacte sur la façon de composer.
On choisisait les accords qui sonnent le mieux avec le *tempérament mésotoniques* utilisé.
.. note::
Excellentes vidéos sur le sujet: `Antoine Houlou-Garcia <https://www.youtube.com/watch?v=RO5qmvgTH5E>`__, `ScienceÉtonnante <https://www.youtube.com/watch?v=cTYvCpLRwao>`__
Gamme Naturelle
=================
Il est possible de recontruire l'ensemble des notes d'une tonalité (ce terme sera dévelopé plus tard) pour que toutes les intervalles tombent justent (`source <https://www.youtube.com/watch?v=cTYvCpLRwao&t=383s>`__). On appelle cela, la *gamme naturelle* ou *gamme juste* ou *gamme du physicien*.
Sauf qu'on ne pourra pas changer de tonalité sans que celle-ci soit dissonante!
Mais comment construire une telle gamme?
Pour cela, il suffit de connaitre les ratios exactes de tierce (:math:`\frac{3}{2}`) ou de quintes (:math:`\frac{5}{4}`) et de contruire l'ensemble des notes avec.
Grâce à cette approche, on peu en déduire les valeurs théoriques de chacune des intervalles en musique.
Par example, pour la seconde majeur, on sait que la deuxième quinte de do est ré (intervalle de seconde majeur). On sait également que :math:`f_{do}=261.63` Hz. Ainsi, :math:`f_{ré}=\frac{\frac{3}{2}^2f_{do}}{\underbrace{2}_{\text{Ramène la note à l'octave}}}=294.3293` Hz. En faisant le rapport des fréquences on obtient le ratio d'une seconde majeur :math:`\frac{294.3293}{261.63}=1.125=\frac{9}{8}`.
Le programme suivant génère l'ensemble des fréquence théorique de chacune des notes de la gamme naturelle:
.. literalinclude:: code/gamme_naturelle.R
:language: R
Sortie du programme:
.. code-block:: console
do 261.63Hz
do#reb 272.53125Hz
re 294.33375Hz
re#/mib 306.59765625Hz
mi 327.0375Hz
fa 348.84Hz
fa#/solb 367.9171875Hz
sol 392.445Hz
sol#/lab 408.796875Hz
la 436.05Hz
la#/sib 459.896484375Hz
si 490.55625Hz
Gamme Tempérée
===============
Comme on ne peut pas utiliser toutes les tonalités avec une *gamme naturelle* sans que celle-ci soit dissonante il faut trouver un compromis.
Pour cela, la *gamme tempérée* propose de répartir l'ensemble des désaccords sur toutes les notes.
Il s'agit de l'accordage utilisé de nos jours.
Pour passer d'une note à la suivante, on multiplie par le facteur :math:`2^\frac{1}{12}`.
Le code suivant génère l'ensemble des notes de la *gamme tempérée*:
.. literalinclude:: code/temperee.R
:language: R
.. list-table:: Exemple d'approximations des intervalles faites par la gamme tempérée. Tout les intervalles sont légèrement faux à part l'octave.
:align: center
:header-rows: 1
* - Intervalle
- Valeur théorique
- Valeur de la gamme tempérée
* - Seconde
- :math:`\frac{9}{8}=1.125`
- :math:`2^\frac{2}{12}=1.222462`
* - Tierce
- :math:`\frac{5}{4}=1.25`
- :math:`2^\frac{4}{12}=1.259921`
* - Quarte
- :math:`\frac{21}{16}=1.3125`
- :math:`2^\frac{5}{12}=1.33484`
* - Quinte
- :math:`\frac{3}{2}=1.5`
- :math:`2^\frac{7}{12}=1.498307`
* - Octave
- :math:`2`
- :math:`2^\frac{12}{12}=2`