11#include <promeki/config.h>
12#if PROMEKI_ENABLE_MUSIC
17PROMEKI_NAMESPACE_BEGIN
32 static constexpr int NumNotes = 128;
35 MidiNoteNames() =
default;
43 String name(MidiNote note)
const {
44 if (!note.isValid())
return String();
45 const String &n = _names[note.rawValue()];
46 if (!n.isEmpty())
return n;
51 void setName(MidiNote note,
const String &name) {
52 if (note.isValid()) _names[note.rawValue()] = name;
56 void clearName(MidiNote note) {
57 if (note.isValid()) _names[note.rawValue()] = String();
61 bool hasName(MidiNote note)
const {
62 if (!note.isValid())
return false;
63 return !_names[note.rawValue()].isEmpty();
67 static MidiNoteNames gmPercussion();
70 Array<String, NumNotes> _names;