ponytracker/sources/instruments/instruments.h

57 lines
1.1 KiB
C

/**
* @file instruments.h
*
* Gestion des instruments
*
* @version 1
* @author Guy
* @date Mai 2014
*/
#ifndef _instruments_h
#define _instruments_h
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include "../samples/samples.h"
typedef struct _enveloppe {
unsigned long int tmp; // axe des temps (abscisse sur le graphe de l'enveloppe)
int volume; // axe du volume (ordonnée sur le graphe de l'enveloppe)
struct _enveloppe* suite;
} Enveloppe;
typedef struct _intrument {
Sample* sample;
Enveloppe enveloppe;
int balance;
int volume;
char nom[20];
} Instrument;
void ajouterInstrument(Instrument* tab[], int i);
void supprimerInstrument(Instrument* tab[], int i);
int getVolume(Instrument* inst);
int getBalance(Instrument* inst);
char* getNomInst(Instrument* inst);
void setVolume(Instrument* inst, int volume);
void setBalance(Instrument* inst, int balance);
void setNomInst(Instrument* inst, char* nom);
/*
* Cette fonction prend une note et une octave en paramètre et renvoie la valeur à entrer dans le pitch shifter.
*/
float rapportPitch(Instrument* inst, int note, int octave);
#endif