Introduction

Le simulateur d'orgue présenté ici par l'IREM des Pays de la Loire se veut élémentaire aussi bien dans sa manière de produire des sons que dans son utilisation. Plusieurs dizaines de paramètres physiques sont modifiables à la volée.

Il est placé sous la licence GPLv3.

L'orgue IREM n'a pas l'ambition des simulateurs habituels dédiés aux orgues électromécaniques ou éléctroniques classiques, libres ou propriétaires, qui comportent des caractéristiques assez subtiles et se placent dans une recherche d'exactitude de comportement absolue par rapport au modèle. Néamoins en jouant sur divers paramètres, on peut imiter des enceintes tournantes à deux rotors (d'après Leslie), des orgues électromécaniques à roues phoniques du genre Hammond, à anches électrostatiques du genre Wurlitzer, des orgues électroniques à transistors discrets du genre Vox, Farfisa...

L'orgue IREM permet aux personnes débutantes en musique ou en acoustique de se familiariser avec les notions de :

  1. fréquence,
  2. harmonique,
  3. phase,
  4. vibrato,
  5. amplitude,
  6. enveloppe,
  7. filtrage,
  8. distorsion,
  9. retard,
  10. réverbération.
Il s'agit de programmer les calculs les plus simples possibles pour produire les sons voulus. Les étudiants de sciences en premier cycle pourront remarquer l'utilisation d'isométries dans le plan euclidien et de formules classiques de trigonométrie.

L'investissement en matériel nécessaire est limité puisqu'il suffit d'un ordinateur portable et d'un clavier MIDI suffisamment pourvu en boutons de commande.

Une fois le programme lancé, l'interactivité normale entre l'instrument et l'interprète passe exclusivement par le clavier MIDI.

Toutes les notes MIDI sont jouables simultanément, ce que l'on traduit en jargon commercial par : il y a 128 notes de polyphonie, avec les réserves décrites dans la section Remarques diverses et dépannage. Le nombre maximum de notes de polyphonie pour une utilisation stable peut descendre à une vingtaine quand un maximum d'effets et d'harmoniques sont enclenchés.

Aide

Un memorandum des commandes de l'orgue est disponible dans le fichier MEMO. Pour les claviers de la marque Arturia, le memorandum est dans le fichier MEMOarturia.

Matériel requis et avertissements

Il faut un ordinateur avec une carte son, et une source MIDI reliée à l'ordinateur. Il faut un compilateur OCaml dans sa distribution standard pour fabriquer les exécutables. Pour envoyer le signal sonore brut (numérique) vers la carte son, il faut soit le paquet logiciel esd (Enlighted sound daemon) soit le paquet logiciel sox (SOund eXchange).

Il faut comme source(s) MIDI : un clavier-maître MIDI ayant AU MOINS les molettes pitch bend et modulation, huit (8) boutons curseurs, huit (8) boutons rotatifs, et six (6) boutons-poussoirs de transport style magnétophone : BOUCLE (), REMBOBINAGE <<, AVANCE RAPIDE >>, ARRÊT [], LECTURE >, ENREGISTREMENT O. Ces boutons et curseurs peuvent être sur une autre machine que le clavier si les messages MIDI sont joints sur le même canal. Si neuf (9) curseurs sont disponibles, la molette de modulation est utilisée pour le niveau de sortie (swell). Le poussoir PAUSE peut remplacer le poussoir BOUCLE le cas échéant.

Il est possible de lancer l'orgue en version automatique avec détection du périphérique MIDI et de la marque du clavier par l'automate. À part la procédure de détection au démarrage, le fonctionnement est le même que pour les scripts dédiés. Il est recommandé de se reporter à la section Démarrage et exploitation du son. Le canal MIDI utilisé par l'orgue est celui qui est envoyé sur l'entrée standard du programme "CLAVIERx". Pour la plupart des scripts "orgueX.sh" c'est le premier : 0 pour les informaticiens (1 pour les musiciens). Il suffit de changer les scripts pour changer de source et de canal MIDI. Les claviers de la marque Roland utilisent une autre convention ; le fichier OCaml et le script associés en tiennent compte ; quelques manipulations sont nécessaires pour pouvoir utiliser un clavier Roland sorti d'usine.

Tous les boutons utilisés envoient des messages MIDI appelés "Control change". L'affectation des numéro de contrôleurs est modifiable en changeant les fichiers sources avant de compiler ; cette affectation peut dépendre du fabriquant de la source MIDI.

Pour l'instant les configurations disponibles sont les types : Alesis, Arturia, M-audio, Roland.

Il faut faire attention au niveau de sortie : les craquements éventuels annoncent plus probablement une saturation du système de reproduction sonore qu'une surcharge du processeur. Même si le saturateur-écrêteur intervient en dernier, des pics d'énergie peuvent être occasionnés par l'interaction de multiples effets : battement de fréquences, vibrato, réverbération, clics et percussions... Le risque d'abîmer les transducteurs n'est pas à négliger. Attention à ne pas léser les oreilles dans le cas d'une écoute au casque.

Le niveau de sortie maximum est choisi pour ne pas saturer quand on joue sans effet, même avec les notes les plus graves. Pour un registre limité au médium ou aigu, le rapport signal-sur-souffle-numérique peut être trop faible. On peut diminuer le paramètre de coefficient rose (calqué sur le bruit rose) pour renforcer les notes aiguës ; une augmentation modérée de la saturation peut aussi atténuer le problème.

Les phases initiales des différents générateurs sont pseudo-aléatoires et le déphasage relatif des différentes notes fondamentales subit un cheminement encore moins prévisible quand le paramètre de diapason ou le paramètre de coefficient multiplicateur d'octave sont changés, même temporairement.

Mode d'emploi et maintenance

Compilation

Les exécutables sont placés dans bin, les bibliothèques dans lib, les configurations dans orgueIREMrc et la documentation dans doc.

La compilation normale est réalisée en exécutant dans le dossier bin/ :

sh compile.sh

Démarrage et exploitation du son

Orgue à détection automatique

L'orgue admet une version automatique qui détecte le périphérique MIDI et le modèle de clavier, à condition de respecter un protocole de manipulation au démarrage.

Sur un système BSD, où les périphériques MIDI apparaissent sous la forme /dev/umidi0.0, il faut lancer :

sh orgueBSD.sh
Sur un UNIX de type système V (comme GNU/Linux), il faut lancer :
sh orgueSV1.sh
si les périphériques MIDI ont tendance à apparaître sous la forme /dev/midi00 ; sinon il faut lancer :
sh orgueSV2.sh
quand les périphériques MIDI ont tendance à apparaître sous la forme /dev/snd/midiC1D0.

En cas de problème, il se peut que des processus excédant leur durée de vie normale empêchent le succès d'une autre tentative. Il est bon de nettoyer les processus en lançant :

sh nettoyage.sh

Une fois le programme d'orgue à détection automatique lancé, il faut actionner les boutons du clavier MIDI pour que le bon périphérique MIDI soit trouvé. Ensuite, il faut continuer à actionner les boutons et curseurs du clavier pour que le type de clavier MIDI soit déterminé (par observation des numéros de contrôleurs MIDI). Arrivé à ce point, un court signal sonore est envoyé et l'orgue est véritablement lancé ; et il suffit de se reporter à le section Commandes pour utiliser l'orgue.

Dans tous les cas, des messages de diagnostic sont affichés sur la sortie d'erreur standard.

Début d'utilisation

Au premier démarrage après compilation, une configuration des tirettes pleins jeux est mémorisée sur la touche DO60 (DO central du clavier). Le réglage du son sans aucun effet est uniformément mémorisé sur les 128 touches du clavier MIDI.

À chaque arrêt de l'orgue, les préréglages de tirettes et réglages de l'orgue qui ont été enregistrés pendant la session sont conservés dans le répertoire orgueIREMrc pour être rechargés au prochain démarrage.

On peut commencer par rappeler les pleins jeux ( << DO60 ) et les réglages par défaut ( () << n'importe quelle note ). Appuyer sur une touche pour vérifier si un son est produit.

Enregistrement du son

Pour sauvegarder le son de la session, il faut lancer l'un des scripts orgueBSDbrut.sh -ou orgueSV?brut.sh- du répertoire bin/ dont le nom est à choisir suivant le système d'exploitation. Le fichier sonore brut est placé à l'adresse orgueIREMrc/sonBrut. Il suffit de l'importer dans un programme du genre Audacity pour l'exporter par exemple au format WAV.

Utilisation du casque

Pour utiliser le jack casque sous FreeBSD (/dev/dsp1.0) -par exemple sur un ordinateur portable- il faut faire en tant que root (avec réponse du SHELL montrée sur la deuxième ligne) :

# sysctl hw.snd.default_unit=1
hw.snd.default_unit: 0 -> 1

Orgue adapté au matériel

Si l'orgue automatique ne convient pas, il est bon de lancer l'orgue de la manière expliquée dans la suite, ce qui évite le protocole de détection.

L'orgue est lancé en exécutant l'instruction suivante du dossier bin/ :

sh orgueX.sh
où la lettre X est à choisir selon le type de source MIDI.

Remarque concernant ce qui suit : ce programme a été conçu sous le système FreeBSD-9.2-amd64. Les noms des périphériques peuvent être différents sous un autre système d'exploitation. Il semblerait que sous GNU/linux, le nom de périphérique /dev/umidi0.0 doive être remplacé par /dev/midi00 ou bien /dev/snd/midiC1D0 par exemple... Des scripts shell prenant en argument l'adresse à partir de /dev/ sont fournis. Leurs noms commencent par SV (comme System V). L'orgue pourra être lancé par exemple avec la commande du dossier bin/ :

sh SVorgueX.sh snd/midiC1D0
où la lettre X est à choisir selon le type de source MIDI.

Pour d'autres choix en sortie, il suffit de modifier l'un des scripts orgue[A-Z].sh ou SVorgue[A-Z].sh, ou bien de lancer les différents exécutables successivement en s'inspirant du script.

Le format de la sortie standard fabriquée par ORGUE est à envoyer dans esdcat qui utilise par défaut /dev/dsp0.0 (haut-parleurs de la machine). Si le programme esdcat est absent, le son est envoyé dans play avec le même format.

Le programme esdcat fait partie du paquet Enlighted sound daemon (/usr/ports/audio/esound sous FreeBSD). L'exécutable play fait partie du paquet SOund eXchange (/usr/ports/audio/sox sous FreeBSD).

Le choix et l'exécution du filtre de sortie sont réalisés dans le script son.sh.

Enregistrement du son

Pour sauvegarder le son de la session, il faut lancer l'un des scripts orgue?brut.sh -ou SVorgue?brut.sh- du répertoire bin/ dont le nom est à choisir suivant la source MIDI -au lieu du script orgue?.sh. Le fichier sonore brut est placé à l'adresse orgueIREMrc/sonBrut. Il suffit de l'importer dans un programme du genre Audacity pour l'exporter par exemple au format WAV.

Commandes

Les neuf curseurs -ou bien la molette de modulation et les huit curseurs- jouent le rôle des neuf tirettes d'orgue. Elles représentent dans l'ordre les harmoniques suivantes (avec longueurs caractéristiques en pieds) : 1/2 (16'), 3/2 (16/3'), 1 (8'), 2 (4'), 3 (8/3'), 4 (2'), 5 (8/5'), 6 (4/3'), 8 (1').

Sur un contrôleur MIDI à neuf curseurs, la molette de modulation est dédiée au niveau de sortie (swell) comme le bouton rotatif (1).

Sur un contrôleur MIDI à huit curseur, la molette de modulation est dédiée à la première tirette : harmonique 1/2.

Si une pédale d'expression est reliée au contrôleur MIDI, elle est affectée au niveau de sortie (swell) comme le bouton (1).

La molette pitch bend (variation d'accord) donne par défaut une excursion maximale de deux tons, qui peut être modifiée en recompilant. La fréquence du diapason en hertz (note MIDI 69) et le coefficient multiplicatif d'octave sont réglables à la volée. Les valeurs par défaut au démarrage sont respectivement 441 et 2.

La configuration des autres réglages à partir de tous les claviers MIDI testés est décrite dans la suite de cette section. Un résumé de tous les organes de commande est placé dans le fichier MEMO.

Pour les claviers Roland, le neuvième bouton rotatif recopie le huitème.

Les claviers Arturia offrant sensiblement plus de boutons rotatifs que la concurrence, la disposition spécifique des commandes -inspirée du cas général ci-dessous- est décrite dans le fichier MEMOarturia. Les modes disponibles et les fonctions individuelles des boutons rotatifs pour clavier Arturia sont les mêmes que les autres, seulement l'affectation des numéros de boutons ainsi que le nombre de boutons utilisables dans chaque mode sont différents, ce qui permet de changer de mode moins souvent. Globalement le bouton Volume remplace le bouton (1), les boutons P1 à P3, P6 à P8 remplacent respectivement les boutons (2) à (4), (5) à (7) ; le bouton P10 remplace le bouton (8). Les boutons P4, P5, P9 offrent le cas échéant des clones de fonctions appartenant à d'autres modes.

Parmi les huit boutons rotatifs, deux ont des attributions immuables :

Les autres boutons rotatifs (numéros (2) ; (3) ; (4) ; (5) ; (6) ; (7)) commandent des paramètres qui dépendent du mode courant de commande.

Les boutons-poussoirs déterminent le mode de commande comme suit.

O

Le bouton-poussoir ENREGISTREMENT fait basculer entre le mode spécial et le mode vide. Pour arrêter l'orgue, passer en mode spécial et appuyer sur la succession de boutons-poussoirs : LECTURE, ARRÊT, AVANCE RAPIDE, REMBOBINAGE, BOUCLE. Pour sauvegarder l'ensemble des réglages de l'orgue, passer en mode spécial et appuyer sur le bouton-poussoir AVANCE RAPIDE. Pour rappeler un ensemble de réglages de l'orgue, passer en mode spécial et appuyer sur le bouton-poussoir REMBOBINAGE. Pour sortir du mode spécial il suffit de rappuyer sur le bouton-poussoir ENREGISTREMENT ou de choisir un autre mode, en premier lieu différent du mode percussion.

>>

Pour enregistrer une configuration de tirettes, ne jouer aucune note et s'assurer d'être en-dehors du mode spécial ; appuyer sur AVANCE RAPIDE, puis appuyer sur une touche du clavier. Ensuite les touches du clavier redeviennent fonctionnelles. Les 128 notes MIDI fournissent autant de préréglages distincts. En mode spécial, ce sont les réglages de l'orgue qui sont sauvegardés de cette manière (fonction identique à celle du bouton-poussoir >|).

>| ou Multi sur Arturia ou 9 sur M-audio ou Track > sur M-audio Oxygen

Si la source MIDI offre le bouton-poussoir FIN (ou équivalent), les réglages de l'orgue sont sauvegardés sur une touche du clavier.

<<

Pour rappeler une configuration de tirettes, ne jouer aucune note et s'assurer d'être en-dehors du mode spécial ; appuyer sur REMBOBINAGE, puis appuyer sur une touche du clavier. Ensuite les touches du clavier redeviennent fonctionnelles. Si rien n'a été sauvegardé auparavant sur cette touche, toutes les harmoniques ont un niveau nul et il n'y a pas de son. En mode spécial, ce sont les réglages de l'orgue qui sont rappelés de cette manière (fonction identique à celle du bouton-poussoir |<).

|< ou Sound sur Arturia ou 8 sur M-audio ou Track < sur M-audio Oxygen

Si la source MIDI offre le bouton-poussoir DÉBUT (ou équivalent), les réglages de l'orgue sont rappelés depuis une touche du clavier.

[]

Pour modifier les formes d'onde, appuyer sur le bouton-poussoir ARRÊT. On est placé dans le mode forme. Les boutons rotatifs muables ont les attributions suivantes.

> ou ||>

Pour modifier les sonorités percussives, appuyer sur le bouton-poussoir LECTURE en-dehors du mode spécial. On est placé dans le mode percussion. Les boutons rotatifs muables ont les attributions suivantes. (L'effet percussif n'est déclenché que si l'échantillon précédent est silencieux.)

() ou ||

Pour cycler entre : son droit, vibrato, chorus, appuyer sur le poussoir BOUCLE. Le cas échéant, il est remplacé par le poussoir PAUSE. On est placé dans tous les cas en mode de réglage vibrato. Pour modifier les paramètres du vibrato et des effets, les boutons rotatifs muables ont les attributions suivantes.

O []

Pour filtrer et équilibrer le son, passer en mode spécial et appuyer sur le poussoir ARRÊT.

O () ou O ||

Pour régler la réverbération et divers autres paramètres, passer en mode spécial et appuyer sur le poussoir BOUCLE. Le cas échéant, il est remplacé par le poussoir PAUSE.

O >

Pour passer en mode lecture, passer en mode spécial et appuyer sur le poussoir LECTURE.

Les boutons-poussoirs numérotés sont indisponibles sur le clavier Alesis dans sa configuration à la sortie d'usine.

[4]

Ce bouton cycle le vibrato/chorus monophonique comme () dans le mode lecture.

[1] ou [2] ou [3]

Ces boutons fixent la profondeur du vibrato/chorus monophonique ; la qualité son droit/vibrato/chorus choisie par le bouton 4 (ou par () en mode lecture) n'est pas altérée.

[8] ou Track < M-audio seulement :

Ce(s) bouton(s) joue(nt) le rôle du bouton |< : rappel de réglages

[9] ou Track > M-audio seulement :

Ce(s) bouton(s) joue(nt) le rôle du bouton >| : sauvegarde de réglages

Remarques diverses et dépannage

NOTA BENE : si le programme est lancé depuis un terminal, une description des modes est affichée sur la sortie d'erreur standard.

Un message au démarrage :

orgueM.sh: cannot open /dev/umidi0.0: Device busy
signifie que le programme CLAVIERm n'a pas été arrêté ; il suffit de stopper l'orgue proprement puis redémarrer ou bien d'exécuter après une interruption par Ctrl-C l'instruction :
killall CLAVIERm
et redémarrer. Pour le script orgueX.sh on doit tuer l'exécutable CLAVIERx.

Les différents exécutables communiquent à l'aide de fichiers placés dans /tmp/orgueIREM/. Au démarrage et à l'extinction, des recopies sont faites avec le contenu du répertoire orgueIREMrc pour les données à sauvegarder d'une session sur l'autre. La recompilation efface les configurations personnalisées.

Certains ports USB d'ordinateurs portables peuvent sembler moins réactifs que d'autres : si une ou plusieurs notes restent bloquées, c'est dû à une incohérence de messages MIDI. La meilleure solution est probablement de choisir de brancher la source MIDI sur une autre prise USB de l'ordinateur.

Plus on met en oeuvre d'effets, de notes simultanées ou d'harmoniques plus la masse de calculs augmente. En cas de saturation du calcul, c'est-à-dire quand la durée de calcul d'un échantillon dépasse la durée de l'échantillon, l'orgue fait une impasse et tente de se resynchroniser sur l'horloge. Chaque saturation du calcul crée un craquement dans le son. La sortie d'erreur standard affiche une ligne numérotée pour chaque occurrence de saturation du calcul. Le nombre de notes de polyphonie pour une utilisation stable est donc diminué en fonction du nombre d'effets, du nombre d'harmoniques présentes, de la répartition des grappes de notes sur le clavier (un cumul d'harmoniques sur une même note fondamentale économise du calcul) et de la puissance de calcul du processeur. Utiliser des formes d'ondes sinus et triangle seulement est plus économe en ressources. Introduire du signal crénelé ou des sinusoïdes infléchies consomme plus de calcul. Avec beaucoup d'effets et d'harmoniques, sur un processeur d'ordinateur portable, le seuil de saturation peut descendre à une vingtaine de notes simultanées.

Le fait de choisir un pli bas différent de 0 ou un pli haut différent de 127 permet non seulement de se rapprocher du comportement de certains instruments historiques, mais permet aussi de diminuer la charge de calcul.

L'orgue peut être légèrement instable lors d'un démarrage à froid quand beaucoup d'effets sont enclenchés, probablement à cause d'un engorgement de défauts de pages. Des saturations du calcul peuvent intervenir même alors qu'aucune note n'est jouée et lorsque d'autres processus mobilisent l'ordinateur ; il s'agit d'une perte de priorité du processus au profit d'autres processus simultanés sur la machine. Un redémarrage à chaud de l'orgue peut atténuer quelques problèmes.

Des saturations de calcul rares et isolées sont peu gênantes et ne pourront probablement jamais être complètement éliminées sous un système d'exploitation multitâche préemptif, à moins peut-être que l'administrateur système n'effectue un nice négatif.

L'exécutable INITjeux sert à effacer la mémoire des jeux de tirettes sauf le DO60 qui rappelle pleins jeux.

L'exécutable INITreglages sert à effacer-réinitialiser la mémoire des réglages de l'orgue.

L'exécutable TEST_ETAT teste la transformation de l'état du clavier en état de l'orgue.

Organisation générale

Le module cherche_midi.ml

contient la fonction qui détecte quel périphérique MIDI envoie effectivement des données (à condition d'en envoyer).

Le module detect.ml

contient la fonction qui détermine quel est le modèle de clavier MIDI qui envoie des données (à condition d'en envoyer suffisamment).

Le module data.ml

construit les données et fonctions universelles. Un résumé des caractéristiques principales de quelques instruments historiques y est présenté.

Le module init.ml

initialise l'orgue : crée les phases initiales des générateurs ; crée les coefficients de rotation.

Le module initJeux.ml

efface la mémoire des jeux.

Le module initReglages.ml

efface les réglages de l'orgue.

Le module clavier.ml

construit un programme sans fin qui transforme les signaux de l'entrée standard (par exemple /dev/umidi0.0) en état du clavier dans /tmp/orgueIREM/etatClavier. Le foncteur Make est à appliquer à une configuration de clavier consignée dans un fichier tel que clavierX.ml où la lettre X correspond au fabricant.

Un récapitulatif des paramètres de réglage est listé dans la suite de cette section ; le memorandum dans le fichier MEMO ou MEMOarturia rappelle toutes les commandes de l'orgue.

Les paramètres centrés par défaut sur la valeur MIDI 64 sont marqués par *. Les paramètres au maximum (valeur MIDI 127) par défaut sont marqués par +++. Les autres paramètres sont à la valeur MIDI 0 par défaut. Le niveau de sortie (swell) est à 0 au démarrage mais à 127 dans toutes les sauvegardes de réglages par défaut.

Modes ou commandes directes

<<		rappel de jeux
>>    	        enregistrement de jeux
O <<  		rappel de réglages
O >>  	     	enregistrement de réglages
|<  		rappel de réglages
>|  	     	enregistrement de réglages
8 ou Track <	rappel de réglages
9 ou Track >	enregistrement de réglages
4               vibrato/chorus mono
1, 2 ou 3       profondeur de vibrato mono
[]  		mode forme
>		mode percussion
()		mode vibrato
||		mode vibrato
O []		mode filtrage-équilibrage
O ()		mode réverbération
O ||		mode réverbération
O >		mode lecture           
O > [] >> << ()	arrêt

mode forme []

swell
* inflexion
déphasage inflexion
déphasage créneaux
niveau inflexion
niveau triangle
niveau créneaux
saturation

mode percussion >

swell
longueur de clic
* différence d'enveloppe de percu grave-aigu
* différence de niveau de percu grave-aigu
niveau de clic
enveloppe de percussion
niveau de percussion
saturation

mode vibrato ()

poussoir (entier modulo 3)

swell
différence de profondeur vibrato grave-aigu
différence de fréquence OBF vibrato grave-aigu
différence de déphasage vibrato grave-aigu
excursion vibrato
fréquence OBF vibrato
déphasage rotation
saturation

mode filtrage-équilibrage O []

swell
* diapason
octave
* rose
* coupure filtre
* timbre (équilibre grave-aigu)
* équilibre gauche-droite
saturation

mode réverbération O ()

swell
+++ délai de réverb
+++ pli haut
différence de trémolo grave-aigu
niveau de réverb
pli bas
trémolo
saturation

mode lecture O >

poussoir_mono (entier modulo 7)

Les modules alesis.ml, arturia.ml, m_audio.ml, roland.ml

contiennent des numéros de contrôleurs MIDI par défaut de différentes sources MIDI à la sortie d'usine. Le clavier Roland n'est pas directement prêt à l'usage : il faut faire quelques ajustements sur la machine selon le protocole décrit dans la page correspondante.

Les modules clavierA.ml, clavierM.ml, clavierR.ml, clavierS.ml

appliquent le foncteur Clavier.Make aux sources MIDI.

Le module etat.ml

transforme l'état du clavier de /tmp/orgueIREM/etatClavier en état de l'orgue dans /tmp/orgueIREM/etatOrgue.

Le module test_etat.ml

sert à tester le module Etat.

Le module manivelle.ml

fabrique chaque échantillon sonore en stéréo 16 bits (signés) avec 44100 points d'échantillonnage par seconde.

La taille du vecteur échantillon par défaut est 882 et peut être modifiée par recompilation.

Ces deux dernières valeurs numériques sont fixées dans le module data.ml.

Une taille d'échantillon plus longue donne un clavier moins réactif et un peu moins de charge sur le processeur, une taille plus courte facilite le jeu rapide mais est plus exigeante pour l'ordinateur.

Cette taille influence la ligne à retard utilisée pour le vibrato stéréophonique et la réverbération. (Le vibrato monophonique a une fréquence relativement élevée et une faible profondeur.) La taille d'échantillon influence aussi l'enveloppe de clic et celle de percussion.

Le parcours du signal est le suivant :

  1. générateurs, clic, effets simples et filtre :
  2. effets - chacun des deux signaux grave, aigu passe dans un cheminement :
  3. sortie - les quatre signaux grave gauche, grave droit, aigu gauche, aigu droit sont tous incorporés dans le cheminement :
La réverbération et le vibrato stéréophonique utilisent substantiellement l'échantillon précédent ; le filtre et le vibrato monophonique l'utilisent à la marge.

Le module orgue.ml

construit la boucle infinie qui ordonne la fabrication des échantillons sonores en fonction de la date. Une action stérile est faite dans l'entretemps pour garder la main : L'UTILISATION DU PROCESSEUR (OU DE L'UN DES PROCESSEURS) EST OBLIGATOIREMENT 100% même dans le cas où la génération du son charge peu la machine.

Copyright Stéphane Grognet
IREM des Pays de la Loire - Université de Nantes
Laboratoire de mathématiques Jean Leray UMR 6629 CNRS
version 0.6

Author(s): Stéphane Grognet
Version: 0.6
Since 2014