source: roaraudio/include/libroardsp/midi.h @ 367:0216492669e8

Last change on this file since 367:0216492669e8 was 367:0216492669e8, checked in by phi, 16 years ago

done a lot basic midi things

File size: 1.3 KB
Line 
1//midi.h:
2
3#ifndef _LIBROARMIDI_H_
4#define _LIBROARMIDI_H_
5
6#include "libroar.h"
7#include <math.h>
8
9#define ROAR_MIDI_NOTE_NONE -1
10
11#define ROAR_MIDI_NOTE_C  26162
12#define ROAR_MIDI_NOTE_Cs 27718
13#define ROAR_MIDI_NOTE_D  29366
14#define ROAR_MIDI_NOTE_Ds 31112
15#define ROAR_MIDI_NOTE_E  32962
16#define ROAR_MIDI_NOTE_F  34922
17#define ROAR_MIDI_NOTE_Fs 36999
18#define ROAR_MIDI_NOTE_G  39199
19#define ROAR_MIDI_NOTE_Gs 41530
20#define ROAR_MIDI_NOTE_A  44000
21#define ROAR_MIDI_NOTE_As 46616
22#define ROAR_MIDI_NOTE_B  49388
23
24#define ROAR_MIDI_MAX_NOTENAME_LEN (1+8)
25
26#define ROAR_MIDI_TYPE_SINE 1
27
28struct roar_note_octave {
29 uint16_t       note;
30 char           name[ROAR_MIDI_MAX_NOTENAME_LEN+1];
31 int            octave;
32 float          freq;
33 int            len_mul;
34 int            len_div;
35};
36
37
38char         * roar_midi_note2name   (uint16_t note);
39uint16_t       roar_midi_name2note   (char * note);
40float          roar_midi_note2freq   (uint16_t note);
41
42//int            roar_midi_free_no     (struct roar_note_octave * note);
43
44int            roar_midi_find_octave (char * note);
45int            roar_midi_add_octave  (struct roar_note_octave * note);
46int            roar_midi_notefill    (struct roar_note_octave * note);
47
48int            roar_midi_gen_tone    (struct roar_note_octave * note, int16_t * samples, float t, int rate, int channels, int type, void * opts);
49
50#endif
51
52//ll
Note: See TracBrowser for help on using the repository browser.