beat-sequence-player.cpp 1.4 KB

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