Minor changes
This commit is contained in:
parent
a702a82f4f
commit
73b5a5195d
5 changed files with 60 additions and 52 deletions
|
@ -1,10 +1,10 @@
|
|||
#!/usr/bin/Rscript
|
||||
|
||||
q=3/2 # Facteur de quinte
|
||||
t=5/4 # Facteur de tierce
|
||||
q=3/2 # Facteur de quinte theorique
|
||||
t=5/4 # Facteur de tierce theorique
|
||||
|
||||
## Construction de la gamme parfaite
|
||||
## Les division par deux sont la pour rammener à l'octave
|
||||
## Construction de la gamme naturelle
|
||||
## Les divisions par deux: pour rammener à l'octave
|
||||
do4=261.63 # do fréquence par convention
|
||||
sol4=do4*q
|
||||
re4=sol4*q/2
|
||||
|
@ -18,6 +18,7 @@ la4d=fa4d*t
|
|||
la4=fa4*t
|
||||
do4d=la4*t/2
|
||||
|
||||
## On affiche le résultat
|
||||
names=c("do","do#reb","re","re#/mib","mi","fa","fa#/solb","sol", "sol#/lab", "la", "la#/sib", "si")
|
||||
frequences=c(do4,do4d,re4,re4d,mi4,fa4,fa4d,sol4,sol4d,la4,la4d,si4)
|
||||
for( e in Map(list,names,frequences)){
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
#!/usr/bin/Rscript
|
||||
|
||||
do4=261.63 # do fréquence par convention
|
||||
do5=2*do4 # do octave suivante
|
||||
N=8 # Nombre d'harmoniques à explorer (ne pas hésité à faire varier N!)
|
||||
do4=261.63 # do Fréquence de convention
|
||||
do5=2*do4 # do à l'octave suivante
|
||||
N=8 # Nombre d'harmoniques à explorer (faire varier!)
|
||||
names=c("do","do#reb","re","re#/mib","mi","fa","fa#/solb","sol", "sol#/lab", "la", "la#/sib", "si", "do","NA")
|
||||
naturelle=c(261.63,272.53125,294.33375,306.59765625,327.0375,348.84,367.9171875,392.445,408.796875,436.05,459.896484375,490.55625,2*do4) # Valeurs théoriques de la gamme naturelle (parfaite voir plus loin)
|
||||
naturelle=c(261.63,272.53125,294.33375,306.59765625,327.0375,348.84,367.9171875,392.445,408.796875,436.05,459.896484375,490.55625,2*do4) # Valeurs théoriques de la gamme naturelle
|
||||
|
||||
## Ramener à l'octave de do4
|
||||
## Ramener à l'octave de do4 en divisant par 2 autant de fois que nécessaire
|
||||
toOctave=function(x, i=0){
|
||||
if(x<=do5) # On verifie si on est au bonne octave
|
||||
if(x<=do5) # On verifie si on est à l'octave de do4
|
||||
2^i
|
||||
else
|
||||
toOctave(x/2, i+1)
|
||||
|
@ -18,10 +18,10 @@ toOctave=function(x, i=0){
|
|||
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 naturelle
|
||||
M=abs(outer(harmoniques,naturelle, "-")) # Fonction d'erreur
|
||||
M=t(apply(M,1,FUN=function(row){row==min(row)})) # On selection l'entrée avec l'erreur minimale
|
||||
v=apply(M,1,FUN=function(row){if(any(row)) (1:13)[which(row)[1]] else 14}) # On selectionne les notes correspondantes (which est la pour les can ou plusieurs il y a plusieur minima (ici on prends le premier a TRUE))
|
||||
## On compare les fréquences trouvées à la gamme naturelle
|
||||
M=abs(outer(harmoniques,naturelle, "-")) # Calcule de l'erreur à la gamme naturelle
|
||||
M=t(apply(M,1,FUN=function(row){row==min(row)})) # On selectionne les entrées avec l'erreur minimale
|
||||
v=apply(M,1,FUN=function(row){if(any(row)) (1:13)[which(row)[1]] else 14}) # On selectionne les notes correspondantes (which() est la pour les cas avec plusieurs minima(s), on choisir arbitrairement le premier
|
||||
|
||||
## On affiche le résultat
|
||||
for( e in Map(list, 1:N, names[v], sapply(do4*(1:N),FUN=toOctave))){
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/Rscript
|
||||
|
||||
do4=261.63 # do fréquence par convention
|
||||
do4=261.63 # do fréquence de convention
|
||||
temperee=do4*((2^(1/12))^(0:12)) # Fréquences de la gamme temperée
|
||||
|
||||
|
||||
|
|
|
@ -4,11 +4,9 @@ Harmoniques
|
|||
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*).
|
||||
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.
|
||||
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>`__.
|
||||
|
@ -17,11 +15,11 @@ Chacunes de ces harmoniques corresponds à l'une des 12 notes de musique jouée
|
|||
:width: 500px
|
||||
:align: center
|
||||
|
||||
Représentation des harmoniques d'une fréquence :math:`f_0` (tout en haut) en faisant vibrer une corde
|
||||
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 les fréquences suivantes:
|
||||
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>`__). Note: do 0 est le do du premier octave, do 1 est le do du deuxième octave etc.
|
||||
.. 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
|
||||
|
||||
|
@ -36,36 +34,38 @@ Le signal produit par une cordre vibrant à une fréquence :math:`f_0` contient
|
|||
- octave
|
||||
* - :math:`3f_0`
|
||||
- sol 1
|
||||
- quinte
|
||||
- :ref:`quinte <intervalles>`
|
||||
* - :math:`4f_0`
|
||||
- do 2
|
||||
- octave
|
||||
* - :math:`5f_0`
|
||||
- mi 2
|
||||
- tierce
|
||||
- :ref:`tierce <intervalles>`
|
||||
* - :math:`6f_0`
|
||||
- sol 2
|
||||
- quinte
|
||||
* - :math:`7f_0`
|
||||
- sib 2
|
||||
- septième mineur
|
||||
- :ref:`septième mineur <intervalles>`
|
||||
|
||||
|
||||
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`.
|
||||
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 la fréquence d'une harmonique :math:`f_i` à l'octave de :math:`f_0`?
|
||||
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 code source suivant détermine pour chacune des harmoniques la note associé ainsi que le facteur ramenant à l'octave. Attention, je ne l'ai pas vérifié:
|
||||
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
|
||||
|
||||
Example de sortie du programme:
|
||||
Sortie du programme:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
|
@ -79,11 +79,12 @@ Example de sortie du programme:
|
|||
8f do 8/4
|
||||
|
||||
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
|
||||
s'agit d'un piano, guitare ou flute est le *timbre* de
|
||||
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.
|
||||
variation des amplitudes (propre à chaque instruments) des
|
||||
harmoniques.
|
||||
|
||||
Gamme Pythagoricienne
|
||||
======================
|
||||
|
@ -92,32 +93,32 @@ Gamme 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.
|
||||
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/multiplier une fréquence par 2, une ou plusieurs fois, laisse la note inchangée.
|
||||
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 quasiment la quinte de cette
|
||||
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 nouvelle notes l'octave.
|
||||
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 divisé chacunes de ce nouvelles fréquences par 2 jusqu'a retomber dans l'octave de :math:`f_0`.
|
||||
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.
|
||||
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
|
||||
|
||||
Le fait que l'on ne retombe pas éxactement à l'octave suppèrieure créer ce que l'on appèle une *quinte du loup*.
|
||||
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
|
||||
|
@ -134,20 +135,21 @@ 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 composé.
|
||||
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 Tempéré
|
||||
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 que l'on ne pourra pas changer de tonalité sans que celle-ci sonne fausse.
|
||||
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.
|
||||
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?
|
||||
|
||||
Grâce à cette approche, on peu en déduire la valeur théorique de chacune des intervalles en musique.
|
||||
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:
|
||||
|
@ -172,9 +174,13 @@ Sortie du programme:
|
|||
la#/sib 459.896484375Hz
|
||||
si 490.55625Hz
|
||||
|
||||
Comme on ne peut pas utiliser toutes les tonalités avec une gamme parfaitement accordée, la *gamme tempéré* propose de répartir l'ensemble des désaccords sur toutes les notes.
|
||||
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.
|
||||
Ansi, pour passer d'une note à la suivante, on multiplie par facteur :math:`2^\frac{1}{12}`.
|
||||
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*:
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
Intervalles
|
||||
================================
|
||||
|
||||
.. _intervalles:
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue