Enveloppe d'Amplitude ADSR
Pour le moment nous générons un son de la manière suivante :
Ce qui entraine une coupure abrupte du son.
Une enveloppe d’amplitude permet de moduler l’amplitude du signal au cours du temps.
Nous pouvons considérer l’enveloppe ADSR simplifiée ci dessous :
- A ttack
- D ecay
- S ustain
- R elease
Q1. Proposer une mise en oeuvre de l’enveloppe ADSR ci-dessus, faisant apparaitre une machine d’états ( switch case en langage C ).
REMARQUE : L’appui sur une autre touche au cours de la séquence ADSR doit interrompre la séquence en cours pour exécuter la nouvelle ( en passant par la phase release pour ne pas couper le son trop brusquement ).
Au cours du jeu, la séquence NOTE ON- NOTE OFF ne se succède pas forcément pour une même note ( on peut maintenir enfoncée une touche alors qu’on appuie sur la suivante ).
Q2. Proposer une modification de la machine d’état afin de générer l’enveloppe ADSR pour la dernière touche appuyée.