main.py 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. #!/usr/bin/python
  2. from serpentgame import SerpentAPCMini, setRealtime
  3. from apcmini import APCMini
  4. from paintpad import PaintPad
  5. from simplemidi.midiio import MidiInputPort, MidiOutputPort
  6. from simplemidi.midiplayer import MidiPlayer
  7. from padhelper import PadHelper
  8. from syncpadhelper import SyncPadHelper
  9. from simplemidi.alsaconnector import AlsaConnector
  10. import time
  11. import sys
  12. import rtmidi
  13. from simplemidi.options import *
  14. from simplemidi.midieventtrigger import *
  15. #path="/home/fanch/Documents/tabs/Misc Children - Twinkle Twinkle Little Star2.mid"
  16. #path="/home/fanch/Documents/tabs/Johann Pachelbel - Canon In D (ver 6 by Ezechiel).mid"
  17. path="/home/fanch/Documents/tabs/Misc Traditional - Katyusha.mid"
  18. #path="/home/fanch/Documents/tabs/JerryC - Canon Rock.mid"
  19. """
  20. if __name__=="__main__":
  21. #
  22. m=MidiPlayer(path)
  23. m.setBpmRatio(1)
  24. m.transpose(-12)
  25. input("Press Enter to continue...")
  26. #m.connect((28,0))
  27. m.play()
  28. """
  29. def _test_midiPlayer():
  30. m=MidiPlayer(path,{})
  31. m.setBpmRatio(1)
  32. m.transpose(48)
  33. input("...")
  34. m.play()
  35. def _test_syncPadHelper():
  36. m = SyncPadHelper(APCMini(), path, {
  37. 'transpose': 24,
  38. 'pad_translate' : -24
  39. })
  40. m.setBpmRatio(1)
  41. m.setPadTrack(1)
  42. input("...")
  43. m.play()
  44. def _test_padHelper():
  45. m = PadHelper(APCMini(), path, {})
  46. m.setBpmRatio(1)
  47. m.setPadTrack(1)
  48. m.setPadTranslate(0)
  49. m.transpose(0)
  50. input("...")
  51. m.play()
  52. def _test_paintPad():
  53. apc=APCMini()
  54. jeu=PaintPad(apc, {})
  55. jeu.start()
  56. def _test_serpent():
  57. apc=APCMini()
  58. #setRealtime()
  59. jeu = SerpentAPCMini(apc)
  60. jeu.waitForInput()
  61. jeu.loadingScreen(2)
  62. jeu.start()
  63. jeu.close()
  64. def testCb(x, y):
  65. print("Trigger : ", x)
  66. def testTrigger():
  67. t=MidiMultiTrigger()
  68. ip=MidiInputPort({'port_name': 'In'})
  69. ip.open()
  70. ip.connect((28,0))
  71. op=MidiInputPort({'port_name': 'Out'})
  72. op.open()
  73. op.connect((28,0))
  74. t.addTrigger(1, (MidiEventTrigger.NOTE, (16,32), None, False))
  75. while True:
  76. evt=ip.getSync()
  77. print(t.filter(evt, op))
  78. if __name__=="__main__":
  79. n=6
  80. if len(sys.argv)>1: n=int(sys.argv[1])
  81. if n==0: testTrigger()
  82. if n==1: _test_syncPadHelper()
  83. if n==2: _test_padHelper()
  84. if n==3: _test_midiPlayer()
  85. if n==4: _test_paintPad()
  86. if n==5: _test_serpent()
  87. if n==5: _test_()