Création module mélodie, ajout d'un module dans la TODO liste...
This commit is contained in:
parent
392c1c25b5
commit
2ad7ba464c
|
@ -17,4 +17,5 @@ documentation/latex/refman.pdf
|
||||||
documentation/latex/refman.toc
|
documentation/latex/refman.toc
|
||||||
sources/motifs/.motifs.c.swp
|
sources/motifs/.motifs.c.swp
|
||||||
sources/motifs/.motifs.h.swp
|
sources/motifs/.motifs.h.swp
|
||||||
sources/motifs/motifs.o
|
sources/motifs/motifs.o
|
||||||
|
sources/melodie/melodie.o
|
|
@ -1,4 +1,4 @@
|
||||||
samples.h
|
samples.h
|
||||||
— ajouterSample
|
— ajouterSample
|
||||||
— supprimerSample
|
— supprimerSample
|
||||||
— previsualiserSample
|
— previsualiserSample
|
||||||
|
@ -18,28 +18,28 @@ instruments.h
|
||||||
— definirBalance
|
— definirBalance
|
||||||
— definirVolume
|
— definirVolume
|
||||||
|
|
||||||
motifs.h (en cours)
|
motifs.h (en attente)
|
||||||
— ajouterMotif (ok)
|
— ajouterMotif (ok)
|
||||||
— supprimerMotif (ok)
|
— supprimerMotif (ok)
|
||||||
— ajouterNote (ok)
|
— ajouterNote (ok)
|
||||||
— modifierNote (à venir)
|
— modifierNote (ok)
|
||||||
— supprimerNote (ok)
|
— supprimerNote (ok)
|
||||||
— definirRefMotif (attente de l'IG)
|
— definirRefMotif (ok)
|
||||||
— definirNbTemps (idem)
|
— definirNbTemps (après le proto)
|
||||||
— definirCommentaire (idem)
|
— definirNom (ok)
|
||||||
— definirBoucle (idem)
|
|
||||||
|
|
||||||
melodie.h
|
melodie.h (en attente)
|
||||||
— motifPrecedent
|
— definirCourant (ok)
|
||||||
— motifSuivant
|
— calculerTemps (en secondes) (ça viendra)
|
||||||
|
— definirModeEdition (pareil)
|
||||||
|
— definirIntrument (ça demande des connaissance en Glade, ça...)
|
||||||
|
— definirBPM (idem)
|
||||||
|
— definirNbTicks (itou)
|
||||||
|
|
||||||
|
lecture.h
|
||||||
|
— lireNote
|
||||||
— lireMelodie
|
— lireMelodie
|
||||||
— calculerTemps (en secondes)
|
— Stop
|
||||||
— definirNote
|
|
||||||
— definirEffet
|
|
||||||
— definirModeEdition
|
|
||||||
— definirIntrument
|
|
||||||
— definirBPM
|
|
||||||
— definirNbTicks
|
|
||||||
— exportSon
|
— exportSon
|
||||||
|
|
||||||
effets.h
|
effets.h
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
#include "melodie.h"
|
||||||
|
|
||||||
|
void afficherListeMelodie(){
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
void affocherListeMotifs(){
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
void afficherMotifActuel(){
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
void definirCourant(int i){
|
||||||
|
courant = i;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ajouterMotifVirtuel(){
|
||||||
|
for (int i = taille; i > courant; i--) {
|
||||||
|
melodie[i] = melodie[i-1];
|
||||||
|
}
|
||||||
|
taille++;
|
||||||
|
melodie[courant] = liste;
|
||||||
|
}
|
||||||
|
|
||||||
|
void definirMotifVirtuel(Motif* m){
|
||||||
|
melodie[courant] = m;
|
||||||
|
}
|
||||||
|
|
||||||
|
void supprimerMotifVirtuel(){
|
||||||
|
taille--;
|
||||||
|
for (int i = courant; i < taille; i--) {
|
||||||
|
melodie[i] = melodie[i+1];
|
||||||
|
}
|
||||||
|
}
|
|
@ -3,7 +3,30 @@
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include "../motifs/motifs.h"
|
||||||
|
|
||||||
|
#define MAX_PATTERNS 256
|
||||||
|
|
||||||
|
Motif* melodie[MAX_PATTERNS] = {NULL};
|
||||||
|
|
||||||
|
int courant = 0;
|
||||||
|
|
||||||
|
int taille = 0;
|
||||||
|
|
||||||
|
// Les trois fonctions suivantes servent au couplage avec la GUI.
|
||||||
|
|
||||||
|
void afficherListeMelodie();
|
||||||
|
|
||||||
|
void afficherListeMotifs();
|
||||||
|
|
||||||
|
void afficherMotifActuel();
|
||||||
|
|
||||||
|
void definirCourant(int i);
|
||||||
|
|
||||||
|
void ajouterMotifVirtuel();
|
||||||
|
|
||||||
|
void definirMotifVirtuel(Motif* m);
|
||||||
|
|
||||||
|
void supprimerMotifVirtuel();
|
||||||
|
|
||||||
#endif
|
#endif
|
|
@ -9,9 +9,9 @@ int getIdMotif(Motif* m){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ajouterMotif(int nbrPortees, int nbrTmp){
|
void ajouterMotif(){
|
||||||
Motif* m = malloc(sizeof(Motif));
|
Motif* m = malloc(sizeof(Motif));
|
||||||
m->nbrTmp = nbrTmp;
|
m->nbrTmp = DEFNBRTMP;
|
||||||
m->suivant = liste;
|
m->suivant = liste;
|
||||||
m->motif = malloc(nbrPortees*sizeof(Portee));
|
m->motif = malloc(nbrPortees*sizeof(Portee));
|
||||||
char* nombre = NULL;
|
char* nombre = NULL;
|
||||||
|
@ -19,12 +19,12 @@ void ajouterMotif(int nbrPortees, int nbrTmp){
|
||||||
m->nom = strcat("Motif ", nombre);
|
m->nom = strcat("Motif ", nombre);
|
||||||
int i;
|
int i;
|
||||||
for (i=0; i<nbrPortees; i++) {
|
for (i=0; i<nbrPortees; i++) {
|
||||||
m->motif[i] = calloc(nbrTmp,sizeof(Note));
|
m->motif[i] = calloc(DEFNBRTMP,sizeof(Note));
|
||||||
}
|
}
|
||||||
liste = m;
|
liste = m;
|
||||||
}
|
}
|
||||||
|
|
||||||
void definirNomMotif(char* nom, Motif* m){
|
void definirNomMotif(Motif* m, char* nom){
|
||||||
m->nom = nom;
|
m->nom = nom;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,8 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#define DEFNBRTMP 16
|
||||||
|
|
||||||
typedef struct _note{
|
typedef struct _note{
|
||||||
int note;
|
int note;
|
||||||
int octave;
|
int octave;
|
||||||
|
@ -18,20 +20,22 @@ typedef struct _motif{
|
||||||
char* nom;
|
char* nom;
|
||||||
int nbrTmp;
|
int nbrTmp;
|
||||||
Portee* motif;
|
Portee* motif;
|
||||||
struct _motif* suivant;
|
struct _motif* suivant;
|
||||||
} Motif;
|
} Motif;
|
||||||
|
|
||||||
Motif* liste = NULL;
|
Motif* liste = NULL;
|
||||||
|
|
||||||
int nbrTmp = 16;
|
|
||||||
|
|
||||||
int nbrPortees = 4;
|
int nbrPortees = 4;
|
||||||
|
|
||||||
int getIdMotif(Motif* m);
|
int getIdMotif(Motif* m);
|
||||||
|
|
||||||
void ajouterMotif(int nbrPortees, int nbrTmp);
|
void ajouterMotif();
|
||||||
|
|
||||||
void definirNomMotif(char* nom, Motif* m);
|
void definirNomMotif(Motif* m, char* nom);
|
||||||
|
|
||||||
|
// void definirNbrTmp(Motif* m, int nbrTmp);
|
||||||
|
// C'est chiant de changer le nomre de temps en cours de route,
|
||||||
|
// donc on le fera après le proto.
|
||||||
|
|
||||||
void supprimerMotif(Motif** cellule); // cellule correspond à l'adresse de l'élément de la liste (avec &)
|
void supprimerMotif(Motif** cellule); // cellule correspond à l'adresse de l'élément de la liste (avec &)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue