tunings.h 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. #ifndef TUNINGS_H
  2. #define TUNINGS_H
  3. #include "notes.h"
  4. #include <stdint.h>
  5. #define MAX_LABEL_LENGTH 20
  6. #define MAX_NOTES_PER_TUNING 20
  7. typedef struct {
  8. char label[MAX_LABEL_LENGTH];
  9. float frequency;
  10. } NOTE;
  11. typedef struct {
  12. char label[MAX_LABEL_LENGTH];
  13. uint8_t notes_length;
  14. NOTE notes[MAX_NOTES_PER_TUNING];
  15. } TUNING;
  16. const TUNING TuningForks = {
  17. "Tuning forks",
  18. 6,
  19. {
  20. {"Common A4 (440)", 440.00f},
  21. {"Sarti's A4 (436)", 436.00f},
  22. {"1858 A4 (435)", 435.00f},
  23. {"Verdi's A4 (432)", 432.00f},
  24. {"1750-1820 A4 (423.5)", 423.50f},
  25. {"Verdi's C4 (256.00)", 256.00f},
  26. }};
  27. const TUNING ScientificPitch = {
  28. "Scientific pitch",
  29. 12,
  30. {{"C0 (16Hz)", 16.0f},
  31. {"C1 (32Hz)", 32.0f},
  32. {"C2 (64Hz)", 64.0f},
  33. {"C3 (128Hz)", 128.0f},
  34. {"C4 (256Hz)", 256.0f},
  35. {"C5 (512Hz)", 512.0f},
  36. {"C6 (1024Hz)", 1024.0f},
  37. {"C7 (2048Hz)", 2048.0f},
  38. {"C8 (4096Hz)", 4096.0f},
  39. {"C9 (8192Hz)", 8192.0f},
  40. {"C10 (16384Hz)", 16384.0f},
  41. {"C11 (32768Hz)", 32768.0f}}};
  42. const TUNING GuitarStandard6 = {
  43. "Guitar Standard 6",
  44. 6,
  45. {{"String 1", E4},
  46. {"String 2", B3},
  47. {"String 3", G3},
  48. {"String 4", D3},
  49. {"String 5", A2},
  50. {"String 6", E2}}};
  51. const TUNING GuitarDropD6 = {
  52. "Guitar Drop D 6",
  53. 6,
  54. {{"String 1", E4},
  55. {"String 2", B3},
  56. {"String 3", G3},
  57. {"String 4", D3},
  58. {"String 5", A2},
  59. {"String 6", D2}}};
  60. const TUNING GuitarD6 = {
  61. "Guitar D 6",
  62. 6,
  63. {{"String 1", D4},
  64. {"String 2", A3},
  65. {"String 3", F3},
  66. {"String 4", C3},
  67. {"String 5", G2},
  68. {"String 6", D2}}};
  69. const TUNING GuitarDropC6 = {
  70. "Guitar Drop C 6",
  71. 6,
  72. {{"String 1", D4},
  73. {"String 2", A3},
  74. {"String 3", F3},
  75. {"String 4", C3},
  76. {"String 5", G2},
  77. {"String 6", C2}}};
  78. const TUNING GuitarStandard7 = {
  79. "Guitar Standard 7",
  80. 7,
  81. {{"String 1", E4},
  82. {"String 2", B3},
  83. {"String 3", G3},
  84. {"String 4", D3},
  85. {"String 5", A2},
  86. {"String 6", E2},
  87. {"String 7", B1}}};
  88. const TUNING BassStandard4 = {
  89. "Bass Standard 4",
  90. 4,
  91. {{"String 1", G2}, {"String 2", D2}, {"String 3", A1}, {"String 4", E1}}};
  92. const TUNING BassStandardTenor4 = {
  93. "Bass Stand Tenor 4",
  94. 4,
  95. {{"String 1", C3}, {"String 2", G2}, {"String 3", D2}, {"String 4", A1}}};
  96. const TUNING BassStandard5 = {
  97. "Bass Standard 5",
  98. 5,
  99. {{"String 1", G2}, {"String 2", D2}, {"String 3", A1}, {"String 4", E1}, {"String 5", B0}}};
  100. const TUNING BassStandardTenor5 = {
  101. "Bass Stand Tenor 5",
  102. 5,
  103. {{"String 1", C3}, {"String 2", G2}, {"String 3", D2}, {"String 4", A1}, {"String 5", E1}}};
  104. const TUNING BassDropD4 = {
  105. "Bass Drop D 4",
  106. 4,
  107. {{"String 1", G2}, {"String 2", D2}, {"String 3", A1}, {"String 4", D1}}};
  108. const TUNING BassD4 = {
  109. "Bass D 4",
  110. 4,
  111. {{"String 1", F2}, {"String 2", C2}, {"String 3", G1}, {"String 4", D1}}};
  112. const TUNING BassDropA5 = {
  113. "Bass Drop A 5",
  114. 5,
  115. {{"String 1", G2}, {"String 2", D2}, {"String 3", A1}, {"String 4", E1}, {"String 5", A0}}};
  116. const TUNING UkuleleStandard4 = {
  117. "Ukulele Standard 4",
  118. 4,
  119. {{"String 1", A4}, {"String 2", E4}, {"String 3", C4}, {"String 4", G4}}};
  120. #define TUNINGS_COUNT 15
  121. TUNING TuningList[TUNINGS_COUNT] = {
  122. ScientificPitch,
  123. TuningForks,
  124. GuitarStandard6,
  125. GuitarDropD6,
  126. GuitarD6,
  127. GuitarDropC6,
  128. GuitarStandard7,
  129. BassStandard4,
  130. BassStandardTenor4,
  131. BassStandard5,
  132. BassStandardTenor5,
  133. BassDropD4,
  134. BassD4,
  135. BassDropA5,
  136. UkuleleStandard4};
  137. #endif //TUNINGS_H