Minor changes

This commit is contained in:
Loïc Guégan 2024-10-29 11:17:29 +01:00
parent f425168158
commit 3b8782f54a
2 changed files with 77 additions and 14 deletions

29
source/music/code/harmoniques.R Executable file
View file

@ -0,0 +1,29 @@
#!/usr/bin/Rscript
do4=261.63 # do fréquence par convention
do5=2*do4 # do octave suivante
N=27 # Nombre d'harmoniques à explorer
names=c("do","do#reb","re","re#/mib","mi","fa","fa#/solb","sol", "sol#/lab", "la", "la#/sib", "si", "do","NA")
temperee=do4*((2^(1/12))^(0:12)) # Gamme tempere (expliquer plus tard)
## Ramener à l'octave de do4
toOctave=function(x, i=0){
if(x<=do5) # On verifie si on est au bonne octave
2^i
else
toOctave(x/2, i+1)
}
## On calcule les facteurs permettant de passer à l'octave de do4 pour chaque harmoniques
factors=(1:N/sapply(do4*(1:N),FUN=toOctave))
harmoniques=do4*factors # On calcule les fréquences à l'octave de do4
## On compare les fréquences trouvé à la gamme tempérée
M=abs(outer(harmoniques,temperee, "-"))<10 # 10 est la marge d'erreur
v=apply(M,1,FUN=function(row){if(any(row)) (1:13)[row] else 14}) # On selectionne les notes correspondantes
## On affiche le résultat
for( e in Map(list, 1:N, names[v], sapply(do4*(1:N),FUN=toOctave))){
message(paste0(e[[1]],"f ",e[[2]])," ",e[[1]],"/",e[[3]])
}

View file

@ -7,31 +7,63 @@ Timbre
Lorsque l'on joue une note à l'aide d'un intruments, 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*).
Ainsi, un lorsque l'on joue un do, on entends la superposition de la fondamentale et de ces harmoniques.
En jouant un do, on entends la superposition de la fondamentale et de des harmoniques.
Chacunes de ces harmoniques corresponds à l'une des 12 notes de musique jouée à des hauteurs (octaves) 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) en faisant vibrer une corde
Ainsi, le signal produit par une cordre vibrant à une fréquence :math:`f_0` contient les fréquences suivantes (`source <http://decouverte.orgue.free.fr/r_harmon.htm>`__):
Le signal produit par une cordre vibrant à une fréquence :math:`f_0` contient les fréquences suivantes:
.. math::
f_0 &\quad\mathrm{fondamental}\quad &\text{do 0}\\
2f_0 &\quad\mathrm{octave} &\text{do 1}\\
3f_0 &\quad\mathrm{quinte} &\text{sol 1}\\
4f_0 &\quad\mathrm{octave} &\text{do 2}\\
5f_0 &\quad\mathrm{tièrce} &\text{mi 2}\\
6f_0 &\quad\mathrm{quinte} &\text{sol 2}\\
7f_0 &\quad\mathrm{septième} &\text{sib 2}\\
... &\quad......
.. list-table:: Associations fréquences, notes et intervalles (`source <http://decouverte.orgue.free.fr/r_harmon.htm>`__). Note: do 0 est le do du premier octave, do 1 est le do du deuxième octave 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
- quinte
* - :math:`4f_0`
- do 2
- octave
* - :math:`5f_0`
- mi 2
- tierce
* - :math:`6f_0`
- sol 2
- quinte
* - :math:`7f_0`
- sib 2
- septième mineur
.. note::
La video suivante illustre bien ce concept: `Les harmoniques d'une note <https://www.youtube.com/watch?v=sPOLR60ADs8>`__.
L'origine des termes octave, quinte tierce etc, seront expliqué dans un prochain chapitre.
Ici, 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`.
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 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 code source suivant détermine pour chacune des harmoniques la note associé ainsi que le facteur ramenant à l'octave:
.. literalinclude:: code/harmoniques.R
:language: R
Le *timbre* corresponds aux caracteristiques propres au son d'un
instruments, ce qui permet de le reconnaitre. Un do joué sur un piano,
une guitare, une flute reste un do. Ce qui permet de savoir si il
@ -42,11 +74,13 @@ 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}` simulatanement.
On note également que 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!
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/multiplier une fréquence par 2, une ou plusieurs fois, laisse la note inchangée.
Un concept très important sur lequelle repose la gamme Pythagoricienne.