Collection of tools useful for audio production
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

152 lines
5.3KB

  1. /* -*- Mode: C ; c-basic-offset: 2 -*- */
  2. /*****************************************************************************
  3. *
  4. * DESCRIPTION:
  5. *
  6. *
  7. * NOTES:
  8. *
  9. *
  10. *****************************************************************************/
  11. #include "caitlib.h"
  12. #include <unistd.h>
  13. int main()
  14. {
  15. CaitlibHandle handle = caitlib_init("test");
  16. const uint32_t port = caitlib_create_port(handle, "midi-outX");
  17. int sampleRate = 44100; //jack_get_sample_rate(client);
  18. int m = sampleRate/1000; // whatever
  19. // 0 Par ch=1 c=7 v=99
  20. // 0 Par ch=1 c=10 v=63
  21. // 0 Par ch=1 c=0 v=0
  22. caitlib_put_control(handle, port, 0*m, 0, 7, 99);
  23. caitlib_put_control(handle, port, 0*m, 0, 10, 63);
  24. caitlib_put_control(handle, port, 0*m, 0, 0, 0);
  25. // 0 PrCh ch=1 p=0 -- TODO jack_midi_put_program()
  26. // 0 On ch=1 n=64 v=90
  27. // 325 Off ch=1 n=64 v=90
  28. // 384 On ch=1 n=62 v=90
  29. // 709 Off ch=1 n=62 v=90
  30. // 768 On ch=1 n=60 v=90
  31. // 1093 Off ch=1 n=60 v=90
  32. caitlib_put_note_on(handle, port, 0*m, 0, 64, 90);
  33. caitlib_put_note_off(handle, port, 325*m, 0, 64, 90);
  34. caitlib_put_note_on(handle, port, 384*m, 0, 62, 90);
  35. caitlib_put_note_off(handle, port, 709*m, 0, 62, 90);
  36. caitlib_put_note_on(handle, port, 768*m, 0, 60, 90);
  37. caitlib_put_note_off(handle, port, 1093*m, 0, 60, 90);
  38. // 1152 On ch=1 n=62 v=90
  39. // 1477 Off ch=1 n=62 v=90
  40. // 1536 On ch=1 n=64 v=90
  41. // 1861 Off ch=1 n=64 v=90
  42. // 1920 On ch=1 n=64 v=90
  43. // 2245 Off ch=1 n=64 v=90
  44. caitlib_put_note_on(handle, port, 1152*m, 0, 62, 90);
  45. caitlib_put_note_off(handle, port, 1477*m, 0, 62, 90);
  46. caitlib_put_note_on(handle, port, 1536*m, 0, 64, 90);
  47. caitlib_put_note_off(handle, port, 1861*m, 0, 64, 90);
  48. caitlib_put_note_on(handle, port, 1920*m, 0, 64, 90);
  49. caitlib_put_note_off(handle, port, 2245*m, 0, 64, 90);
  50. // 2304 On ch=1 n=64 v=90
  51. // 2955 Off ch=1 n=64 v=90
  52. // 3072 On ch=1 n=62 v=90
  53. // 3397 Off ch=1 n=62 v=90
  54. // 3456 On ch=1 n=62 v=90
  55. // 3781 Off ch=1 n=62 v=90
  56. caitlib_put_note_on(handle, port, 2304*m, 0, 64, 90);
  57. caitlib_put_note_off(handle, port, 2955*m, 0, 64, 90);
  58. caitlib_put_note_on(handle, port, 3072*m, 0, 62, 90);
  59. caitlib_put_note_off(handle, port, 3397*m, 0, 62, 90);
  60. caitlib_put_note_on(handle, port, 3456*m, 0, 62, 90);
  61. caitlib_put_note_off(handle, port, 3781*m, 0, 62, 90);
  62. // 3840 On ch=1 n=62 v=90
  63. // 4491 Off ch=1 n=62 v=90
  64. // 4608 On ch=1 n=64 v=90
  65. // 4933 Off ch=1 n=64 v=90
  66. // 4992 On ch=1 n=67 v=90
  67. // 5317 Off ch=1 n=67 v=90
  68. caitlib_put_note_on(handle, port, 3840*m, 0, 62, 90);
  69. caitlib_put_note_off(handle, port, 4491*m, 0, 62, 90);
  70. caitlib_put_note_on(handle, port, 4608*m, 0, 64, 90);
  71. caitlib_put_note_off(handle, port, 4933*m, 0, 64, 90);
  72. caitlib_put_note_on(handle, port, 4992*m, 0, 67, 90);
  73. caitlib_put_note_off(handle, port, 5317*m, 0, 67, 90);
  74. // 5376 On ch=1 n=67 v=90
  75. // 6027 Off ch=1 n=67 v=90
  76. // 6144 On ch=1 n=64 v=90
  77. // 6469 Off ch=1 n=64 v=90
  78. // 6528 On ch=1 n=62 v=90
  79. // 6853 Off ch=1 n=62 v=90
  80. caitlib_put_note_on(handle, port, 5376*m, 0, 67, 90);
  81. caitlib_put_note_off(handle, port, 6027*m, 0, 67, 90);
  82. caitlib_put_note_on(handle, port, 6144*m, 0, 64, 90);
  83. caitlib_put_note_off(handle, port, 6469*m, 0, 64, 90);
  84. caitlib_put_note_on(handle, port, 6528*m, 0, 62, 90);
  85. caitlib_put_note_off(handle, port, 6853*m, 0, 62, 90);
  86. // 6912 On ch=1 n=60 v=90
  87. // 7237 Off ch=1 n=60 v=90
  88. // 7296 On ch=1 n=62 v=90
  89. // 7621 Off ch=1 n=62 v=90
  90. // 7680 On ch=1 n=64 v=90
  91. // 8005 Off ch=1 n=64 v=90
  92. caitlib_put_note_on(handle, port, 6912*m, 0, 60, 90);
  93. caitlib_put_note_off(handle, port, 7237*m, 0, 60, 90);
  94. caitlib_put_note_on(handle, port, 7296*m, 0, 62, 90);
  95. caitlib_put_note_off(handle, port, 7621*m, 0, 62, 90);
  96. caitlib_put_note_on(handle, port, 7680*m, 0, 64, 90);
  97. caitlib_put_note_off(handle, port, 8005*m, 0, 64, 90);
  98. // 8064 On ch=1 n=64 v=90
  99. // 8389 Off ch=1 n=64 v=90
  100. // 8448 On ch=1 n=64 v=90
  101. // 9099 Off ch=1 n=64 v=90
  102. // 9216 On ch=1 n=62 v=90
  103. // 9541 Off ch=1 n=62 v=90
  104. caitlib_put_note_on(handle, port, 8064*m, 0, 64, 90);
  105. caitlib_put_note_off(handle, port, 8389*m, 0, 64, 90);
  106. caitlib_put_note_on(handle, port, 8448*m, 0, 64, 90);
  107. caitlib_put_note_off(handle, port, 9099*m, 0, 64, 90);
  108. caitlib_put_note_on(handle, port, 9216*m, 0, 62, 90);
  109. caitlib_put_note_off(handle, port, 9541*m, 0, 62, 90);
  110. // 9600 On ch=1 n=62 v=90
  111. // 9925 Off ch=1 n=62 v=90
  112. // 9984 On ch=1 n=64 v=90
  113. // 10309 Off ch=1 n=64 v=90
  114. // 10368 On ch=1 n=62 v=90
  115. // 10693 Off ch=1 n=62 v=90
  116. caitlib_put_note_on(handle, port, 9600*m, 0, 62, 90);
  117. caitlib_put_note_off(handle, port, 9925*m, 0, 62, 90);
  118. caitlib_put_note_on(handle, port, 9984*m, 0, 64, 90);
  119. caitlib_put_note_off(handle, port, 10309*m, 0, 64, 90);
  120. caitlib_put_note_on(handle, port, 10368*m, 0, 62, 90);
  121. caitlib_put_note_off(handle, port, 10693*m, 0, 62, 90);
  122. // 10752 On ch=1 n=60 v=90
  123. // 12056 Off ch=1 n=60 v=90
  124. caitlib_put_note_on(handle, port, 10752*m, 0, 60, 90);
  125. caitlib_put_note_off(handle, port, 12056*m, 0, 60, 90);
  126. // 13824 Par ch=1 c=64 v=0 -- ??
  127. while (1)
  128. sleep(1);
  129. caitlib_close(handle);
  130. return 0;
  131. }