beat-sequence-player.cpp 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #include "BeatSequencePlayer.h"
  2. using namespace std;
  3. using namespace midi;
  4. int main()
  5. {
  6. Output out;
  7. out.openVirtualPort();
  8. const int base = 54;
  9. BeatSequence s;
  10. s.resize(8);
  11. s[0].push_back(std::make_shared<NoteOnMessage>(0, base + 0 + 0, 127));
  12. s[0].push_back(std::make_shared<NoteOnMessage>(0, base + 0 + 4, 127));
  13. s[0].push_back(std::make_shared<NoteOnMessage>(0, base + 0 + 7, 127));
  14. s[2].push_back(std::make_shared<NoteOnMessage>(0, base + 7 + 0, 127));
  15. s[2].push_back(std::make_shared<NoteOnMessage>(0, base + 7 + 4, 127));
  16. s[2].push_back(std::make_shared<NoteOnMessage>(0, base + 7 + 7, 127));
  17. s[4].push_back(std::make_shared<NoteOnMessage>(0, base + 9 + 0, 127));
  18. s[4].push_back(std::make_shared<NoteOnMessage>(0, base + 9 + 3, 127));
  19. s[4].push_back(std::make_shared<NoteOnMessage>(0, base + 9 + 7, 127));
  20. s[6].push_back(std::make_shared<NoteOnMessage>(0, base + 5 + 0, 127));
  21. s[6].push_back(std::make_shared<NoteOnMessage>(0, base + 5 + 4, 127));
  22. s[6].push_back(std::make_shared<NoteOnMessage>(0, base + 5 + 7, 127));
  23. BeatSequencePlayer p(&out, &s);
  24. p.loop();
  25. while(true) {
  26. BeatSequencePlayer::Bpm bpm;
  27. cin >> bpm;
  28. if(bpm == 0) {
  29. p.stop();
  30. break;
  31. }
  32. p.setBpm(bpm);
  33. }
  34. return 0;
  35. }