Retour à la page d'accueil

Notation MIDI - extension

René Bastian © 2.10.2002

La norme

On sait que la norme MIDI est un intervalle de nombres entiers allant de 0 à 127. Cette norme est très pratique car elle est logarithmique et correspond donc au mode de perception humain (bien qu'il ne soit pas facile de contrôler si chaque individu est bien calibré - d'ailleurs ceci n'est pas indispensable : chacun à bien le droit d'écouter la musique comme il l'entend).

Extension

J'utilise deux extensions de cette norme :
  1. l'intervalle MIDI est un intervalle continu,
  2. l'intervalle MIDI n'est pas limité.
La notation MIDI étendue a un référentiel précis : A4 américain à 440.0 Hz (équivalent à notre La3). L'intervalle ou la hauteur MIDI s'expriment par un nombre réel. La correspondance fréquence / MIDI est :

Hauteur : 69.0 midi <==> 440.0 Hz

Intervalle : 1.0 midi <==> f1/f0 = 1.059463094
Ceci a comme avantage :
  1. qu'on peut facilement noter n'importe quel ton ne faisant pas partie de la dodécaphonie tempérée habituelle ;
  2. qu'on peut facilement noter n'importe quelle fréquence : ultrasons ou infrasons. Ceci n'est pas seulement utile pour les chauve-souris, mais c'est pratique pour passer d'une notation acoustique à une notation musicale et inversement.
Cette méthode exprime aussi facilement que le système métrique :

Origine

Ce mode de notation prenant le demi-ton comme unité de mesure a déjà été préconisé aux alentours de 1832 par Marie de Prony, ingénieur de Travaux Publics. Leonhard Euler et Félix Savart avaient proposé de prendre l'octave comme base, mais c'est plus pratique de considérer l'octave comme étant constitué de 12 degrés que de considérer le degré MIDI comme un 1./12e d'octave). La notation en cents n'est qu'une notation d'intervalles.

Pratique

En effet, il peut s'avérer utile de se rendre compte des interférences ou de résonnance de deux oscillations en nombre d'oscillations (notation de fréquences) - en particulier si on fait de la synthèse à partir de micro-durées.

Python

Voici les deux petites fonctions de conversion permettant de convertir la notation MIDI en fréquences et inversement :

cDiapason=440.0
# cC0 est la fréquence de midi(C0) soit 8.17579891564... Hz 
import math
cC0=((cDiapason*(2**(1.0/12))**3)*2**-6)
cDemiTon=2**(1.0/12)

def freq2midi(freq):
    midi=(math.log(freq)-math.log(cC0))/math.log(cDemiTon)
    return midi

def midi2freq(midi):
    freq=cC0*cDemiTon**midi
    return freq
      

Retour à la page d'accueil

René Bastian
Last modified: Mon Sep 11 19:13:06 BST 2006