Module Doc.Manivelle (.ml)

module Manivelle: sig .. end


Description

Chaque échantillon est fabriqué en fonction des informations retournées par Etat.etat.

La construction du vecteur rose devrait éviter toute saturation pour une note quelconque avec toutes les harmoniques au maximum si aucun effet n'est appliqué.

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

val signe : float -> float
signe nombre

Parameters:
() : float
val tronque : float -> float
tronque nombre

Parameters:
() : float
val carre : float -> float
carre nombre

Parameters:
() : float
val carre_signe : float -> float
carre_signe nombre

Parameters:
() : float
val deforme : int -> float -> float
deforme exposant nombre

Parameters:
() : int
() : float
val inflexion : float -> float -> float
inflexion parametre nombre

Parameters:
() : float
() : float
val detricote_centre : float -> float -> float * float
detricote_centre somme difference

Parameters:
() : float
() : float
val detricote : float -> float -> float * float
detricote somme difference

Parameters:
() : float
() : float
val renverse : float array -> float array
renverse vecteur

Parameters:
() : float array
val percussion : float -> float -> float -> float array -> unit
percussion detache enveloppe niveau echantillon

Parameters:
() : float
() : float
() : float
() : float array
val sauvegarde : float array -> string -> unit
sauvegarde echantillon adresse

Parameters:
() : float array
() : string
val reverb : float -> float -> float array -> float array -> unit
reverb delai niveau precedent_echantillon echantillon

Parameters:
() : float
() : float
() : float array
() : float array

Les vibratos sont obtenus en balayant la ligne à retard constituée de la juxtaposition de l'échantillon précédent et de l'échantillon en cours.

On notera dans les fonctions vibrato_mono et vibrato que l'interpolation angulaire de l'amplitude du signal entre deux indices successifs rappelle la conception du scanner de vibrato Hammond par couplage capacitif et atténue les effets de la discrétisation.

val vibrato_mono : float ->
float ->
float ->
float array -> float array -> float array -> float array -> float array
vibrato_mono poussoir_vc expression cosinu sinus phase_vc phase_finale_vc precedent_echantillon echantillon
La fréquence de balayage est fixée à 412 cycles par minute (voir data.ml). La profondeur de balayage est faible et ne peut prendre que trois valeurs.
Parameters:
() : float
() : float
() : float
() : float array
() : float array
() : float array
() : float array
val vibrato : float ->
float ->
float ->
float ->
float ->
float array ->
float array ->
float array ->
float array ->
float array ->
float array -> float array -> float array -> float array * float array
vibrato poussoir_vc tremolo expression basse_frequence dephasage cos_rot sin_rot phase_bf phase_finale_bf phase_bf_1 phase_finale_bf_1 precedent_echantillon echantillon
L'oscillateur très basse fréquence est obtenu par battement entre oscillateurs de deux notes BF successives. Les générateurs pour les basses fréquences ont des fréquences environ 13 fois inférieures par rapport aux générateurs de notes de l'orgue (voir data.ml). Le battement multiplie la fréquence des générateurs BF par environ 0.06, c'est-à-dire la divise par environ 15 (une rotation précise à très basse fréquence est inaccessible sans cet artifice : on descend jusqu'à 40 milliHertz). La rotation stéréophonique est obtenue en combinant un retard déphasé pour le vibrato de la voie droite. Une variation d'enveloppe (trémolo) est possible, en phase avec l'amplitude de balayage.
Parameters:
() : float
() : float
() : float
() : float
() : float
() : float array
() : float array
() : float array
() : float array
() : float array
() : float array
() : float array
() : float array
val filtre : float -> float array -> float array -> float array * float array
filtre coupure echantillon

Parameters:
() : float
() : float array
() : float array
val manivelle : int Pervasives.ref -> Pervasives.out_channel -> unit
manivelle polyphonie canal_de_sortie

Parameters:
() : int Pervasives.ref
oc : Pervasives.out_channel