MCPcopy Create free account
hub / github.com/Tracktion/choc / createSimpleMIDISequence

Function createSimpleMIDISequence

examples/midi_file_processing.cpp:48–87  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

46}
47
48void createSimpleMIDISequence()
49{
50 std::cout << "\n=== MIDI Sequence Creation Demo ===\n";
51
52 choc::midi::Sequence sequence;
53
54 // Create a simple melody: C-D-E-F-G (major scale)
55 std::vector<uint8_t> notes = {60, 62, 64, 65, 67}; // C4, D4, E4, F4, G4
56 double currentTime = 0.0;
57
58 for (auto note : notes)
59 {
60 // Note on
61 choc::midi::LongMessage noteOn (0x90, note, 80);
62 sequence.events.push_back ({currentTime, noteOn});
63
64 // Note off after 0.5 seconds
65 choc::midi::LongMessage noteOff (0x80, note, 0);
66 sequence.events.push_back ({currentTime + 0.5, noteOff});
67
68 currentTime += 0.5; // Move to next half second
69 }
70
71 std::cout << "Created sequence with " << sequence.events.size() << " events\n";
72
73 if (! sequence.events.empty())
74 {
75 auto lastEvent = sequence.events.back();
76 std::cout << "Duration: " << lastEvent.timeStamp << " seconds\n";
77 }
78
79 // Print all events
80 std::cout << "\nSequence events:\n";
81
82 for (const auto& event : sequence.events)
83 {
84 const auto& msg = event.message;
85 std::cout << "Time " << event.timeStamp << "s: " << msg.getDescription() << "\n";
86 }
87}
88
89void demonstrateMIDIFileIO()
90{

Callers 1

mainFunction · 0.85

Calls 5

backMethod · 0.80
push_backMethod · 0.45
sizeMethod · 0.45
emptyMethod · 0.45
getDescriptionMethod · 0.45

Tested by

no test coverage detected