-
Notifications
You must be signed in to change notification settings - Fork 0
/
LFO.h
63 lines (61 loc) · 2 KB
/
LFO.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
/*! \file LFO.h
* @author Sylvain Filteau <[email protected]>
* @author Philippe Tremblay <[email protected]>
* @date avril 2004
* @version 1.0
*
* \brief Entête de la classe CLFO
*/
#pragma once
const int LFOSIN = 1; //!< Constante qui définit un LFO sinusoïdale
const int LFOTRIANGLE = 2; //!< Constante qui définit un LFO triangulaire
/*! \brief Classe qui génère un signal LFO (Low Frequency Oscillator)
*
* la classe génère une courbe soit triangulaire ou
* sinusoïdale avec comme minimum 0 et maximum 1 avec
* une grandeur de cycle donnée par l'utilisateur.
*/
class CLFO
{
public:
/*! \brief Constructeur de la classe.
*
* @param intlfoType Type de la courbe du LFO (LFOTRIANGLE, LFOSIN).
* @param intphase La grandeur d'un cycle.
*
* La classe génère toutes les valeurs de la courbe et les
* stock dans un vecteur. Pour accèder aux valeurs, il faut utiliser
* la méthode getNextValeur().
*/
CLFO(int intlfoType, int intphase);
//! \brief Destructeur de la classe.
~CLFO(void);
/*! \brief Propriété qui fournit la phase.
*
* @return Retourne la grandeur du cycle.
*/
int getPhase();
/*! \brief Propriété qui fournit le type du LFO.
*
* @return Retourne LFOTRIANGLE ou LFOSIN.
*/
int getLfoType();
/*! \brief Propriété qui retourne la prochaine valeur du LFO.
*
* @return La valeur du LFO à la poisition du pointeur.
*/
float getNextValeur();
//! \brief Méthode qui reset le pointeur de la valeur du LFO.
void Reset();
//! \brief Méthode qui retourne la valeur actuelle du LFO.
float getCurrentValue();
private:
//! \brief Méthode qui génère la courbe de forme Sinusoïdale.
void Sinus(void);
//! \brief Méthode qui génère la courbe de forme Triangulaire.
void Triangle(void);
int m_intlfoType; //!< Donnée membre qui donne le type du LFO.
int m_intphase; //!< Donnée membre qui donne la grandeur du cycle.
float* m_fltvaleurs; //!< Vecteur de la longueur de la phase qui stock la courbe.
int m_intposition; //!< Compteur qui définit où on est rendu dans la lecture du LFO
};