| 6 | #include "../choc/audio/choc_MIDISequence.h" |
| 7 | |
| 8 | void demonstrateMIDINoteUtilities() |
| 9 | { |
| 10 | std::cout << "\n=== MIDI Note Utilities Demo ===\n"; |
| 11 | |
| 12 | // Demonstrate NoteNumber class |
| 13 | for (int note = 60; note <= 72; ++note) |
| 14 | { |
| 15 | choc::midi::NoteNumber noteNum { static_cast<uint8_t>(note) }; |
| 16 | std::cout << "Note " << static_cast<int>(noteNum) |
| 17 | << ": " << noteNum.getNameWithOctaveNumber() |
| 18 | << " (" << noteNum.getFrequency() << " Hz)" |
| 19 | << (noteNum.isNatural() ? " [Natural]" : " [Accidental]") << "\n"; |
| 20 | } |
| 21 | |
| 22 | // Demonstrate frequency conversion |
| 23 | std::cout << "\nFrequency conversions:\n"; |
| 24 | std::cout << "A440 (note 69): " << choc::midi::noteNumberToFrequency (69) << " Hz\n"; |
| 25 | std::cout << "Middle C (note 60): " << choc::midi::noteNumberToFrequency (60) << " Hz\n"; |
| 26 | std::cout << "440 Hz -> note number: " << choc::midi::frequencyToNoteNumber (440.0f) << "\n"; |
| 27 | } |
| 28 | |
| 29 | void demonstrateMIDIMessageConstruction() |
| 30 | { |
no test coverage detected