Ce module permet de jouer des mélodies. L'implémentation permet de jouer des morceaux de musique sans monopoliser le processeur grâce à l'utilisation d'une tâche pour le cadencement de la lecture des notes et d'un timer pour la génération des sons.
Le module s'interface avec le timer par l'intermédiaire de 3 fonctions implémentées par l'utilisateur dans avrio-config.h .
La structure des sons est compatible avec BrickOs Music Studio (format BrickOS 2.0) et permet donc de jouer des fichiers midi.
|
#define | EIGHTH 2 |
| Durée 1/8 de note (en 1/16 de note)
|
|
#define | HALF 8 |
| Durée 1/2 de note (en 1/16 de note)
|
|
#define | MELODY_BEEP 0 |
| Index du beep dans la table système.
|
|
#define | MELODY_ERROR 3 |
| Index du son d'erreur dans la table système.
|
|
#define | MELODY_SYS_MAX 4 |
| Nombre de sons dans la table système.
|
|
#define | MELODY_WARNING 2 |
| Index du son d'incident dans la table système.
|
|
#define | MELODY_WELCOME 1 |
| Index du son de bienvenue dans la table système.
|
|
#define | QUARTER 4 |
| Durée 1/4 de note (en 1/16 de note)
|
|
#define | WHOLE 16 |
| Durée d'une note (en 1/16 de note)
|
|
|
typedef struct xNote | xNote |
|
void vMelodyInit |
( |
uint8_t |
xDuration, |
|
|
uint8_t |
xInternote |
|
) |
| |
Initialise le module son.
- Paramètres
-
xDuration | durée en ms du 1/16 ième de note (plus petite durée) |
xInternote | durée en ms du silence entre notes |
- Exemples:
- output/melody/demo_melody.c.
void vMelodyPause |
( |
bool |
xPause | ) |
|
Met en pause ou reprend la lecture d'un morceau.
- Paramètres
-
xPause | true pour mettre en pause, false pour reprendre |
void vMelodyPlay |
( |
const xNote * |
xMelody | ) |
|
Joue une suite de notes (un morceau de musique) résidant en RAM.
- Paramètres
-
xMelody | pointeur en RAM vers le morceau |
void vMelodyPlayFlash |
( |
const xNote * |
xMelody | ) |
|
Joue un morceau de musique résidant en FLASH.
- Paramètres
-
xMelody | pointeur en FLASH vers le morceau |
- Exemples:
- output/melody/demo_melody.c.
void vMelodyPlaySystem |
( |
uint8_t |
ucIndex | ) |
|
Joue un morceau de la table des sons système Le module dispose par défaut de 4 sons.
- Paramètres
-
ucIndex | index du morceau dans la table des sons système |
- Exemples:
- output/melody/demo_melody.c.
void vMelodySetDuration |
( |
uint8_t |
xDuration | ) |
|
Modifie la durée du 1/16 ième de note.
- Paramètres
-
xDuration | durée en ms du 1/16 ième de note |
void vMelodySetInternote |
( |
uint8_t |
xInternote | ) |
|
Modifie la durée de l'espace internote (soustrait de la durée de note)
Mettre 0 pour un legato parfait
- Paramètres
-
internote | durée en ms du silence entre notes |
bool xMelodyIsPlay |
( |
void |
| ) |
|