Changeset 1854:0a8a71892f5e in roaraudio


Ignore:
Timestamp:
05/23/09 11:33:57 (15 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

added basic MIDI Note IDs to lookup table, added very basic search function

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • include/libroardsp/midi.h

    r1105 r1854  
    7272char         * roar_midi_note2name   (uint16_t note); 
    7373uint16_t       roar_midi_name2note   (char * note); 
     74uint16_t       roar_midi_midi2note   (unsigned char midiid); 
    7475float          roar_midi_note2freq   (uint16_t note); 
    7576 
  • libroardsp/midi.c

    r1679 r1854  
    2727struct { 
    2828 uint16_t id; 
     29 unsigned char midiid; 
    2930 float freq; 
    3031 char * name; 
    3132} _libroar_notes[] = { 
    32  {ROAR_MIDI_NOTE_C , 261.625565, "C"}, 
    33  {ROAR_MIDI_NOTE_Cs, 277.182631, "C#"}, 
    34  {ROAR_MIDI_NOTE_D , 293.664768, "D"}, 
    35  {ROAR_MIDI_NOTE_Ds, 311.126984, "D#"}, 
    36  {ROAR_MIDI_NOTE_E , 329.627557, "E"}, 
    37  {ROAR_MIDI_NOTE_F , 349.228231, "F"}, 
    38  {ROAR_MIDI_NOTE_Fs, 369.994423, "F#"}, 
    39  {ROAR_MIDI_NOTE_G , 391.995436, "G"}, 
    40  {ROAR_MIDI_NOTE_Gs, 415.304698, "G#"}, 
    41  {ROAR_MIDI_NOTE_A , 440.000000, "A"}, 
    42  {ROAR_MIDI_NOTE_As, 466.163762, "A#"}, 
    43  {ROAR_MIDI_NOTE_B , 493.883301, "B"}, 
    44  {0, 0, NULL} 
     33 {ROAR_MIDI_NOTE_C , 60, 261.625565, "C" }, 
     34 {ROAR_MIDI_NOTE_Cs, 61, 277.182631, "C#"}, 
     35 {ROAR_MIDI_NOTE_D , 62, 293.664768, "D" }, 
     36 {ROAR_MIDI_NOTE_Ds, 63, 311.126984, "D#"}, 
     37 {ROAR_MIDI_NOTE_E , 64, 329.627557, "E" }, 
     38 {ROAR_MIDI_NOTE_F , 65, 349.228231, "F" }, 
     39 {ROAR_MIDI_NOTE_Fs, 66, 369.994423, "F#"}, 
     40 {ROAR_MIDI_NOTE_G , 67, 391.995436, "G" }, 
     41 {ROAR_MIDI_NOTE_Gs, 68, 415.304698, "G#"}, 
     42 {ROAR_MIDI_NOTE_A , 69, 440.000000, "A" }, 
     43 {ROAR_MIDI_NOTE_As, 70, 466.163762, "A#"}, 
     44 {ROAR_MIDI_NOTE_B , 71, 493.883301, "B" }, 
     45 {0, 0, 0, NULL} 
    4546}; 
    4647 
     
    6061 for (i = 0; _libroar_notes[i].name != NULL; i++) 
    6162  if ( strcasecmp(_libroar_notes[i].name, note) == 0 ) 
     63   return _libroar_notes[i].id; 
     64 
     65 return ROAR_MIDI_NOTE_NONE; 
     66} 
     67 
     68uint16_t       roar_midi_midi2note   (unsigned char midiid) { 
     69 int i; 
     70 
     71 for (i = 0; _libroar_notes[i].name != NULL; i++) 
     72  if ( _libroar_notes[i].midiid == midiid ) 
    6273   return _libroar_notes[i].id; 
    6374 
Note: See TracChangeset for help on using the changeset viewer.