outro_rails 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2012) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +295 -0
  4. data/Rakefile +6 -0
  5. data/app/assets/images/outro_rails/add.svg +1 -0
  6. data/app/assets/images/outro_rails/capo.svg +18 -0
  7. data/app/assets/images/outro_rails/check.svg +1 -0
  8. data/app/assets/images/outro_rails/circle.svg +15 -0
  9. data/app/assets/images/outro_rails/clear.svg +1 -0
  10. data/app/assets/images/outro_rails/edit.svg +1 -0
  11. data/app/assets/images/outro_rails/filter.svg +1 -0
  12. data/app/assets/images/outro_rails/guitar.svg +1 -0
  13. data/app/assets/images/outro_rails/instruments.svg +2 -0
  14. data/app/assets/images/outro_rails/library.svg +7 -0
  15. data/app/assets/images/outro_rails/music.svg +1 -0
  16. data/app/assets/images/outro_rails/piano.svg +4 -0
  17. data/app/assets/images/outro_rails/save.svg +1 -0
  18. data/app/assets/images/outro_rails/scales.svg +2 -0
  19. data/app/assets/images/outro_rails/search.svg +1 -0
  20. data/app/assets/images/outro_rails/shapes.svg +1 -0
  21. data/app/assets/images/outro_rails/transposer.svg +2 -0
  22. data/app/assets/images/outro_rails/undo.svg +1 -0
  23. data/app/assets/javascripts/outro_rails/outro_rails.js +451 -0
  24. data/app/assets/stylesheets/outro_rails/outro_rails.css +1260 -0
  25. data/app/controllers/concerns/outro_rails/guitar_tuning_selectable.rb +17 -0
  26. data/app/controllers/concerns/outro_rails/instrument_selectable.rb +15 -0
  27. data/app/controllers/concerns/outro_rails/invalid_params_redirectable.rb +29 -0
  28. data/app/controllers/concerns/outro_rails/root_selectable.rb +19 -0
  29. data/app/controllers/outro_rails/application_controller.rb +6 -0
  30. data/app/controllers/outro_rails/caged/pickers_controller.rb +16 -0
  31. data/app/controllers/outro_rails/caged_controller.rb +57 -0
  32. data/app/controllers/outro_rails/capo_controller.rb +14 -0
  33. data/app/controllers/outro_rails/chord_charts/voicings_controller.rb +109 -0
  34. data/app/controllers/outro_rails/chord_voicings_controller.rb +12 -0
  35. data/app/controllers/outro_rails/chords/pickers_controller.rb +32 -0
  36. data/app/controllers/outro_rails/chords_controller.rb +61 -0
  37. data/app/controllers/outro_rails/circle_of_fifths_controller.rb +38 -0
  38. data/app/controllers/outro_rails/home_controller.rb +8 -0
  39. data/app/controllers/outro_rails/instruments/pickers_controller.rb +21 -0
  40. data/app/controllers/outro_rails/instruments_controller.rb +24 -0
  41. data/app/controllers/outro_rails/scales/pickers_controller.rb +27 -0
  42. data/app/controllers/outro_rails/scales_controller.rb +58 -0
  43. data/app/controllers/outro_rails/transposer_controller.rb +33 -0
  44. data/app/helpers/outro_rails/application_helper.rb +7 -0
  45. data/app/helpers/outro_rails/capo_helper.rb +9 -0
  46. data/app/helpers/outro_rails/chord_charts_helper.rb +51 -0
  47. data/app/helpers/outro_rails/chords_helper.rb +30 -0
  48. data/app/helpers/outro_rails/circle_of_fifths_helper.rb +44 -0
  49. data/app/helpers/outro_rails/instruments_helper.rb +41 -0
  50. data/app/helpers/outro_rails/scales_helper.rb +34 -0
  51. data/app/helpers/outro_rails/transposer_helper.rb +27 -0
  52. data/app/jobs/outro_rails/application_job.rb +4 -0
  53. data/app/mailers/outro_rails/application_mailer.rb +6 -0
  54. data/app/models/outro_rails/application_record.rb +7 -0
  55. data/app/models/outro_rails/chord.rb +85 -0
  56. data/app/models/outro_rails/chord_chart/voicing.rb +54 -0
  57. data/app/models/outro_rails/chord_chart.rb +106 -0
  58. data/app/models/outro_rails/chord_voicing.rb +45 -0
  59. data/app/views/layouts/outro_rails/application.html.erb +29 -0
  60. data/app/views/outro_rails/caged/show.html.erb +78 -0
  61. data/app/views/outro_rails/capo/show.html.erb +62 -0
  62. data/app/views/outro_rails/chord_charts/_chart.html.erb +286 -0
  63. data/app/views/outro_rails/chord_charts/_fields.html.erb +50 -0
  64. data/app/views/outro_rails/chord_voicings/_chord_voicing.html.erb +41 -0
  65. data/app/views/outro_rails/chord_voicings/_figure.html.erb +37 -0
  66. data/app/views/outro_rails/chord_voicings/_guitar.html.erb +13 -0
  67. data/app/views/outro_rails/chord_voicings/_piano.html.erb +17 -0
  68. data/app/views/outro_rails/chord_voicings/show.html.erb +17 -0
  69. data/app/views/outro_rails/chords/_chord.html.erb +50 -0
  70. data/app/views/outro_rails/chords/_chords.html.erb +29 -0
  71. data/app/views/outro_rails/chords/_filter.html.erb +87 -0
  72. data/app/views/outro_rails/chords/index.html.erb +31 -0
  73. data/app/views/outro_rails/chords/show.html.erb +24 -0
  74. data/app/views/outro_rails/circle_of_fifths/_wheel.html.erb +64 -0
  75. data/app/views/outro_rails/circle_of_fifths/show.html.erb +95 -0
  76. data/app/views/outro_rails/home/index.html.erb +75 -0
  77. data/app/views/outro_rails/instruments/_guitar.html.erb +37 -0
  78. data/app/views/outro_rails/instruments/_guitar_figure.html.erb +145 -0
  79. data/app/views/outro_rails/instruments/_guitar_midi.html.erb +137 -0
  80. data/app/views/outro_rails/instruments/_piano.html.erb +9 -0
  81. data/app/views/outro_rails/instruments/_piano_figure.html.erb +82 -0
  82. data/app/views/outro_rails/instruments/_piano_midi.html.erb +74 -0
  83. data/app/views/outro_rails/instruments/index.html.erb +50 -0
  84. data/app/views/outro_rails/instruments/show.html.erb +31 -0
  85. data/app/views/outro_rails/scales/_chords_table.html.erb +39 -0
  86. data/app/views/outro_rails/scales/_picker.html.erb +37 -0
  87. data/app/views/outro_rails/scales/_related_scales.html.erb +65 -0
  88. data/app/views/outro_rails/scales/index.html.erb +52 -0
  89. data/app/views/outro_rails/scales/show.html.erb +102 -0
  90. data/app/views/outro_rails/shared/_breadcrumb.html.erb +31 -0
  91. data/app/views/outro_rails/shared/_header.html.erb +12 -0
  92. data/app/views/outro_rails/transposer/show.html.erb +85 -0
  93. data/config/routes.rb +68 -0
  94. data/db/migrate/20260702141708_create_outro_rails_chords.rb +21 -0
  95. data/db/migrate/20260702141728_create_outro_rails_chord_voicings.rb +23 -0
  96. data/db/migrate/20260815090000_create_outro_rails_chord_charts.rb +23 -0
  97. data/db/migrate/20260815090100_create_outro_rails_chord_chart_voicing_selections.rb +30 -0
  98. data/db/seeds/chord_voicings/a/a-guitar.yml +71 -0
  99. data/db/seeds/chord_voicings/a/a-piano.yml +32 -0
  100. data/db/seeds/chord_voicings/a/a11-guitar.yml +11 -0
  101. data/db/seeds/chord_voicings/a/a11-piano.yml +71 -0
  102. data/db/seeds/chord_voicings/a/a13-guitar.yml +11 -0
  103. data/db/seeds/chord_voicings/a/a13-piano.yml +71 -0
  104. data/db/seeds/chord_voicings/a/a13flat9-guitar.yml +11 -0
  105. data/db/seeds/chord_voicings/a/a13flat9-piano.yml +71 -0
  106. data/db/seeds/chord_voicings/a/a13sharp11-guitar.yml +11 -0
  107. data/db/seeds/chord_voicings/a/a13sharp11-piano.yml +83 -0
  108. data/db/seeds/chord_voicings/a/a13sharp9-guitar.yml +11 -0
  109. data/db/seeds/chord_voicings/a/a13sharp9-piano.yml +71 -0
  110. data/db/seeds/chord_voicings/a/a13sus4-guitar.yml +11 -0
  111. data/db/seeds/chord_voicings/a/a13sus4-piano.yml +71 -0
  112. data/db/seeds/chord_voicings/a/a5-guitar.yml +23 -0
  113. data/db/seeds/chord_voicings/a/a5-piano.yml +21 -0
  114. data/db/seeds/chord_voicings/a/a6-guitar.yml +83 -0
  115. data/db/seeds/chord_voicings/a/a6-piano.yml +43 -0
  116. data/db/seeds/chord_voicings/a/a7-guitar.yml +83 -0
  117. data/db/seeds/chord_voicings/a/a7-piano.yml +43 -0
  118. data/db/seeds/chord_voicings/a/a7flat13-guitar.yml +11 -0
  119. data/db/seeds/chord_voicings/a/a7flat13-piano.yml +54 -0
  120. data/db/seeds/chord_voicings/a/a7flat5-guitar.yml +11 -0
  121. data/db/seeds/chord_voicings/a/a7flat5-piano.yml +43 -0
  122. data/db/seeds/chord_voicings/a/a7flat5flat9-guitar.yml +11 -0
  123. data/db/seeds/chord_voicings/a/a7flat5flat9-piano.yml +54 -0
  124. data/db/seeds/chord_voicings/a/a7flat5sharp9-guitar.yml +11 -0
  125. data/db/seeds/chord_voicings/a/a7flat5sharp9-piano.yml +54 -0
  126. data/db/seeds/chord_voicings/a/a7flat9-guitar.yml +11 -0
  127. data/db/seeds/chord_voicings/a/a7flat9-piano.yml +54 -0
  128. data/db/seeds/chord_voicings/a/a7flat9flat13-guitar.yml +11 -0
  129. data/db/seeds/chord_voicings/a/a7flat9flat13-piano.yml +65 -0
  130. data/db/seeds/chord_voicings/a/a7flat9sharp11-guitar.yml +11 -0
  131. data/db/seeds/chord_voicings/a/a7flat9sharp11-piano.yml +65 -0
  132. data/db/seeds/chord_voicings/a/a7sharp11-guitar.yml +11 -0
  133. data/db/seeds/chord_voicings/a/a7sharp11-piano.yml +54 -0
  134. data/db/seeds/chord_voicings/a/a7sharp5-guitar.yml +11 -0
  135. data/db/seeds/chord_voicings/a/a7sharp5-piano.yml +43 -0
  136. data/db/seeds/chord_voicings/a/a7sharp5flat9-guitar.yml +11 -0
  137. data/db/seeds/chord_voicings/a/a7sharp5flat9-piano.yml +54 -0
  138. data/db/seeds/chord_voicings/a/a7sharp5sharp9-guitar.yml +11 -0
  139. data/db/seeds/chord_voicings/a/a7sharp5sharp9-piano.yml +54 -0
  140. data/db/seeds/chord_voicings/a/a7sharp9-guitar.yml +11 -0
  141. data/db/seeds/chord_voicings/a/a7sharp9-piano.yml +54 -0
  142. data/db/seeds/chord_voicings/a/a7sharp9flat13-guitar.yml +11 -0
  143. data/db/seeds/chord_voicings/a/a7sharp9flat13-piano.yml +65 -0
  144. data/db/seeds/chord_voicings/a/a7sus2-guitar.yml +47 -0
  145. data/db/seeds/chord_voicings/a/a7sus2-piano.yml +43 -0
  146. data/db/seeds/chord_voicings/a/a7sus4-guitar.yml +59 -0
  147. data/db/seeds/chord_voicings/a/a7sus4-piano.yml +43 -0
  148. data/db/seeds/chord_voicings/a/a9-guitar.yml +11 -0
  149. data/db/seeds/chord_voicings/a/a9-piano.yml +54 -0
  150. data/db/seeds/chord_voicings/a/a9flat13-guitar.yml +11 -0
  151. data/db/seeds/chord_voicings/a/a9flat13-piano.yml +65 -0
  152. data/db/seeds/chord_voicings/a/a9sharp11-guitar.yml +11 -0
  153. data/db/seeds/chord_voicings/a/a9sharp11-piano.yml +65 -0
  154. data/db/seeds/chord_voicings/a/a9sus4-guitar.yml +11 -0
  155. data/db/seeds/chord_voicings/a/a9sus4-piano.yml +54 -0
  156. data/db/seeds/chord_voicings/a/aadd11-guitar.yml +11 -0
  157. data/db/seeds/chord_voicings/a/aadd11-piano.yml +43 -0
  158. data/db/seeds/chord_voicings/a/aadd13-guitar.yml +11 -0
  159. data/db/seeds/chord_voicings/a/aadd13-piano.yml +43 -0
  160. data/db/seeds/chord_voicings/a/aadd2-guitar.yml +11 -0
  161. data/db/seeds/chord_voicings/a/aadd2-piano.yml +43 -0
  162. data/db/seeds/chord_voicings/a/aadd4-guitar.yml +11 -0
  163. data/db/seeds/chord_voicings/a/aadd4-piano.yml +43 -0
  164. data/db/seeds/chord_voicings/a/aadd9-guitar.yml +11 -0
  165. data/db/seeds/chord_voicings/a/aadd9-piano.yml +43 -0
  166. data/db/seeds/chord_voicings/a/aaug-guitar.yml +35 -0
  167. data/db/seeds/chord_voicings/a/aaug-piano.yml +32 -0
  168. data/db/seeds/chord_voicings/a/adim-guitar.yml +23 -0
  169. data/db/seeds/chord_voicings/a/adim-piano.yml +32 -0
  170. data/db/seeds/chord_voicings/a/adim7-guitar.yml +23 -0
  171. data/db/seeds/chord_voicings/a/adim7-piano.yml +43 -0
  172. data/db/seeds/chord_voicings/a/am-guitar.yml +47 -0
  173. data/db/seeds/chord_voicings/a/am-maj7-guitar.yml +47 -0
  174. data/db/seeds/chord_voicings/a/am-maj7-piano.yml +43 -0
  175. data/db/seeds/chord_voicings/a/am-piano.yml +32 -0
  176. data/db/seeds/chord_voicings/a/am11-guitar.yml +11 -0
  177. data/db/seeds/chord_voicings/a/am11-piano.yml +71 -0
  178. data/db/seeds/chord_voicings/a/am13-guitar.yml +11 -0
  179. data/db/seeds/chord_voicings/a/am13-piano.yml +71 -0
  180. data/db/seeds/chord_voicings/a/am6-guitar.yml +59 -0
  181. data/db/seeds/chord_voicings/a/am6-piano.yml +43 -0
  182. data/db/seeds/chord_voicings/a/am7-guitar.yml +59 -0
  183. data/db/seeds/chord_voicings/a/am7-piano.yml +43 -0
  184. data/db/seeds/chord_voicings/a/am7add11-guitar.yml +11 -0
  185. data/db/seeds/chord_voicings/a/am7add11-piano.yml +54 -0
  186. data/db/seeds/chord_voicings/a/am7flat5-guitar.yml +35 -0
  187. data/db/seeds/chord_voicings/a/am7flat5-piano.yml +43 -0
  188. data/db/seeds/chord_voicings/a/am9-guitar.yml +11 -0
  189. data/db/seeds/chord_voicings/a/am9-piano.yml +54 -0
  190. data/db/seeds/chord_voicings/a/amadd11-guitar.yml +11 -0
  191. data/db/seeds/chord_voicings/a/amadd11-piano.yml +43 -0
  192. data/db/seeds/chord_voicings/a/amadd13-guitar.yml +11 -0
  193. data/db/seeds/chord_voicings/a/amadd13-piano.yml +43 -0
  194. data/db/seeds/chord_voicings/a/amadd2-guitar.yml +11 -0
  195. data/db/seeds/chord_voicings/a/amadd2-piano.yml +43 -0
  196. data/db/seeds/chord_voicings/a/amadd4-guitar.yml +11 -0
  197. data/db/seeds/chord_voicings/a/amadd4-piano.yml +43 -0
  198. data/db/seeds/chord_voicings/a/amadd9-guitar.yml +11 -0
  199. data/db/seeds/chord_voicings/a/amadd9-piano.yml +43 -0
  200. data/db/seeds/chord_voicings/a/amaj7-guitar.yml +71 -0
  201. data/db/seeds/chord_voicings/a/amaj7-piano.yml +43 -0
  202. data/db/seeds/chord_voicings/a/amaj7sharp5-guitar.yml +35 -0
  203. data/db/seeds/chord_voicings/a/amaj7sharp5-piano.yml +43 -0
  204. data/db/seeds/chord_voicings/a/asus2-guitar.yml +35 -0
  205. data/db/seeds/chord_voicings/a/asus2-piano.yml +32 -0
  206. data/db/seeds/chord_voicings/a/asus4-guitar.yml +47 -0
  207. data/db/seeds/chord_voicings/a/asus4-piano.yml +32 -0
  208. data/db/seeds/chord_voicings/a-flat/aflat-guitar.yml +59 -0
  209. data/db/seeds/chord_voicings/a-flat/aflat-piano.yml +32 -0
  210. data/db/seeds/chord_voicings/a-flat/aflat11-guitar.yml +11 -0
  211. data/db/seeds/chord_voicings/a-flat/aflat11-piano.yml +71 -0
  212. data/db/seeds/chord_voicings/a-flat/aflat13-guitar.yml +11 -0
  213. data/db/seeds/chord_voicings/a-flat/aflat13-piano.yml +71 -0
  214. data/db/seeds/chord_voicings/a-flat/aflat13flat9-guitar.yml +11 -0
  215. data/db/seeds/chord_voicings/a-flat/aflat13flat9-piano.yml +71 -0
  216. data/db/seeds/chord_voicings/a-flat/aflat13sharp11-guitar.yml +11 -0
  217. data/db/seeds/chord_voicings/a-flat/aflat13sharp11-piano.yml +83 -0
  218. data/db/seeds/chord_voicings/a-flat/aflat13sharp9-guitar.yml +11 -0
  219. data/db/seeds/chord_voicings/a-flat/aflat13sharp9-piano.yml +71 -0
  220. data/db/seeds/chord_voicings/a-flat/aflat13sus4-guitar.yml +11 -0
  221. data/db/seeds/chord_voicings/a-flat/aflat13sus4-piano.yml +71 -0
  222. data/db/seeds/chord_voicings/a-flat/aflat5-guitar.yml +23 -0
  223. data/db/seeds/chord_voicings/a-flat/aflat5-piano.yml +21 -0
  224. data/db/seeds/chord_voicings/a-flat/aflat6-guitar.yml +59 -0
  225. data/db/seeds/chord_voicings/a-flat/aflat6-piano.yml +43 -0
  226. data/db/seeds/chord_voicings/a-flat/aflat7-guitar.yml +59 -0
  227. data/db/seeds/chord_voicings/a-flat/aflat7-piano.yml +43 -0
  228. data/db/seeds/chord_voicings/a-flat/aflat7flat13-guitar.yml +11 -0
  229. data/db/seeds/chord_voicings/a-flat/aflat7flat13-piano.yml +54 -0
  230. data/db/seeds/chord_voicings/a-flat/aflat7flat5-guitar.yml +11 -0
  231. data/db/seeds/chord_voicings/a-flat/aflat7flat5-piano.yml +43 -0
  232. data/db/seeds/chord_voicings/a-flat/aflat7flat5flat9-guitar.yml +11 -0
  233. data/db/seeds/chord_voicings/a-flat/aflat7flat5flat9-piano.yml +54 -0
  234. data/db/seeds/chord_voicings/a-flat/aflat7flat5sharp9-guitar.yml +11 -0
  235. data/db/seeds/chord_voicings/a-flat/aflat7flat5sharp9-piano.yml +54 -0
  236. data/db/seeds/chord_voicings/a-flat/aflat7flat9-guitar.yml +11 -0
  237. data/db/seeds/chord_voicings/a-flat/aflat7flat9-piano.yml +54 -0
  238. data/db/seeds/chord_voicings/a-flat/aflat7flat9flat13-guitar.yml +11 -0
  239. data/db/seeds/chord_voicings/a-flat/aflat7flat9flat13-piano.yml +65 -0
  240. data/db/seeds/chord_voicings/a-flat/aflat7flat9sharp11-guitar.yml +11 -0
  241. data/db/seeds/chord_voicings/a-flat/aflat7flat9sharp11-piano.yml +65 -0
  242. data/db/seeds/chord_voicings/a-flat/aflat7sharp11-guitar.yml +11 -0
  243. data/db/seeds/chord_voicings/a-flat/aflat7sharp11-piano.yml +54 -0
  244. data/db/seeds/chord_voicings/a-flat/aflat7sharp5-guitar.yml +11 -0
  245. data/db/seeds/chord_voicings/a-flat/aflat7sharp5-piano.yml +43 -0
  246. data/db/seeds/chord_voicings/a-flat/aflat7sharp5flat9-guitar.yml +11 -0
  247. data/db/seeds/chord_voicings/a-flat/aflat7sharp5flat9-piano.yml +54 -0
  248. data/db/seeds/chord_voicings/a-flat/aflat7sharp5sharp9-guitar.yml +11 -0
  249. data/db/seeds/chord_voicings/a-flat/aflat7sharp5sharp9-piano.yml +54 -0
  250. data/db/seeds/chord_voicings/a-flat/aflat7sharp9-guitar.yml +11 -0
  251. data/db/seeds/chord_voicings/a-flat/aflat7sharp9-piano.yml +54 -0
  252. data/db/seeds/chord_voicings/a-flat/aflat7sharp9flat13-guitar.yml +11 -0
  253. data/db/seeds/chord_voicings/a-flat/aflat7sharp9flat13-piano.yml +65 -0
  254. data/db/seeds/chord_voicings/a-flat/aflat7sus2-guitar.yml +23 -0
  255. data/db/seeds/chord_voicings/a-flat/aflat7sus2-piano.yml +43 -0
  256. data/db/seeds/chord_voicings/a-flat/aflat7sus4-guitar.yml +35 -0
  257. data/db/seeds/chord_voicings/a-flat/aflat7sus4-piano.yml +43 -0
  258. data/db/seeds/chord_voicings/a-flat/aflat9-guitar.yml +11 -0
  259. data/db/seeds/chord_voicings/a-flat/aflat9-piano.yml +54 -0
  260. data/db/seeds/chord_voicings/a-flat/aflat9flat13-guitar.yml +11 -0
  261. data/db/seeds/chord_voicings/a-flat/aflat9flat13-piano.yml +65 -0
  262. data/db/seeds/chord_voicings/a-flat/aflat9sharp11-guitar.yml +11 -0
  263. data/db/seeds/chord_voicings/a-flat/aflat9sharp11-piano.yml +65 -0
  264. data/db/seeds/chord_voicings/a-flat/aflat9sus4-guitar.yml +11 -0
  265. data/db/seeds/chord_voicings/a-flat/aflat9sus4-piano.yml +54 -0
  266. data/db/seeds/chord_voicings/a-flat/aflatadd11-guitar.yml +11 -0
  267. data/db/seeds/chord_voicings/a-flat/aflatadd11-piano.yml +43 -0
  268. data/db/seeds/chord_voicings/a-flat/aflatadd13-guitar.yml +11 -0
  269. data/db/seeds/chord_voicings/a-flat/aflatadd13-piano.yml +43 -0
  270. data/db/seeds/chord_voicings/a-flat/aflatadd2-guitar.yml +11 -0
  271. data/db/seeds/chord_voicings/a-flat/aflatadd2-piano.yml +43 -0
  272. data/db/seeds/chord_voicings/a-flat/aflatadd4-guitar.yml +11 -0
  273. data/db/seeds/chord_voicings/a-flat/aflatadd4-piano.yml +43 -0
  274. data/db/seeds/chord_voicings/a-flat/aflatadd9-guitar.yml +11 -0
  275. data/db/seeds/chord_voicings/a-flat/aflatadd9-piano.yml +43 -0
  276. data/db/seeds/chord_voicings/a-flat/aflataug-guitar.yml +23 -0
  277. data/db/seeds/chord_voicings/a-flat/aflataug-piano.yml +32 -0
  278. data/db/seeds/chord_voicings/a-flat/aflatdim-guitar.yml +23 -0
  279. data/db/seeds/chord_voicings/a-flat/aflatdim-piano.yml +32 -0
  280. data/db/seeds/chord_voicings/a-flat/aflatdim7-guitar.yml +23 -0
  281. data/db/seeds/chord_voicings/a-flat/aflatdim7-piano.yml +43 -0
  282. data/db/seeds/chord_voicings/a-flat/aflatm-guitar.yml +35 -0
  283. data/db/seeds/chord_voicings/a-flat/aflatm-maj7-guitar.yml +35 -0
  284. data/db/seeds/chord_voicings/a-flat/aflatm-maj7-piano.yml +43 -0
  285. data/db/seeds/chord_voicings/a-flat/aflatm-piano.yml +32 -0
  286. data/db/seeds/chord_voicings/a-flat/aflatm11-guitar.yml +11 -0
  287. data/db/seeds/chord_voicings/a-flat/aflatm11-piano.yml +71 -0
  288. data/db/seeds/chord_voicings/a-flat/aflatm13-guitar.yml +11 -0
  289. data/db/seeds/chord_voicings/a-flat/aflatm13-piano.yml +71 -0
  290. data/db/seeds/chord_voicings/a-flat/aflatm6-guitar.yml +35 -0
  291. data/db/seeds/chord_voicings/a-flat/aflatm6-piano.yml +43 -0
  292. data/db/seeds/chord_voicings/a-flat/aflatm7-guitar.yml +35 -0
  293. data/db/seeds/chord_voicings/a-flat/aflatm7-piano.yml +43 -0
  294. data/db/seeds/chord_voicings/a-flat/aflatm7add11-guitar.yml +11 -0
  295. data/db/seeds/chord_voicings/a-flat/aflatm7add11-piano.yml +54 -0
  296. data/db/seeds/chord_voicings/a-flat/aflatm7flat5-guitar.yml +23 -0
  297. data/db/seeds/chord_voicings/a-flat/aflatm7flat5-piano.yml +43 -0
  298. data/db/seeds/chord_voicings/a-flat/aflatm9-guitar.yml +11 -0
  299. data/db/seeds/chord_voicings/a-flat/aflatm9-piano.yml +54 -0
  300. data/db/seeds/chord_voicings/a-flat/aflatmadd11-guitar.yml +11 -0
  301. data/db/seeds/chord_voicings/a-flat/aflatmadd11-piano.yml +43 -0
  302. data/db/seeds/chord_voicings/a-flat/aflatmadd13-guitar.yml +11 -0
  303. data/db/seeds/chord_voicings/a-flat/aflatmadd13-piano.yml +43 -0
  304. data/db/seeds/chord_voicings/a-flat/aflatmadd2-guitar.yml +11 -0
  305. data/db/seeds/chord_voicings/a-flat/aflatmadd2-piano.yml +43 -0
  306. data/db/seeds/chord_voicings/a-flat/aflatmadd4-guitar.yml +11 -0
  307. data/db/seeds/chord_voicings/a-flat/aflatmadd4-piano.yml +43 -0
  308. data/db/seeds/chord_voicings/a-flat/aflatmadd9-guitar.yml +11 -0
  309. data/db/seeds/chord_voicings/a-flat/aflatmadd9-piano.yml +43 -0
  310. data/db/seeds/chord_voicings/a-flat/aflatmaj7-guitar.yml +59 -0
  311. data/db/seeds/chord_voicings/a-flat/aflatmaj7-piano.yml +43 -0
  312. data/db/seeds/chord_voicings/a-flat/aflatmaj7sharp5-guitar.yml +23 -0
  313. data/db/seeds/chord_voicings/a-flat/aflatmaj7sharp5-piano.yml +43 -0
  314. data/db/seeds/chord_voicings/a-flat/aflatsus2-guitar.yml +23 -0
  315. data/db/seeds/chord_voicings/a-flat/aflatsus2-piano.yml +32 -0
  316. data/db/seeds/chord_voicings/a-flat/aflatsus4-guitar.yml +35 -0
  317. data/db/seeds/chord_voicings/a-flat/aflatsus4-piano.yml +32 -0
  318. data/db/seeds/chord_voicings/a-sharp/asharp-guitar.yml +59 -0
  319. data/db/seeds/chord_voicings/a-sharp/asharp-piano.yml +32 -0
  320. data/db/seeds/chord_voicings/a-sharp/asharp11-guitar.yml +11 -0
  321. data/db/seeds/chord_voicings/a-sharp/asharp11-piano.yml +71 -0
  322. data/db/seeds/chord_voicings/a-sharp/asharp13-guitar.yml +11 -0
  323. data/db/seeds/chord_voicings/a-sharp/asharp13-piano.yml +71 -0
  324. data/db/seeds/chord_voicings/a-sharp/asharp13flat9-guitar.yml +11 -0
  325. data/db/seeds/chord_voicings/a-sharp/asharp13flat9-piano.yml +71 -0
  326. data/db/seeds/chord_voicings/a-sharp/asharp13sharp11-guitar.yml +11 -0
  327. data/db/seeds/chord_voicings/a-sharp/asharp13sharp11-piano.yml +83 -0
  328. data/db/seeds/chord_voicings/a-sharp/asharp13sharp9-guitar.yml +11 -0
  329. data/db/seeds/chord_voicings/a-sharp/asharp13sharp9-piano.yml +71 -0
  330. data/db/seeds/chord_voicings/a-sharp/asharp13sus4-guitar.yml +11 -0
  331. data/db/seeds/chord_voicings/a-sharp/asharp13sus4-piano.yml +71 -0
  332. data/db/seeds/chord_voicings/a-sharp/asharp5-guitar.yml +23 -0
  333. data/db/seeds/chord_voicings/a-sharp/asharp5-piano.yml +21 -0
  334. data/db/seeds/chord_voicings/a-sharp/asharp6-guitar.yml +59 -0
  335. data/db/seeds/chord_voicings/a-sharp/asharp6-piano.yml +43 -0
  336. data/db/seeds/chord_voicings/a-sharp/asharp7-guitar.yml +59 -0
  337. data/db/seeds/chord_voicings/a-sharp/asharp7-piano.yml +43 -0
  338. data/db/seeds/chord_voicings/a-sharp/asharp7flat13-guitar.yml +11 -0
  339. data/db/seeds/chord_voicings/a-sharp/asharp7flat13-piano.yml +54 -0
  340. data/db/seeds/chord_voicings/a-sharp/asharp7flat5-guitar.yml +11 -0
  341. data/db/seeds/chord_voicings/a-sharp/asharp7flat5-piano.yml +43 -0
  342. data/db/seeds/chord_voicings/a-sharp/asharp7flat5flat9-guitar.yml +11 -0
  343. data/db/seeds/chord_voicings/a-sharp/asharp7flat5flat9-piano.yml +54 -0
  344. data/db/seeds/chord_voicings/a-sharp/asharp7flat5sharp9-guitar.yml +11 -0
  345. data/db/seeds/chord_voicings/a-sharp/asharp7flat5sharp9-piano.yml +54 -0
  346. data/db/seeds/chord_voicings/a-sharp/asharp7flat9-guitar.yml +11 -0
  347. data/db/seeds/chord_voicings/a-sharp/asharp7flat9-piano.yml +54 -0
  348. data/db/seeds/chord_voicings/a-sharp/asharp7flat9flat13-guitar.yml +11 -0
  349. data/db/seeds/chord_voicings/a-sharp/asharp7flat9flat13-piano.yml +65 -0
  350. data/db/seeds/chord_voicings/a-sharp/asharp7flat9sharp11-guitar.yml +11 -0
  351. data/db/seeds/chord_voicings/a-sharp/asharp7flat9sharp11-piano.yml +65 -0
  352. data/db/seeds/chord_voicings/a-sharp/asharp7sharp11-guitar.yml +11 -0
  353. data/db/seeds/chord_voicings/a-sharp/asharp7sharp11-piano.yml +54 -0
  354. data/db/seeds/chord_voicings/a-sharp/asharp7sharp5-guitar.yml +11 -0
  355. data/db/seeds/chord_voicings/a-sharp/asharp7sharp5-piano.yml +43 -0
  356. data/db/seeds/chord_voicings/a-sharp/asharp7sharp5flat9-guitar.yml +11 -0
  357. data/db/seeds/chord_voicings/a-sharp/asharp7sharp5flat9-piano.yml +54 -0
  358. data/db/seeds/chord_voicings/a-sharp/asharp7sharp5sharp9-guitar.yml +11 -0
  359. data/db/seeds/chord_voicings/a-sharp/asharp7sharp5sharp9-piano.yml +54 -0
  360. data/db/seeds/chord_voicings/a-sharp/asharp7sharp9-guitar.yml +11 -0
  361. data/db/seeds/chord_voicings/a-sharp/asharp7sharp9-piano.yml +54 -0
  362. data/db/seeds/chord_voicings/a-sharp/asharp7sharp9flat13-guitar.yml +11 -0
  363. data/db/seeds/chord_voicings/a-sharp/asharp7sharp9flat13-piano.yml +65 -0
  364. data/db/seeds/chord_voicings/a-sharp/asharp7sus2-guitar.yml +23 -0
  365. data/db/seeds/chord_voicings/a-sharp/asharp7sus2-piano.yml +43 -0
  366. data/db/seeds/chord_voicings/a-sharp/asharp7sus4-guitar.yml +35 -0
  367. data/db/seeds/chord_voicings/a-sharp/asharp7sus4-piano.yml +43 -0
  368. data/db/seeds/chord_voicings/a-sharp/asharp9-guitar.yml +11 -0
  369. data/db/seeds/chord_voicings/a-sharp/asharp9-piano.yml +54 -0
  370. data/db/seeds/chord_voicings/a-sharp/asharp9flat13-guitar.yml +11 -0
  371. data/db/seeds/chord_voicings/a-sharp/asharp9flat13-piano.yml +65 -0
  372. data/db/seeds/chord_voicings/a-sharp/asharp9sharp11-guitar.yml +11 -0
  373. data/db/seeds/chord_voicings/a-sharp/asharp9sharp11-piano.yml +65 -0
  374. data/db/seeds/chord_voicings/a-sharp/asharp9sus4-guitar.yml +11 -0
  375. data/db/seeds/chord_voicings/a-sharp/asharp9sus4-piano.yml +54 -0
  376. data/db/seeds/chord_voicings/a-sharp/asharpadd11-guitar.yml +11 -0
  377. data/db/seeds/chord_voicings/a-sharp/asharpadd11-piano.yml +43 -0
  378. data/db/seeds/chord_voicings/a-sharp/asharpadd13-guitar.yml +11 -0
  379. data/db/seeds/chord_voicings/a-sharp/asharpadd13-piano.yml +43 -0
  380. data/db/seeds/chord_voicings/a-sharp/asharpadd2-guitar.yml +11 -0
  381. data/db/seeds/chord_voicings/a-sharp/asharpadd2-piano.yml +43 -0
  382. data/db/seeds/chord_voicings/a-sharp/asharpadd4-guitar.yml +11 -0
  383. data/db/seeds/chord_voicings/a-sharp/asharpadd4-piano.yml +43 -0
  384. data/db/seeds/chord_voicings/a-sharp/asharpadd9-guitar.yml +11 -0
  385. data/db/seeds/chord_voicings/a-sharp/asharpadd9-piano.yml +43 -0
  386. data/db/seeds/chord_voicings/a-sharp/asharpaug-guitar.yml +23 -0
  387. data/db/seeds/chord_voicings/a-sharp/asharpaug-piano.yml +32 -0
  388. data/db/seeds/chord_voicings/a-sharp/asharpdim-guitar.yml +23 -0
  389. data/db/seeds/chord_voicings/a-sharp/asharpdim-piano.yml +32 -0
  390. data/db/seeds/chord_voicings/a-sharp/asharpdim7-guitar.yml +47 -0
  391. data/db/seeds/chord_voicings/a-sharp/asharpdim7-piano.yml +43 -0
  392. data/db/seeds/chord_voicings/a-sharp/asharpm-guitar.yml +35 -0
  393. data/db/seeds/chord_voicings/a-sharp/asharpm-maj7-guitar.yml +35 -0
  394. data/db/seeds/chord_voicings/a-sharp/asharpm-maj7-piano.yml +43 -0
  395. data/db/seeds/chord_voicings/a-sharp/asharpm-piano.yml +32 -0
  396. data/db/seeds/chord_voicings/a-sharp/asharpm11-guitar.yml +11 -0
  397. data/db/seeds/chord_voicings/a-sharp/asharpm11-piano.yml +71 -0
  398. data/db/seeds/chord_voicings/a-sharp/asharpm13-guitar.yml +11 -0
  399. data/db/seeds/chord_voicings/a-sharp/asharpm13-piano.yml +71 -0
  400. data/db/seeds/chord_voicings/a-sharp/asharpm6-guitar.yml +35 -0
  401. data/db/seeds/chord_voicings/a-sharp/asharpm6-piano.yml +43 -0
  402. data/db/seeds/chord_voicings/a-sharp/asharpm7-guitar.yml +35 -0
  403. data/db/seeds/chord_voicings/a-sharp/asharpm7-piano.yml +43 -0
  404. data/db/seeds/chord_voicings/a-sharp/asharpm7add11-guitar.yml +11 -0
  405. data/db/seeds/chord_voicings/a-sharp/asharpm7add11-piano.yml +54 -0
  406. data/db/seeds/chord_voicings/a-sharp/asharpm7flat5-guitar.yml +23 -0
  407. data/db/seeds/chord_voicings/a-sharp/asharpm7flat5-piano.yml +43 -0
  408. data/db/seeds/chord_voicings/a-sharp/asharpm9-guitar.yml +11 -0
  409. data/db/seeds/chord_voicings/a-sharp/asharpm9-piano.yml +54 -0
  410. data/db/seeds/chord_voicings/a-sharp/asharpmadd11-guitar.yml +11 -0
  411. data/db/seeds/chord_voicings/a-sharp/asharpmadd11-piano.yml +43 -0
  412. data/db/seeds/chord_voicings/a-sharp/asharpmadd13-guitar.yml +11 -0
  413. data/db/seeds/chord_voicings/a-sharp/asharpmadd13-piano.yml +43 -0
  414. data/db/seeds/chord_voicings/a-sharp/asharpmadd2-guitar.yml +11 -0
  415. data/db/seeds/chord_voicings/a-sharp/asharpmadd2-piano.yml +43 -0
  416. data/db/seeds/chord_voicings/a-sharp/asharpmadd4-guitar.yml +11 -0
  417. data/db/seeds/chord_voicings/a-sharp/asharpmadd4-piano.yml +43 -0
  418. data/db/seeds/chord_voicings/a-sharp/asharpmadd9-guitar.yml +11 -0
  419. data/db/seeds/chord_voicings/a-sharp/asharpmadd9-piano.yml +43 -0
  420. data/db/seeds/chord_voicings/a-sharp/asharpmaj7-guitar.yml +59 -0
  421. data/db/seeds/chord_voicings/a-sharp/asharpmaj7-piano.yml +43 -0
  422. data/db/seeds/chord_voicings/a-sharp/asharpmaj7sharp5-guitar.yml +23 -0
  423. data/db/seeds/chord_voicings/a-sharp/asharpmaj7sharp5-piano.yml +43 -0
  424. data/db/seeds/chord_voicings/a-sharp/asharpsus2-guitar.yml +23 -0
  425. data/db/seeds/chord_voicings/a-sharp/asharpsus2-piano.yml +32 -0
  426. data/db/seeds/chord_voicings/a-sharp/asharpsus4-guitar.yml +35 -0
  427. data/db/seeds/chord_voicings/a-sharp/asharpsus4-piano.yml +32 -0
  428. data/db/seeds/chord_voicings/b/b-guitar.yml +59 -0
  429. data/db/seeds/chord_voicings/b/b-piano.yml +32 -0
  430. data/db/seeds/chord_voicings/b/b11-guitar.yml +11 -0
  431. data/db/seeds/chord_voicings/b/b11-piano.yml +71 -0
  432. data/db/seeds/chord_voicings/b/b13-guitar.yml +11 -0
  433. data/db/seeds/chord_voicings/b/b13-piano.yml +71 -0
  434. data/db/seeds/chord_voicings/b/b13flat9-guitar.yml +11 -0
  435. data/db/seeds/chord_voicings/b/b13flat9-piano.yml +71 -0
  436. data/db/seeds/chord_voicings/b/b13sharp11-guitar.yml +11 -0
  437. data/db/seeds/chord_voicings/b/b13sharp11-piano.yml +83 -0
  438. data/db/seeds/chord_voicings/b/b13sharp9-guitar.yml +11 -0
  439. data/db/seeds/chord_voicings/b/b13sharp9-piano.yml +71 -0
  440. data/db/seeds/chord_voicings/b/b13sus4-guitar.yml +11 -0
  441. data/db/seeds/chord_voicings/b/b13sus4-piano.yml +71 -0
  442. data/db/seeds/chord_voicings/b/b5-guitar.yml +23 -0
  443. data/db/seeds/chord_voicings/b/b5-piano.yml +21 -0
  444. data/db/seeds/chord_voicings/b/b6-guitar.yml +59 -0
  445. data/db/seeds/chord_voicings/b/b6-piano.yml +43 -0
  446. data/db/seeds/chord_voicings/b/b7-guitar.yml +59 -0
  447. data/db/seeds/chord_voicings/b/b7-piano.yml +43 -0
  448. data/db/seeds/chord_voicings/b/b7flat13-guitar.yml +11 -0
  449. data/db/seeds/chord_voicings/b/b7flat13-piano.yml +54 -0
  450. data/db/seeds/chord_voicings/b/b7flat5-guitar.yml +11 -0
  451. data/db/seeds/chord_voicings/b/b7flat5-piano.yml +43 -0
  452. data/db/seeds/chord_voicings/b/b7flat5flat9-guitar.yml +11 -0
  453. data/db/seeds/chord_voicings/b/b7flat5flat9-piano.yml +54 -0
  454. data/db/seeds/chord_voicings/b/b7flat5sharp9-guitar.yml +11 -0
  455. data/db/seeds/chord_voicings/b/b7flat5sharp9-piano.yml +54 -0
  456. data/db/seeds/chord_voicings/b/b7flat9-guitar.yml +11 -0
  457. data/db/seeds/chord_voicings/b/b7flat9-piano.yml +54 -0
  458. data/db/seeds/chord_voicings/b/b7flat9flat13-guitar.yml +11 -0
  459. data/db/seeds/chord_voicings/b/b7flat9flat13-piano.yml +65 -0
  460. data/db/seeds/chord_voicings/b/b7flat9sharp11-guitar.yml +11 -0
  461. data/db/seeds/chord_voicings/b/b7flat9sharp11-piano.yml +65 -0
  462. data/db/seeds/chord_voicings/b/b7sharp11-guitar.yml +11 -0
  463. data/db/seeds/chord_voicings/b/b7sharp11-piano.yml +54 -0
  464. data/db/seeds/chord_voicings/b/b7sharp5-guitar.yml +11 -0
  465. data/db/seeds/chord_voicings/b/b7sharp5-piano.yml +43 -0
  466. data/db/seeds/chord_voicings/b/b7sharp5flat9-guitar.yml +11 -0
  467. data/db/seeds/chord_voicings/b/b7sharp5flat9-piano.yml +54 -0
  468. data/db/seeds/chord_voicings/b/b7sharp5sharp9-guitar.yml +11 -0
  469. data/db/seeds/chord_voicings/b/b7sharp5sharp9-piano.yml +54 -0
  470. data/db/seeds/chord_voicings/b/b7sharp9-guitar.yml +11 -0
  471. data/db/seeds/chord_voicings/b/b7sharp9-piano.yml +54 -0
  472. data/db/seeds/chord_voicings/b/b7sharp9flat13-guitar.yml +11 -0
  473. data/db/seeds/chord_voicings/b/b7sharp9flat13-piano.yml +65 -0
  474. data/db/seeds/chord_voicings/b/b7sus2-guitar.yml +23 -0
  475. data/db/seeds/chord_voicings/b/b7sus2-piano.yml +43 -0
  476. data/db/seeds/chord_voicings/b/b7sus4-guitar.yml +35 -0
  477. data/db/seeds/chord_voicings/b/b7sus4-piano.yml +43 -0
  478. data/db/seeds/chord_voicings/b/b9-guitar.yml +11 -0
  479. data/db/seeds/chord_voicings/b/b9-piano.yml +54 -0
  480. data/db/seeds/chord_voicings/b/b9flat13-guitar.yml +11 -0
  481. data/db/seeds/chord_voicings/b/b9flat13-piano.yml +65 -0
  482. data/db/seeds/chord_voicings/b/b9sharp11-guitar.yml +11 -0
  483. data/db/seeds/chord_voicings/b/b9sharp11-piano.yml +65 -0
  484. data/db/seeds/chord_voicings/b/b9sus4-guitar.yml +11 -0
  485. data/db/seeds/chord_voicings/b/b9sus4-piano.yml +54 -0
  486. data/db/seeds/chord_voicings/b/badd11-guitar.yml +11 -0
  487. data/db/seeds/chord_voicings/b/badd11-piano.yml +43 -0
  488. data/db/seeds/chord_voicings/b/badd13-guitar.yml +11 -0
  489. data/db/seeds/chord_voicings/b/badd13-piano.yml +43 -0
  490. data/db/seeds/chord_voicings/b/badd2-guitar.yml +11 -0
  491. data/db/seeds/chord_voicings/b/badd2-piano.yml +43 -0
  492. data/db/seeds/chord_voicings/b/badd4-guitar.yml +11 -0
  493. data/db/seeds/chord_voicings/b/badd4-piano.yml +43 -0
  494. data/db/seeds/chord_voicings/b/badd9-guitar.yml +11 -0
  495. data/db/seeds/chord_voicings/b/badd9-piano.yml +43 -0
  496. data/db/seeds/chord_voicings/b/baug-guitar.yml +23 -0
  497. data/db/seeds/chord_voicings/b/baug-piano.yml +32 -0
  498. data/db/seeds/chord_voicings/b/bdim-guitar.yml +23 -0
  499. data/db/seeds/chord_voicings/b/bdim-piano.yml +32 -0
  500. data/db/seeds/chord_voicings/b/bdim7-guitar.yml +23 -0
  501. data/db/seeds/chord_voicings/b/bdim7-piano.yml +43 -0
  502. data/db/seeds/chord_voicings/b/bm-guitar.yml +35 -0
  503. data/db/seeds/chord_voicings/b/bm-maj7-guitar.yml +35 -0
  504. data/db/seeds/chord_voicings/b/bm-maj7-piano.yml +43 -0
  505. data/db/seeds/chord_voicings/b/bm-piano.yml +32 -0
  506. data/db/seeds/chord_voicings/b/bm11-guitar.yml +11 -0
  507. data/db/seeds/chord_voicings/b/bm11-piano.yml +71 -0
  508. data/db/seeds/chord_voicings/b/bm13-guitar.yml +11 -0
  509. data/db/seeds/chord_voicings/b/bm13-piano.yml +71 -0
  510. data/db/seeds/chord_voicings/b/bm6-guitar.yml +35 -0
  511. data/db/seeds/chord_voicings/b/bm6-piano.yml +43 -0
  512. data/db/seeds/chord_voicings/b/bm7-guitar.yml +35 -0
  513. data/db/seeds/chord_voicings/b/bm7-piano.yml +43 -0
  514. data/db/seeds/chord_voicings/b/bm7add11-guitar.yml +11 -0
  515. data/db/seeds/chord_voicings/b/bm7add11-piano.yml +54 -0
  516. data/db/seeds/chord_voicings/b/bm7flat5-guitar.yml +23 -0
  517. data/db/seeds/chord_voicings/b/bm7flat5-piano.yml +43 -0
  518. data/db/seeds/chord_voicings/b/bm9-guitar.yml +11 -0
  519. data/db/seeds/chord_voicings/b/bm9-piano.yml +54 -0
  520. data/db/seeds/chord_voicings/b/bmadd11-guitar.yml +11 -0
  521. data/db/seeds/chord_voicings/b/bmadd11-piano.yml +43 -0
  522. data/db/seeds/chord_voicings/b/bmadd13-guitar.yml +11 -0
  523. data/db/seeds/chord_voicings/b/bmadd13-piano.yml +43 -0
  524. data/db/seeds/chord_voicings/b/bmadd2-guitar.yml +11 -0
  525. data/db/seeds/chord_voicings/b/bmadd2-piano.yml +43 -0
  526. data/db/seeds/chord_voicings/b/bmadd4-guitar.yml +11 -0
  527. data/db/seeds/chord_voicings/b/bmadd4-piano.yml +43 -0
  528. data/db/seeds/chord_voicings/b/bmadd9-guitar.yml +11 -0
  529. data/db/seeds/chord_voicings/b/bmadd9-piano.yml +43 -0
  530. data/db/seeds/chord_voicings/b/bmaj7-guitar.yml +59 -0
  531. data/db/seeds/chord_voicings/b/bmaj7-piano.yml +43 -0
  532. data/db/seeds/chord_voicings/b/bmaj7sharp5-guitar.yml +23 -0
  533. data/db/seeds/chord_voicings/b/bmaj7sharp5-piano.yml +43 -0
  534. data/db/seeds/chord_voicings/b/bsus2-guitar.yml +23 -0
  535. data/db/seeds/chord_voicings/b/bsus2-piano.yml +32 -0
  536. data/db/seeds/chord_voicings/b/bsus4-guitar.yml +35 -0
  537. data/db/seeds/chord_voicings/b/bsus4-piano.yml +32 -0
  538. data/db/seeds/chord_voicings/b-flat/bflat-guitar.yml +59 -0
  539. data/db/seeds/chord_voicings/b-flat/bflat-piano.yml +32 -0
  540. data/db/seeds/chord_voicings/b-flat/bflat11-guitar.yml +11 -0
  541. data/db/seeds/chord_voicings/b-flat/bflat11-piano.yml +71 -0
  542. data/db/seeds/chord_voicings/b-flat/bflat13-guitar.yml +11 -0
  543. data/db/seeds/chord_voicings/b-flat/bflat13-piano.yml +71 -0
  544. data/db/seeds/chord_voicings/b-flat/bflat13flat9-guitar.yml +11 -0
  545. data/db/seeds/chord_voicings/b-flat/bflat13flat9-piano.yml +71 -0
  546. data/db/seeds/chord_voicings/b-flat/bflat13sharp11-guitar.yml +11 -0
  547. data/db/seeds/chord_voicings/b-flat/bflat13sharp11-piano.yml +83 -0
  548. data/db/seeds/chord_voicings/b-flat/bflat13sharp9-guitar.yml +11 -0
  549. data/db/seeds/chord_voicings/b-flat/bflat13sharp9-piano.yml +71 -0
  550. data/db/seeds/chord_voicings/b-flat/bflat13sus4-guitar.yml +11 -0
  551. data/db/seeds/chord_voicings/b-flat/bflat13sus4-piano.yml +71 -0
  552. data/db/seeds/chord_voicings/b-flat/bflat5-guitar.yml +23 -0
  553. data/db/seeds/chord_voicings/b-flat/bflat5-piano.yml +21 -0
  554. data/db/seeds/chord_voicings/b-flat/bflat6-guitar.yml +59 -0
  555. data/db/seeds/chord_voicings/b-flat/bflat6-piano.yml +43 -0
  556. data/db/seeds/chord_voicings/b-flat/bflat7-guitar.yml +59 -0
  557. data/db/seeds/chord_voicings/b-flat/bflat7-piano.yml +43 -0
  558. data/db/seeds/chord_voicings/b-flat/bflat7flat13-guitar.yml +11 -0
  559. data/db/seeds/chord_voicings/b-flat/bflat7flat13-piano.yml +54 -0
  560. data/db/seeds/chord_voicings/b-flat/bflat7flat5-guitar.yml +11 -0
  561. data/db/seeds/chord_voicings/b-flat/bflat7flat5-piano.yml +43 -0
  562. data/db/seeds/chord_voicings/b-flat/bflat7flat5flat9-guitar.yml +11 -0
  563. data/db/seeds/chord_voicings/b-flat/bflat7flat5flat9-piano.yml +54 -0
  564. data/db/seeds/chord_voicings/b-flat/bflat7flat5sharp9-guitar.yml +11 -0
  565. data/db/seeds/chord_voicings/b-flat/bflat7flat5sharp9-piano.yml +54 -0
  566. data/db/seeds/chord_voicings/b-flat/bflat7flat9-guitar.yml +11 -0
  567. data/db/seeds/chord_voicings/b-flat/bflat7flat9-piano.yml +54 -0
  568. data/db/seeds/chord_voicings/b-flat/bflat7flat9flat13-guitar.yml +11 -0
  569. data/db/seeds/chord_voicings/b-flat/bflat7flat9flat13-piano.yml +65 -0
  570. data/db/seeds/chord_voicings/b-flat/bflat7flat9sharp11-guitar.yml +11 -0
  571. data/db/seeds/chord_voicings/b-flat/bflat7flat9sharp11-piano.yml +65 -0
  572. data/db/seeds/chord_voicings/b-flat/bflat7sharp11-guitar.yml +11 -0
  573. data/db/seeds/chord_voicings/b-flat/bflat7sharp11-piano.yml +54 -0
  574. data/db/seeds/chord_voicings/b-flat/bflat7sharp5-guitar.yml +11 -0
  575. data/db/seeds/chord_voicings/b-flat/bflat7sharp5-piano.yml +43 -0
  576. data/db/seeds/chord_voicings/b-flat/bflat7sharp5flat9-guitar.yml +11 -0
  577. data/db/seeds/chord_voicings/b-flat/bflat7sharp5flat9-piano.yml +54 -0
  578. data/db/seeds/chord_voicings/b-flat/bflat7sharp5sharp9-guitar.yml +11 -0
  579. data/db/seeds/chord_voicings/b-flat/bflat7sharp5sharp9-piano.yml +54 -0
  580. data/db/seeds/chord_voicings/b-flat/bflat7sharp9-guitar.yml +11 -0
  581. data/db/seeds/chord_voicings/b-flat/bflat7sharp9-piano.yml +54 -0
  582. data/db/seeds/chord_voicings/b-flat/bflat7sharp9flat13-guitar.yml +11 -0
  583. data/db/seeds/chord_voicings/b-flat/bflat7sharp9flat13-piano.yml +65 -0
  584. data/db/seeds/chord_voicings/b-flat/bflat7sus2-guitar.yml +23 -0
  585. data/db/seeds/chord_voicings/b-flat/bflat7sus2-piano.yml +43 -0
  586. data/db/seeds/chord_voicings/b-flat/bflat7sus4-guitar.yml +35 -0
  587. data/db/seeds/chord_voicings/b-flat/bflat7sus4-piano.yml +43 -0
  588. data/db/seeds/chord_voicings/b-flat/bflat9-guitar.yml +11 -0
  589. data/db/seeds/chord_voicings/b-flat/bflat9-piano.yml +54 -0
  590. data/db/seeds/chord_voicings/b-flat/bflat9flat13-guitar.yml +11 -0
  591. data/db/seeds/chord_voicings/b-flat/bflat9flat13-piano.yml +65 -0
  592. data/db/seeds/chord_voicings/b-flat/bflat9sharp11-guitar.yml +11 -0
  593. data/db/seeds/chord_voicings/b-flat/bflat9sharp11-piano.yml +65 -0
  594. data/db/seeds/chord_voicings/b-flat/bflat9sus4-guitar.yml +11 -0
  595. data/db/seeds/chord_voicings/b-flat/bflat9sus4-piano.yml +54 -0
  596. data/db/seeds/chord_voicings/b-flat/bflatadd11-guitar.yml +11 -0
  597. data/db/seeds/chord_voicings/b-flat/bflatadd11-piano.yml +43 -0
  598. data/db/seeds/chord_voicings/b-flat/bflatadd13-guitar.yml +11 -0
  599. data/db/seeds/chord_voicings/b-flat/bflatadd13-piano.yml +43 -0
  600. data/db/seeds/chord_voicings/b-flat/bflatadd2-guitar.yml +11 -0
  601. data/db/seeds/chord_voicings/b-flat/bflatadd2-piano.yml +43 -0
  602. data/db/seeds/chord_voicings/b-flat/bflatadd4-guitar.yml +11 -0
  603. data/db/seeds/chord_voicings/b-flat/bflatadd4-piano.yml +43 -0
  604. data/db/seeds/chord_voicings/b-flat/bflatadd9-guitar.yml +11 -0
  605. data/db/seeds/chord_voicings/b-flat/bflatadd9-piano.yml +43 -0
  606. data/db/seeds/chord_voicings/b-flat/bflataug-guitar.yml +23 -0
  607. data/db/seeds/chord_voicings/b-flat/bflataug-piano.yml +32 -0
  608. data/db/seeds/chord_voicings/b-flat/bflatdim-guitar.yml +23 -0
  609. data/db/seeds/chord_voicings/b-flat/bflatdim-piano.yml +32 -0
  610. data/db/seeds/chord_voicings/b-flat/bflatdim7-guitar.yml +47 -0
  611. data/db/seeds/chord_voicings/b-flat/bflatdim7-piano.yml +43 -0
  612. data/db/seeds/chord_voicings/b-flat/bflatm-guitar.yml +35 -0
  613. data/db/seeds/chord_voicings/b-flat/bflatm-maj7-guitar.yml +35 -0
  614. data/db/seeds/chord_voicings/b-flat/bflatm-maj7-piano.yml +43 -0
  615. data/db/seeds/chord_voicings/b-flat/bflatm-piano.yml +32 -0
  616. data/db/seeds/chord_voicings/b-flat/bflatm11-guitar.yml +11 -0
  617. data/db/seeds/chord_voicings/b-flat/bflatm11-piano.yml +71 -0
  618. data/db/seeds/chord_voicings/b-flat/bflatm13-guitar.yml +11 -0
  619. data/db/seeds/chord_voicings/b-flat/bflatm13-piano.yml +71 -0
  620. data/db/seeds/chord_voicings/b-flat/bflatm6-guitar.yml +35 -0
  621. data/db/seeds/chord_voicings/b-flat/bflatm6-piano.yml +43 -0
  622. data/db/seeds/chord_voicings/b-flat/bflatm7-guitar.yml +35 -0
  623. data/db/seeds/chord_voicings/b-flat/bflatm7-piano.yml +43 -0
  624. data/db/seeds/chord_voicings/b-flat/bflatm7add11-guitar.yml +11 -0
  625. data/db/seeds/chord_voicings/b-flat/bflatm7add11-piano.yml +54 -0
  626. data/db/seeds/chord_voicings/b-flat/bflatm7flat5-guitar.yml +23 -0
  627. data/db/seeds/chord_voicings/b-flat/bflatm7flat5-piano.yml +43 -0
  628. data/db/seeds/chord_voicings/b-flat/bflatm9-guitar.yml +11 -0
  629. data/db/seeds/chord_voicings/b-flat/bflatm9-piano.yml +54 -0
  630. data/db/seeds/chord_voicings/b-flat/bflatmadd11-guitar.yml +11 -0
  631. data/db/seeds/chord_voicings/b-flat/bflatmadd11-piano.yml +43 -0
  632. data/db/seeds/chord_voicings/b-flat/bflatmadd13-guitar.yml +11 -0
  633. data/db/seeds/chord_voicings/b-flat/bflatmadd13-piano.yml +43 -0
  634. data/db/seeds/chord_voicings/b-flat/bflatmadd2-guitar.yml +11 -0
  635. data/db/seeds/chord_voicings/b-flat/bflatmadd2-piano.yml +43 -0
  636. data/db/seeds/chord_voicings/b-flat/bflatmadd4-guitar.yml +11 -0
  637. data/db/seeds/chord_voicings/b-flat/bflatmadd4-piano.yml +43 -0
  638. data/db/seeds/chord_voicings/b-flat/bflatmadd9-guitar.yml +11 -0
  639. data/db/seeds/chord_voicings/b-flat/bflatmadd9-piano.yml +43 -0
  640. data/db/seeds/chord_voicings/b-flat/bflatmaj7-guitar.yml +59 -0
  641. data/db/seeds/chord_voicings/b-flat/bflatmaj7-piano.yml +43 -0
  642. data/db/seeds/chord_voicings/b-flat/bflatmaj7sharp5-guitar.yml +23 -0
  643. data/db/seeds/chord_voicings/b-flat/bflatmaj7sharp5-piano.yml +43 -0
  644. data/db/seeds/chord_voicings/b-flat/bflatsus2-guitar.yml +23 -0
  645. data/db/seeds/chord_voicings/b-flat/bflatsus2-piano.yml +32 -0
  646. data/db/seeds/chord_voicings/b-flat/bflatsus4-guitar.yml +35 -0
  647. data/db/seeds/chord_voicings/b-flat/bflatsus4-piano.yml +32 -0
  648. data/db/seeds/chord_voicings/c/c-guitar.yml +83 -0
  649. data/db/seeds/chord_voicings/c/c-piano.yml +32 -0
  650. data/db/seeds/chord_voicings/c/c11-guitar.yml +11 -0
  651. data/db/seeds/chord_voicings/c/c11-piano.yml +71 -0
  652. data/db/seeds/chord_voicings/c/c13-guitar.yml +11 -0
  653. data/db/seeds/chord_voicings/c/c13-piano.yml +71 -0
  654. data/db/seeds/chord_voicings/c/c13flat9-guitar.yml +11 -0
  655. data/db/seeds/chord_voicings/c/c13flat9-piano.yml +71 -0
  656. data/db/seeds/chord_voicings/c/c13sharp11-guitar.yml +11 -0
  657. data/db/seeds/chord_voicings/c/c13sharp11-piano.yml +83 -0
  658. data/db/seeds/chord_voicings/c/c13sharp9-guitar.yml +11 -0
  659. data/db/seeds/chord_voicings/c/c13sharp9-piano.yml +71 -0
  660. data/db/seeds/chord_voicings/c/c13sus4-guitar.yml +11 -0
  661. data/db/seeds/chord_voicings/c/c13sus4-piano.yml +71 -0
  662. data/db/seeds/chord_voicings/c/c5-guitar.yml +23 -0
  663. data/db/seeds/chord_voicings/c/c5-piano.yml +21 -0
  664. data/db/seeds/chord_voicings/c/c6-guitar.yml +83 -0
  665. data/db/seeds/chord_voicings/c/c6-piano.yml +43 -0
  666. data/db/seeds/chord_voicings/c/c7-guitar.yml +83 -0
  667. data/db/seeds/chord_voicings/c/c7-piano.yml +43 -0
  668. data/db/seeds/chord_voicings/c/c7flat13-guitar.yml +11 -0
  669. data/db/seeds/chord_voicings/c/c7flat13-piano.yml +54 -0
  670. data/db/seeds/chord_voicings/c/c7flat5-guitar.yml +11 -0
  671. data/db/seeds/chord_voicings/c/c7flat5-piano.yml +43 -0
  672. data/db/seeds/chord_voicings/c/c7flat5flat9-guitar.yml +11 -0
  673. data/db/seeds/chord_voicings/c/c7flat5flat9-piano.yml +54 -0
  674. data/db/seeds/chord_voicings/c/c7flat5sharp9-guitar.yml +11 -0
  675. data/db/seeds/chord_voicings/c/c7flat5sharp9-piano.yml +54 -0
  676. data/db/seeds/chord_voicings/c/c7flat9-guitar.yml +11 -0
  677. data/db/seeds/chord_voicings/c/c7flat9-piano.yml +54 -0
  678. data/db/seeds/chord_voicings/c/c7flat9flat13-guitar.yml +11 -0
  679. data/db/seeds/chord_voicings/c/c7flat9flat13-piano.yml +65 -0
  680. data/db/seeds/chord_voicings/c/c7flat9sharp11-guitar.yml +11 -0
  681. data/db/seeds/chord_voicings/c/c7flat9sharp11-piano.yml +65 -0
  682. data/db/seeds/chord_voicings/c/c7sharp11-guitar.yml +11 -0
  683. data/db/seeds/chord_voicings/c/c7sharp11-piano.yml +54 -0
  684. data/db/seeds/chord_voicings/c/c7sharp5-guitar.yml +11 -0
  685. data/db/seeds/chord_voicings/c/c7sharp5-piano.yml +43 -0
  686. data/db/seeds/chord_voicings/c/c7sharp5flat9-guitar.yml +11 -0
  687. data/db/seeds/chord_voicings/c/c7sharp5flat9-piano.yml +54 -0
  688. data/db/seeds/chord_voicings/c/c7sharp5sharp9-guitar.yml +11 -0
  689. data/db/seeds/chord_voicings/c/c7sharp5sharp9-piano.yml +54 -0
  690. data/db/seeds/chord_voicings/c/c7sharp9-guitar.yml +11 -0
  691. data/db/seeds/chord_voicings/c/c7sharp9-piano.yml +54 -0
  692. data/db/seeds/chord_voicings/c/c7sharp9flat13-guitar.yml +11 -0
  693. data/db/seeds/chord_voicings/c/c7sharp9flat13-piano.yml +65 -0
  694. data/db/seeds/chord_voicings/c/c7sus2-guitar.yml +23 -0
  695. data/db/seeds/chord_voicings/c/c7sus2-piano.yml +43 -0
  696. data/db/seeds/chord_voicings/c/c7sus4-guitar.yml +35 -0
  697. data/db/seeds/chord_voicings/c/c7sus4-piano.yml +43 -0
  698. data/db/seeds/chord_voicings/c/c9-guitar.yml +11 -0
  699. data/db/seeds/chord_voicings/c/c9-piano.yml +54 -0
  700. data/db/seeds/chord_voicings/c/c9flat13-guitar.yml +11 -0
  701. data/db/seeds/chord_voicings/c/c9flat13-piano.yml +65 -0
  702. data/db/seeds/chord_voicings/c/c9sharp11-guitar.yml +11 -0
  703. data/db/seeds/chord_voicings/c/c9sharp11-piano.yml +65 -0
  704. data/db/seeds/chord_voicings/c/c9sus4-guitar.yml +11 -0
  705. data/db/seeds/chord_voicings/c/c9sus4-piano.yml +54 -0
  706. data/db/seeds/chord_voicings/c/cadd11-guitar.yml +11 -0
  707. data/db/seeds/chord_voicings/c/cadd11-piano.yml +43 -0
  708. data/db/seeds/chord_voicings/c/cadd13-guitar.yml +11 -0
  709. data/db/seeds/chord_voicings/c/cadd13-piano.yml +43 -0
  710. data/db/seeds/chord_voicings/c/cadd2-guitar.yml +11 -0
  711. data/db/seeds/chord_voicings/c/cadd2-piano.yml +43 -0
  712. data/db/seeds/chord_voicings/c/cadd4-guitar.yml +11 -0
  713. data/db/seeds/chord_voicings/c/cadd4-piano.yml +43 -0
  714. data/db/seeds/chord_voicings/c/cadd9-guitar.yml +11 -0
  715. data/db/seeds/chord_voicings/c/cadd9-piano.yml +43 -0
  716. data/db/seeds/chord_voicings/c/caug-guitar.yml +23 -0
  717. data/db/seeds/chord_voicings/c/caug-piano.yml +32 -0
  718. data/db/seeds/chord_voicings/c/cdim-guitar.yml +23 -0
  719. data/db/seeds/chord_voicings/c/cdim-piano.yml +32 -0
  720. data/db/seeds/chord_voicings/c/cdim7-guitar.yml +23 -0
  721. data/db/seeds/chord_voicings/c/cdim7-piano.yml +43 -0
  722. data/db/seeds/chord_voicings/c/cm-guitar.yml +35 -0
  723. data/db/seeds/chord_voicings/c/cm-maj7-guitar.yml +35 -0
  724. data/db/seeds/chord_voicings/c/cm-maj7-piano.yml +43 -0
  725. data/db/seeds/chord_voicings/c/cm-piano.yml +32 -0
  726. data/db/seeds/chord_voicings/c/cm11-guitar.yml +11 -0
  727. data/db/seeds/chord_voicings/c/cm11-piano.yml +71 -0
  728. data/db/seeds/chord_voicings/c/cm13-guitar.yml +11 -0
  729. data/db/seeds/chord_voicings/c/cm13-piano.yml +71 -0
  730. data/db/seeds/chord_voicings/c/cm6-guitar.yml +35 -0
  731. data/db/seeds/chord_voicings/c/cm6-piano.yml +43 -0
  732. data/db/seeds/chord_voicings/c/cm7-guitar.yml +35 -0
  733. data/db/seeds/chord_voicings/c/cm7-piano.yml +43 -0
  734. data/db/seeds/chord_voicings/c/cm7add11-guitar.yml +11 -0
  735. data/db/seeds/chord_voicings/c/cm7add11-piano.yml +54 -0
  736. data/db/seeds/chord_voicings/c/cm7flat5-guitar.yml +23 -0
  737. data/db/seeds/chord_voicings/c/cm7flat5-piano.yml +43 -0
  738. data/db/seeds/chord_voicings/c/cm9-guitar.yml +11 -0
  739. data/db/seeds/chord_voicings/c/cm9-piano.yml +54 -0
  740. data/db/seeds/chord_voicings/c/cmadd11-guitar.yml +11 -0
  741. data/db/seeds/chord_voicings/c/cmadd11-piano.yml +43 -0
  742. data/db/seeds/chord_voicings/c/cmadd13-guitar.yml +11 -0
  743. data/db/seeds/chord_voicings/c/cmadd13-piano.yml +43 -0
  744. data/db/seeds/chord_voicings/c/cmadd2-guitar.yml +11 -0
  745. data/db/seeds/chord_voicings/c/cmadd2-piano.yml +43 -0
  746. data/db/seeds/chord_voicings/c/cmadd4-guitar.yml +11 -0
  747. data/db/seeds/chord_voicings/c/cmadd4-piano.yml +43 -0
  748. data/db/seeds/chord_voicings/c/cmadd9-guitar.yml +11 -0
  749. data/db/seeds/chord_voicings/c/cmadd9-piano.yml +43 -0
  750. data/db/seeds/chord_voicings/c/cmaj7-guitar.yml +83 -0
  751. data/db/seeds/chord_voicings/c/cmaj7-piano.yml +43 -0
  752. data/db/seeds/chord_voicings/c/cmaj7sharp5-guitar.yml +23 -0
  753. data/db/seeds/chord_voicings/c/cmaj7sharp5-piano.yml +43 -0
  754. data/db/seeds/chord_voicings/c/csus2-guitar.yml +23 -0
  755. data/db/seeds/chord_voicings/c/csus2-piano.yml +32 -0
  756. data/db/seeds/chord_voicings/c/csus4-guitar.yml +35 -0
  757. data/db/seeds/chord_voicings/c/csus4-piano.yml +32 -0
  758. data/db/seeds/chord_voicings/c-sharp/csharp-guitar.yml +59 -0
  759. data/db/seeds/chord_voicings/c-sharp/csharp-piano.yml +32 -0
  760. data/db/seeds/chord_voicings/c-sharp/csharp11-guitar.yml +11 -0
  761. data/db/seeds/chord_voicings/c-sharp/csharp11-piano.yml +71 -0
  762. data/db/seeds/chord_voicings/c-sharp/csharp13-guitar.yml +11 -0
  763. data/db/seeds/chord_voicings/c-sharp/csharp13-piano.yml +71 -0
  764. data/db/seeds/chord_voicings/c-sharp/csharp13flat9-guitar.yml +11 -0
  765. data/db/seeds/chord_voicings/c-sharp/csharp13flat9-piano.yml +71 -0
  766. data/db/seeds/chord_voicings/c-sharp/csharp13sharp11-guitar.yml +11 -0
  767. data/db/seeds/chord_voicings/c-sharp/csharp13sharp11-piano.yml +83 -0
  768. data/db/seeds/chord_voicings/c-sharp/csharp13sharp9-guitar.yml +11 -0
  769. data/db/seeds/chord_voicings/c-sharp/csharp13sharp9-piano.yml +71 -0
  770. data/db/seeds/chord_voicings/c-sharp/csharp13sus4-guitar.yml +11 -0
  771. data/db/seeds/chord_voicings/c-sharp/csharp13sus4-piano.yml +71 -0
  772. data/db/seeds/chord_voicings/c-sharp/csharp5-guitar.yml +23 -0
  773. data/db/seeds/chord_voicings/c-sharp/csharp5-piano.yml +21 -0
  774. data/db/seeds/chord_voicings/c-sharp/csharp6-guitar.yml +59 -0
  775. data/db/seeds/chord_voicings/c-sharp/csharp6-piano.yml +43 -0
  776. data/db/seeds/chord_voicings/c-sharp/csharp7-guitar.yml +59 -0
  777. data/db/seeds/chord_voicings/c-sharp/csharp7-piano.yml +43 -0
  778. data/db/seeds/chord_voicings/c-sharp/csharp7flat13-guitar.yml +11 -0
  779. data/db/seeds/chord_voicings/c-sharp/csharp7flat13-piano.yml +54 -0
  780. data/db/seeds/chord_voicings/c-sharp/csharp7flat5-guitar.yml +11 -0
  781. data/db/seeds/chord_voicings/c-sharp/csharp7flat5-piano.yml +43 -0
  782. data/db/seeds/chord_voicings/c-sharp/csharp7flat5flat9-guitar.yml +11 -0
  783. data/db/seeds/chord_voicings/c-sharp/csharp7flat5flat9-piano.yml +54 -0
  784. data/db/seeds/chord_voicings/c-sharp/csharp7flat5sharp9-guitar.yml +11 -0
  785. data/db/seeds/chord_voicings/c-sharp/csharp7flat5sharp9-piano.yml +54 -0
  786. data/db/seeds/chord_voicings/c-sharp/csharp7flat9-guitar.yml +11 -0
  787. data/db/seeds/chord_voicings/c-sharp/csharp7flat9-piano.yml +54 -0
  788. data/db/seeds/chord_voicings/c-sharp/csharp7flat9flat13-guitar.yml +11 -0
  789. data/db/seeds/chord_voicings/c-sharp/csharp7flat9flat13-piano.yml +65 -0
  790. data/db/seeds/chord_voicings/c-sharp/csharp7flat9sharp11-guitar.yml +11 -0
  791. data/db/seeds/chord_voicings/c-sharp/csharp7flat9sharp11-piano.yml +65 -0
  792. data/db/seeds/chord_voicings/c-sharp/csharp7sharp11-guitar.yml +11 -0
  793. data/db/seeds/chord_voicings/c-sharp/csharp7sharp11-piano.yml +54 -0
  794. data/db/seeds/chord_voicings/c-sharp/csharp7sharp5-guitar.yml +11 -0
  795. data/db/seeds/chord_voicings/c-sharp/csharp7sharp5-piano.yml +43 -0
  796. data/db/seeds/chord_voicings/c-sharp/csharp7sharp5flat9-guitar.yml +11 -0
  797. data/db/seeds/chord_voicings/c-sharp/csharp7sharp5flat9-piano.yml +54 -0
  798. data/db/seeds/chord_voicings/c-sharp/csharp7sharp5sharp9-guitar.yml +11 -0
  799. data/db/seeds/chord_voicings/c-sharp/csharp7sharp5sharp9-piano.yml +54 -0
  800. data/db/seeds/chord_voicings/c-sharp/csharp7sharp9-guitar.yml +11 -0
  801. data/db/seeds/chord_voicings/c-sharp/csharp7sharp9-piano.yml +54 -0
  802. data/db/seeds/chord_voicings/c-sharp/csharp7sharp9flat13-guitar.yml +11 -0
  803. data/db/seeds/chord_voicings/c-sharp/csharp7sharp9flat13-piano.yml +65 -0
  804. data/db/seeds/chord_voicings/c-sharp/csharp7sus2-guitar.yml +23 -0
  805. data/db/seeds/chord_voicings/c-sharp/csharp7sus2-piano.yml +43 -0
  806. data/db/seeds/chord_voicings/c-sharp/csharp7sus4-guitar.yml +35 -0
  807. data/db/seeds/chord_voicings/c-sharp/csharp7sus4-piano.yml +43 -0
  808. data/db/seeds/chord_voicings/c-sharp/csharp9-guitar.yml +11 -0
  809. data/db/seeds/chord_voicings/c-sharp/csharp9-piano.yml +54 -0
  810. data/db/seeds/chord_voicings/c-sharp/csharp9flat13-guitar.yml +11 -0
  811. data/db/seeds/chord_voicings/c-sharp/csharp9flat13-piano.yml +65 -0
  812. data/db/seeds/chord_voicings/c-sharp/csharp9sharp11-guitar.yml +11 -0
  813. data/db/seeds/chord_voicings/c-sharp/csharp9sharp11-piano.yml +65 -0
  814. data/db/seeds/chord_voicings/c-sharp/csharp9sus4-guitar.yml +11 -0
  815. data/db/seeds/chord_voicings/c-sharp/csharp9sus4-piano.yml +54 -0
  816. data/db/seeds/chord_voicings/c-sharp/csharpadd11-guitar.yml +11 -0
  817. data/db/seeds/chord_voicings/c-sharp/csharpadd11-piano.yml +43 -0
  818. data/db/seeds/chord_voicings/c-sharp/csharpadd13-guitar.yml +11 -0
  819. data/db/seeds/chord_voicings/c-sharp/csharpadd13-piano.yml +43 -0
  820. data/db/seeds/chord_voicings/c-sharp/csharpadd2-guitar.yml +11 -0
  821. data/db/seeds/chord_voicings/c-sharp/csharpadd2-piano.yml +43 -0
  822. data/db/seeds/chord_voicings/c-sharp/csharpadd4-guitar.yml +11 -0
  823. data/db/seeds/chord_voicings/c-sharp/csharpadd4-piano.yml +43 -0
  824. data/db/seeds/chord_voicings/c-sharp/csharpadd9-guitar.yml +11 -0
  825. data/db/seeds/chord_voicings/c-sharp/csharpadd9-piano.yml +43 -0
  826. data/db/seeds/chord_voicings/c-sharp/csharpaug-guitar.yml +23 -0
  827. data/db/seeds/chord_voicings/c-sharp/csharpaug-piano.yml +32 -0
  828. data/db/seeds/chord_voicings/c-sharp/csharpdim-guitar.yml +23 -0
  829. data/db/seeds/chord_voicings/c-sharp/csharpdim-piano.yml +32 -0
  830. data/db/seeds/chord_voicings/c-sharp/csharpdim7-guitar.yml +23 -0
  831. data/db/seeds/chord_voicings/c-sharp/csharpdim7-piano.yml +43 -0
  832. data/db/seeds/chord_voicings/c-sharp/csharpm-guitar.yml +35 -0
  833. data/db/seeds/chord_voicings/c-sharp/csharpm-maj7-guitar.yml +35 -0
  834. data/db/seeds/chord_voicings/c-sharp/csharpm-maj7-piano.yml +43 -0
  835. data/db/seeds/chord_voicings/c-sharp/csharpm-piano.yml +32 -0
  836. data/db/seeds/chord_voicings/c-sharp/csharpm11-guitar.yml +11 -0
  837. data/db/seeds/chord_voicings/c-sharp/csharpm11-piano.yml +71 -0
  838. data/db/seeds/chord_voicings/c-sharp/csharpm13-guitar.yml +11 -0
  839. data/db/seeds/chord_voicings/c-sharp/csharpm13-piano.yml +71 -0
  840. data/db/seeds/chord_voicings/c-sharp/csharpm6-guitar.yml +35 -0
  841. data/db/seeds/chord_voicings/c-sharp/csharpm6-piano.yml +43 -0
  842. data/db/seeds/chord_voicings/c-sharp/csharpm7-guitar.yml +35 -0
  843. data/db/seeds/chord_voicings/c-sharp/csharpm7-piano.yml +43 -0
  844. data/db/seeds/chord_voicings/c-sharp/csharpm7add11-guitar.yml +11 -0
  845. data/db/seeds/chord_voicings/c-sharp/csharpm7add11-piano.yml +54 -0
  846. data/db/seeds/chord_voicings/c-sharp/csharpm7flat5-guitar.yml +23 -0
  847. data/db/seeds/chord_voicings/c-sharp/csharpm7flat5-piano.yml +43 -0
  848. data/db/seeds/chord_voicings/c-sharp/csharpm9-guitar.yml +11 -0
  849. data/db/seeds/chord_voicings/c-sharp/csharpm9-piano.yml +54 -0
  850. data/db/seeds/chord_voicings/c-sharp/csharpmadd11-guitar.yml +11 -0
  851. data/db/seeds/chord_voicings/c-sharp/csharpmadd11-piano.yml +43 -0
  852. data/db/seeds/chord_voicings/c-sharp/csharpmadd13-guitar.yml +11 -0
  853. data/db/seeds/chord_voicings/c-sharp/csharpmadd13-piano.yml +43 -0
  854. data/db/seeds/chord_voicings/c-sharp/csharpmadd2-guitar.yml +11 -0
  855. data/db/seeds/chord_voicings/c-sharp/csharpmadd2-piano.yml +43 -0
  856. data/db/seeds/chord_voicings/c-sharp/csharpmadd4-guitar.yml +11 -0
  857. data/db/seeds/chord_voicings/c-sharp/csharpmadd4-piano.yml +43 -0
  858. data/db/seeds/chord_voicings/c-sharp/csharpmadd9-guitar.yml +11 -0
  859. data/db/seeds/chord_voicings/c-sharp/csharpmadd9-piano.yml +43 -0
  860. data/db/seeds/chord_voicings/c-sharp/csharpmaj7-guitar.yml +59 -0
  861. data/db/seeds/chord_voicings/c-sharp/csharpmaj7-piano.yml +43 -0
  862. data/db/seeds/chord_voicings/c-sharp/csharpmaj7sharp5-guitar.yml +23 -0
  863. data/db/seeds/chord_voicings/c-sharp/csharpmaj7sharp5-piano.yml +43 -0
  864. data/db/seeds/chord_voicings/c-sharp/csharpsus2-guitar.yml +23 -0
  865. data/db/seeds/chord_voicings/c-sharp/csharpsus2-piano.yml +32 -0
  866. data/db/seeds/chord_voicings/c-sharp/csharpsus4-guitar.yml +35 -0
  867. data/db/seeds/chord_voicings/c-sharp/csharpsus4-piano.yml +32 -0
  868. data/db/seeds/chord_voicings/d/d-guitar.yml +83 -0
  869. data/db/seeds/chord_voicings/d/d-piano.yml +32 -0
  870. data/db/seeds/chord_voicings/d/d11-guitar.yml +11 -0
  871. data/db/seeds/chord_voicings/d/d11-piano.yml +71 -0
  872. data/db/seeds/chord_voicings/d/d13-guitar.yml +11 -0
  873. data/db/seeds/chord_voicings/d/d13-piano.yml +71 -0
  874. data/db/seeds/chord_voicings/d/d13flat9-guitar.yml +11 -0
  875. data/db/seeds/chord_voicings/d/d13flat9-piano.yml +71 -0
  876. data/db/seeds/chord_voicings/d/d13sharp11-guitar.yml +11 -0
  877. data/db/seeds/chord_voicings/d/d13sharp11-piano.yml +83 -0
  878. data/db/seeds/chord_voicings/d/d13sharp9-guitar.yml +11 -0
  879. data/db/seeds/chord_voicings/d/d13sharp9-piano.yml +71 -0
  880. data/db/seeds/chord_voicings/d/d13sus4-guitar.yml +11 -0
  881. data/db/seeds/chord_voicings/d/d13sus4-piano.yml +71 -0
  882. data/db/seeds/chord_voicings/d/d5-guitar.yml +23 -0
  883. data/db/seeds/chord_voicings/d/d5-piano.yml +21 -0
  884. data/db/seeds/chord_voicings/d/d6-guitar.yml +95 -0
  885. data/db/seeds/chord_voicings/d/d6-piano.yml +43 -0
  886. data/db/seeds/chord_voicings/d/d7-guitar.yml +95 -0
  887. data/db/seeds/chord_voicings/d/d7-piano.yml +43 -0
  888. data/db/seeds/chord_voicings/d/d7flat13-guitar.yml +11 -0
  889. data/db/seeds/chord_voicings/d/d7flat13-piano.yml +54 -0
  890. data/db/seeds/chord_voicings/d/d7flat5-guitar.yml +11 -0
  891. data/db/seeds/chord_voicings/d/d7flat5-piano.yml +43 -0
  892. data/db/seeds/chord_voicings/d/d7flat5flat9-guitar.yml +11 -0
  893. data/db/seeds/chord_voicings/d/d7flat5flat9-piano.yml +54 -0
  894. data/db/seeds/chord_voicings/d/d7flat5sharp9-guitar.yml +11 -0
  895. data/db/seeds/chord_voicings/d/d7flat5sharp9-piano.yml +54 -0
  896. data/db/seeds/chord_voicings/d/d7flat9-guitar.yml +11 -0
  897. data/db/seeds/chord_voicings/d/d7flat9-piano.yml +54 -0
  898. data/db/seeds/chord_voicings/d/d7flat9flat13-guitar.yml +11 -0
  899. data/db/seeds/chord_voicings/d/d7flat9flat13-piano.yml +65 -0
  900. data/db/seeds/chord_voicings/d/d7flat9sharp11-guitar.yml +11 -0
  901. data/db/seeds/chord_voicings/d/d7flat9sharp11-piano.yml +65 -0
  902. data/db/seeds/chord_voicings/d/d7sharp11-guitar.yml +11 -0
  903. data/db/seeds/chord_voicings/d/d7sharp11-piano.yml +54 -0
  904. data/db/seeds/chord_voicings/d/d7sharp5-guitar.yml +11 -0
  905. data/db/seeds/chord_voicings/d/d7sharp5-piano.yml +43 -0
  906. data/db/seeds/chord_voicings/d/d7sharp5flat9-guitar.yml +11 -0
  907. data/db/seeds/chord_voicings/d/d7sharp5flat9-piano.yml +54 -0
  908. data/db/seeds/chord_voicings/d/d7sharp5sharp9-guitar.yml +11 -0
  909. data/db/seeds/chord_voicings/d/d7sharp5sharp9-piano.yml +54 -0
  910. data/db/seeds/chord_voicings/d/d7sharp9-guitar.yml +11 -0
  911. data/db/seeds/chord_voicings/d/d7sharp9-piano.yml +54 -0
  912. data/db/seeds/chord_voicings/d/d7sharp9flat13-guitar.yml +11 -0
  913. data/db/seeds/chord_voicings/d/d7sharp9flat13-piano.yml +65 -0
  914. data/db/seeds/chord_voicings/d/d7sus2-guitar.yml +59 -0
  915. data/db/seeds/chord_voicings/d/d7sus2-piano.yml +43 -0
  916. data/db/seeds/chord_voicings/d/d7sus4-guitar.yml +71 -0
  917. data/db/seeds/chord_voicings/d/d7sus4-piano.yml +43 -0
  918. data/db/seeds/chord_voicings/d/d9-guitar.yml +11 -0
  919. data/db/seeds/chord_voicings/d/d9-piano.yml +54 -0
  920. data/db/seeds/chord_voicings/d/d9flat13-guitar.yml +11 -0
  921. data/db/seeds/chord_voicings/d/d9flat13-piano.yml +65 -0
  922. data/db/seeds/chord_voicings/d/d9sharp11-guitar.yml +11 -0
  923. data/db/seeds/chord_voicings/d/d9sharp11-piano.yml +65 -0
  924. data/db/seeds/chord_voicings/d/d9sus4-guitar.yml +11 -0
  925. data/db/seeds/chord_voicings/d/d9sus4-piano.yml +54 -0
  926. data/db/seeds/chord_voicings/d/dadd11-guitar.yml +11 -0
  927. data/db/seeds/chord_voicings/d/dadd11-piano.yml +43 -0
  928. data/db/seeds/chord_voicings/d/dadd13-guitar.yml +11 -0
  929. data/db/seeds/chord_voicings/d/dadd13-piano.yml +43 -0
  930. data/db/seeds/chord_voicings/d/dadd2-guitar.yml +11 -0
  931. data/db/seeds/chord_voicings/d/dadd2-piano.yml +43 -0
  932. data/db/seeds/chord_voicings/d/dadd4-guitar.yml +11 -0
  933. data/db/seeds/chord_voicings/d/dadd4-piano.yml +43 -0
  934. data/db/seeds/chord_voicings/d/dadd9-guitar.yml +11 -0
  935. data/db/seeds/chord_voicings/d/dadd9-piano.yml +43 -0
  936. data/db/seeds/chord_voicings/d/daug-guitar.yml +23 -0
  937. data/db/seeds/chord_voicings/d/daug-piano.yml +32 -0
  938. data/db/seeds/chord_voicings/d/ddim-guitar.yml +23 -0
  939. data/db/seeds/chord_voicings/d/ddim-piano.yml +32 -0
  940. data/db/seeds/chord_voicings/d/ddim7-guitar.yml +47 -0
  941. data/db/seeds/chord_voicings/d/ddim7-piano.yml +43 -0
  942. data/db/seeds/chord_voicings/d/dm-guitar.yml +59 -0
  943. data/db/seeds/chord_voicings/d/dm-maj7-guitar.yml +59 -0
  944. data/db/seeds/chord_voicings/d/dm-maj7-piano.yml +43 -0
  945. data/db/seeds/chord_voicings/d/dm-piano.yml +32 -0
  946. data/db/seeds/chord_voicings/d/dm11-guitar.yml +11 -0
  947. data/db/seeds/chord_voicings/d/dm11-piano.yml +71 -0
  948. data/db/seeds/chord_voicings/d/dm13-guitar.yml +11 -0
  949. data/db/seeds/chord_voicings/d/dm13-piano.yml +71 -0
  950. data/db/seeds/chord_voicings/d/dm6-guitar.yml +71 -0
  951. data/db/seeds/chord_voicings/d/dm6-piano.yml +43 -0
  952. data/db/seeds/chord_voicings/d/dm7-guitar.yml +71 -0
  953. data/db/seeds/chord_voicings/d/dm7-piano.yml +43 -0
  954. data/db/seeds/chord_voicings/d/dm7add11-guitar.yml +11 -0
  955. data/db/seeds/chord_voicings/d/dm7add11-piano.yml +54 -0
  956. data/db/seeds/chord_voicings/d/dm7flat5-guitar.yml +47 -0
  957. data/db/seeds/chord_voicings/d/dm7flat5-piano.yml +43 -0
  958. data/db/seeds/chord_voicings/d/dm9-guitar.yml +11 -0
  959. data/db/seeds/chord_voicings/d/dm9-piano.yml +54 -0
  960. data/db/seeds/chord_voicings/d/dmadd11-guitar.yml +11 -0
  961. data/db/seeds/chord_voicings/d/dmadd11-piano.yml +43 -0
  962. data/db/seeds/chord_voicings/d/dmadd13-guitar.yml +11 -0
  963. data/db/seeds/chord_voicings/d/dmadd13-piano.yml +43 -0
  964. data/db/seeds/chord_voicings/d/dmadd2-guitar.yml +11 -0
  965. data/db/seeds/chord_voicings/d/dmadd2-piano.yml +43 -0
  966. data/db/seeds/chord_voicings/d/dmadd4-guitar.yml +11 -0
  967. data/db/seeds/chord_voicings/d/dmadd4-piano.yml +43 -0
  968. data/db/seeds/chord_voicings/d/dmadd9-guitar.yml +11 -0
  969. data/db/seeds/chord_voicings/d/dmadd9-piano.yml +43 -0
  970. data/db/seeds/chord_voicings/d/dmaj7-guitar.yml +83 -0
  971. data/db/seeds/chord_voicings/d/dmaj7-piano.yml +43 -0
  972. data/db/seeds/chord_voicings/d/dmaj7sharp5-guitar.yml +23 -0
  973. data/db/seeds/chord_voicings/d/dmaj7sharp5-piano.yml +43 -0
  974. data/db/seeds/chord_voicings/d/dsus2-guitar.yml +47 -0
  975. data/db/seeds/chord_voicings/d/dsus2-piano.yml +32 -0
  976. data/db/seeds/chord_voicings/d/dsus4-guitar.yml +59 -0
  977. data/db/seeds/chord_voicings/d/dsus4-piano.yml +32 -0
  978. data/db/seeds/chord_voicings/d-flat/dflat-guitar.yml +59 -0
  979. data/db/seeds/chord_voicings/d-flat/dflat-piano.yml +32 -0
  980. data/db/seeds/chord_voicings/d-flat/dflat11-guitar.yml +11 -0
  981. data/db/seeds/chord_voicings/d-flat/dflat11-piano.yml +71 -0
  982. data/db/seeds/chord_voicings/d-flat/dflat13-guitar.yml +11 -0
  983. data/db/seeds/chord_voicings/d-flat/dflat13-piano.yml +71 -0
  984. data/db/seeds/chord_voicings/d-flat/dflat13flat9-guitar.yml +11 -0
  985. data/db/seeds/chord_voicings/d-flat/dflat13flat9-piano.yml +71 -0
  986. data/db/seeds/chord_voicings/d-flat/dflat13sharp11-guitar.yml +11 -0
  987. data/db/seeds/chord_voicings/d-flat/dflat13sharp11-piano.yml +83 -0
  988. data/db/seeds/chord_voicings/d-flat/dflat13sharp9-guitar.yml +11 -0
  989. data/db/seeds/chord_voicings/d-flat/dflat13sharp9-piano.yml +71 -0
  990. data/db/seeds/chord_voicings/d-flat/dflat13sus4-guitar.yml +11 -0
  991. data/db/seeds/chord_voicings/d-flat/dflat13sus4-piano.yml +71 -0
  992. data/db/seeds/chord_voicings/d-flat/dflat5-guitar.yml +23 -0
  993. data/db/seeds/chord_voicings/d-flat/dflat5-piano.yml +21 -0
  994. data/db/seeds/chord_voicings/d-flat/dflat6-guitar.yml +59 -0
  995. data/db/seeds/chord_voicings/d-flat/dflat6-piano.yml +43 -0
  996. data/db/seeds/chord_voicings/d-flat/dflat7-guitar.yml +59 -0
  997. data/db/seeds/chord_voicings/d-flat/dflat7-piano.yml +43 -0
  998. data/db/seeds/chord_voicings/d-flat/dflat7flat13-guitar.yml +11 -0
  999. data/db/seeds/chord_voicings/d-flat/dflat7flat13-piano.yml +54 -0
  1000. data/db/seeds/chord_voicings/d-flat/dflat7flat5-guitar.yml +11 -0
  1001. data/db/seeds/chord_voicings/d-flat/dflat7flat5-piano.yml +43 -0
  1002. data/db/seeds/chord_voicings/d-flat/dflat7flat5flat9-guitar.yml +11 -0
  1003. data/db/seeds/chord_voicings/d-flat/dflat7flat5flat9-piano.yml +54 -0
  1004. data/db/seeds/chord_voicings/d-flat/dflat7flat5sharp9-guitar.yml +11 -0
  1005. data/db/seeds/chord_voicings/d-flat/dflat7flat5sharp9-piano.yml +54 -0
  1006. data/db/seeds/chord_voicings/d-flat/dflat7flat9-guitar.yml +11 -0
  1007. data/db/seeds/chord_voicings/d-flat/dflat7flat9-piano.yml +54 -0
  1008. data/db/seeds/chord_voicings/d-flat/dflat7flat9flat13-guitar.yml +11 -0
  1009. data/db/seeds/chord_voicings/d-flat/dflat7flat9flat13-piano.yml +65 -0
  1010. data/db/seeds/chord_voicings/d-flat/dflat7flat9sharp11-guitar.yml +11 -0
  1011. data/db/seeds/chord_voicings/d-flat/dflat7flat9sharp11-piano.yml +65 -0
  1012. data/db/seeds/chord_voicings/d-flat/dflat7sharp11-guitar.yml +11 -0
  1013. data/db/seeds/chord_voicings/d-flat/dflat7sharp11-piano.yml +54 -0
  1014. data/db/seeds/chord_voicings/d-flat/dflat7sharp5-guitar.yml +11 -0
  1015. data/db/seeds/chord_voicings/d-flat/dflat7sharp5-piano.yml +43 -0
  1016. data/db/seeds/chord_voicings/d-flat/dflat7sharp5flat9-guitar.yml +11 -0
  1017. data/db/seeds/chord_voicings/d-flat/dflat7sharp5flat9-piano.yml +54 -0
  1018. data/db/seeds/chord_voicings/d-flat/dflat7sharp5sharp9-guitar.yml +11 -0
  1019. data/db/seeds/chord_voicings/d-flat/dflat7sharp5sharp9-piano.yml +54 -0
  1020. data/db/seeds/chord_voicings/d-flat/dflat7sharp9-guitar.yml +11 -0
  1021. data/db/seeds/chord_voicings/d-flat/dflat7sharp9-piano.yml +54 -0
  1022. data/db/seeds/chord_voicings/d-flat/dflat7sharp9flat13-guitar.yml +11 -0
  1023. data/db/seeds/chord_voicings/d-flat/dflat7sharp9flat13-piano.yml +65 -0
  1024. data/db/seeds/chord_voicings/d-flat/dflat7sus2-guitar.yml +23 -0
  1025. data/db/seeds/chord_voicings/d-flat/dflat7sus2-piano.yml +43 -0
  1026. data/db/seeds/chord_voicings/d-flat/dflat7sus4-guitar.yml +35 -0
  1027. data/db/seeds/chord_voicings/d-flat/dflat7sus4-piano.yml +43 -0
  1028. data/db/seeds/chord_voicings/d-flat/dflat9-guitar.yml +11 -0
  1029. data/db/seeds/chord_voicings/d-flat/dflat9-piano.yml +54 -0
  1030. data/db/seeds/chord_voicings/d-flat/dflat9flat13-guitar.yml +11 -0
  1031. data/db/seeds/chord_voicings/d-flat/dflat9flat13-piano.yml +65 -0
  1032. data/db/seeds/chord_voicings/d-flat/dflat9sharp11-guitar.yml +11 -0
  1033. data/db/seeds/chord_voicings/d-flat/dflat9sharp11-piano.yml +65 -0
  1034. data/db/seeds/chord_voicings/d-flat/dflat9sus4-guitar.yml +11 -0
  1035. data/db/seeds/chord_voicings/d-flat/dflat9sus4-piano.yml +54 -0
  1036. data/db/seeds/chord_voicings/d-flat/dflatadd11-guitar.yml +11 -0
  1037. data/db/seeds/chord_voicings/d-flat/dflatadd11-piano.yml +43 -0
  1038. data/db/seeds/chord_voicings/d-flat/dflatadd13-guitar.yml +11 -0
  1039. data/db/seeds/chord_voicings/d-flat/dflatadd13-piano.yml +43 -0
  1040. data/db/seeds/chord_voicings/d-flat/dflatadd2-guitar.yml +11 -0
  1041. data/db/seeds/chord_voicings/d-flat/dflatadd2-piano.yml +43 -0
  1042. data/db/seeds/chord_voicings/d-flat/dflatadd4-guitar.yml +11 -0
  1043. data/db/seeds/chord_voicings/d-flat/dflatadd4-piano.yml +43 -0
  1044. data/db/seeds/chord_voicings/d-flat/dflatadd9-guitar.yml +11 -0
  1045. data/db/seeds/chord_voicings/d-flat/dflatadd9-piano.yml +43 -0
  1046. data/db/seeds/chord_voicings/d-flat/dflataug-guitar.yml +23 -0
  1047. data/db/seeds/chord_voicings/d-flat/dflataug-piano.yml +32 -0
  1048. data/db/seeds/chord_voicings/d-flat/dflatdim-guitar.yml +23 -0
  1049. data/db/seeds/chord_voicings/d-flat/dflatdim-piano.yml +32 -0
  1050. data/db/seeds/chord_voicings/d-flat/dflatdim7-guitar.yml +23 -0
  1051. data/db/seeds/chord_voicings/d-flat/dflatdim7-piano.yml +43 -0
  1052. data/db/seeds/chord_voicings/d-flat/dflatm-guitar.yml +35 -0
  1053. data/db/seeds/chord_voicings/d-flat/dflatm-maj7-guitar.yml +35 -0
  1054. data/db/seeds/chord_voicings/d-flat/dflatm-maj7-piano.yml +43 -0
  1055. data/db/seeds/chord_voicings/d-flat/dflatm-piano.yml +32 -0
  1056. data/db/seeds/chord_voicings/d-flat/dflatm11-guitar.yml +11 -0
  1057. data/db/seeds/chord_voicings/d-flat/dflatm11-piano.yml +71 -0
  1058. data/db/seeds/chord_voicings/d-flat/dflatm13-guitar.yml +11 -0
  1059. data/db/seeds/chord_voicings/d-flat/dflatm13-piano.yml +71 -0
  1060. data/db/seeds/chord_voicings/d-flat/dflatm6-guitar.yml +35 -0
  1061. data/db/seeds/chord_voicings/d-flat/dflatm6-piano.yml +43 -0
  1062. data/db/seeds/chord_voicings/d-flat/dflatm7-guitar.yml +35 -0
  1063. data/db/seeds/chord_voicings/d-flat/dflatm7-piano.yml +43 -0
  1064. data/db/seeds/chord_voicings/d-flat/dflatm7add11-guitar.yml +11 -0
  1065. data/db/seeds/chord_voicings/d-flat/dflatm7add11-piano.yml +54 -0
  1066. data/db/seeds/chord_voicings/d-flat/dflatm7flat5-guitar.yml +23 -0
  1067. data/db/seeds/chord_voicings/d-flat/dflatm7flat5-piano.yml +43 -0
  1068. data/db/seeds/chord_voicings/d-flat/dflatm9-guitar.yml +11 -0
  1069. data/db/seeds/chord_voicings/d-flat/dflatm9-piano.yml +54 -0
  1070. data/db/seeds/chord_voicings/d-flat/dflatmadd11-guitar.yml +11 -0
  1071. data/db/seeds/chord_voicings/d-flat/dflatmadd11-piano.yml +43 -0
  1072. data/db/seeds/chord_voicings/d-flat/dflatmadd13-guitar.yml +11 -0
  1073. data/db/seeds/chord_voicings/d-flat/dflatmadd13-piano.yml +43 -0
  1074. data/db/seeds/chord_voicings/d-flat/dflatmadd2-guitar.yml +11 -0
  1075. data/db/seeds/chord_voicings/d-flat/dflatmadd2-piano.yml +43 -0
  1076. data/db/seeds/chord_voicings/d-flat/dflatmadd4-guitar.yml +11 -0
  1077. data/db/seeds/chord_voicings/d-flat/dflatmadd4-piano.yml +43 -0
  1078. data/db/seeds/chord_voicings/d-flat/dflatmadd9-guitar.yml +11 -0
  1079. data/db/seeds/chord_voicings/d-flat/dflatmadd9-piano.yml +43 -0
  1080. data/db/seeds/chord_voicings/d-flat/dflatmaj7-guitar.yml +59 -0
  1081. data/db/seeds/chord_voicings/d-flat/dflatmaj7-piano.yml +43 -0
  1082. data/db/seeds/chord_voicings/d-flat/dflatmaj7sharp5-guitar.yml +23 -0
  1083. data/db/seeds/chord_voicings/d-flat/dflatmaj7sharp5-piano.yml +43 -0
  1084. data/db/seeds/chord_voicings/d-flat/dflatsus2-guitar.yml +23 -0
  1085. data/db/seeds/chord_voicings/d-flat/dflatsus2-piano.yml +32 -0
  1086. data/db/seeds/chord_voicings/d-flat/dflatsus4-guitar.yml +35 -0
  1087. data/db/seeds/chord_voicings/d-flat/dflatsus4-piano.yml +32 -0
  1088. data/db/seeds/chord_voicings/d-sharp/dsharp-guitar.yml +59 -0
  1089. data/db/seeds/chord_voicings/d-sharp/dsharp-piano.yml +32 -0
  1090. data/db/seeds/chord_voicings/d-sharp/dsharp11-guitar.yml +11 -0
  1091. data/db/seeds/chord_voicings/d-sharp/dsharp11-piano.yml +71 -0
  1092. data/db/seeds/chord_voicings/d-sharp/dsharp13-guitar.yml +11 -0
  1093. data/db/seeds/chord_voicings/d-sharp/dsharp13-piano.yml +71 -0
  1094. data/db/seeds/chord_voicings/d-sharp/dsharp13flat9-guitar.yml +11 -0
  1095. data/db/seeds/chord_voicings/d-sharp/dsharp13flat9-piano.yml +71 -0
  1096. data/db/seeds/chord_voicings/d-sharp/dsharp13sharp11-guitar.yml +11 -0
  1097. data/db/seeds/chord_voicings/d-sharp/dsharp13sharp11-piano.yml +83 -0
  1098. data/db/seeds/chord_voicings/d-sharp/dsharp13sharp9-guitar.yml +11 -0
  1099. data/db/seeds/chord_voicings/d-sharp/dsharp13sharp9-piano.yml +71 -0
  1100. data/db/seeds/chord_voicings/d-sharp/dsharp13sus4-guitar.yml +11 -0
  1101. data/db/seeds/chord_voicings/d-sharp/dsharp13sus4-piano.yml +71 -0
  1102. data/db/seeds/chord_voicings/d-sharp/dsharp5-guitar.yml +23 -0
  1103. data/db/seeds/chord_voicings/d-sharp/dsharp5-piano.yml +21 -0
  1104. data/db/seeds/chord_voicings/d-sharp/dsharp6-guitar.yml +59 -0
  1105. data/db/seeds/chord_voicings/d-sharp/dsharp6-piano.yml +43 -0
  1106. data/db/seeds/chord_voicings/d-sharp/dsharp7-guitar.yml +59 -0
  1107. data/db/seeds/chord_voicings/d-sharp/dsharp7-piano.yml +43 -0
  1108. data/db/seeds/chord_voicings/d-sharp/dsharp7flat13-guitar.yml +11 -0
  1109. data/db/seeds/chord_voicings/d-sharp/dsharp7flat13-piano.yml +54 -0
  1110. data/db/seeds/chord_voicings/d-sharp/dsharp7flat5-guitar.yml +11 -0
  1111. data/db/seeds/chord_voicings/d-sharp/dsharp7flat5-piano.yml +43 -0
  1112. data/db/seeds/chord_voicings/d-sharp/dsharp7flat5flat9-guitar.yml +11 -0
  1113. data/db/seeds/chord_voicings/d-sharp/dsharp7flat5flat9-piano.yml +54 -0
  1114. data/db/seeds/chord_voicings/d-sharp/dsharp7flat5sharp9-guitar.yml +11 -0
  1115. data/db/seeds/chord_voicings/d-sharp/dsharp7flat5sharp9-piano.yml +54 -0
  1116. data/db/seeds/chord_voicings/d-sharp/dsharp7flat9-guitar.yml +11 -0
  1117. data/db/seeds/chord_voicings/d-sharp/dsharp7flat9-piano.yml +54 -0
  1118. data/db/seeds/chord_voicings/d-sharp/dsharp7flat9flat13-guitar.yml +11 -0
  1119. data/db/seeds/chord_voicings/d-sharp/dsharp7flat9flat13-piano.yml +65 -0
  1120. data/db/seeds/chord_voicings/d-sharp/dsharp7flat9sharp11-guitar.yml +11 -0
  1121. data/db/seeds/chord_voicings/d-sharp/dsharp7flat9sharp11-piano.yml +65 -0
  1122. data/db/seeds/chord_voicings/d-sharp/dsharp7sharp11-guitar.yml +11 -0
  1123. data/db/seeds/chord_voicings/d-sharp/dsharp7sharp11-piano.yml +54 -0
  1124. data/db/seeds/chord_voicings/d-sharp/dsharp7sharp5-guitar.yml +11 -0
  1125. data/db/seeds/chord_voicings/d-sharp/dsharp7sharp5-piano.yml +43 -0
  1126. data/db/seeds/chord_voicings/d-sharp/dsharp7sharp5flat9-guitar.yml +11 -0
  1127. data/db/seeds/chord_voicings/d-sharp/dsharp7sharp5flat9-piano.yml +54 -0
  1128. data/db/seeds/chord_voicings/d-sharp/dsharp7sharp5sharp9-guitar.yml +11 -0
  1129. data/db/seeds/chord_voicings/d-sharp/dsharp7sharp5sharp9-piano.yml +54 -0
  1130. data/db/seeds/chord_voicings/d-sharp/dsharp7sharp9-guitar.yml +11 -0
  1131. data/db/seeds/chord_voicings/d-sharp/dsharp7sharp9-piano.yml +54 -0
  1132. data/db/seeds/chord_voicings/d-sharp/dsharp7sharp9flat13-guitar.yml +11 -0
  1133. data/db/seeds/chord_voicings/d-sharp/dsharp7sharp9flat13-piano.yml +65 -0
  1134. data/db/seeds/chord_voicings/d-sharp/dsharp7sus2-guitar.yml +23 -0
  1135. data/db/seeds/chord_voicings/d-sharp/dsharp7sus2-piano.yml +43 -0
  1136. data/db/seeds/chord_voicings/d-sharp/dsharp7sus4-guitar.yml +35 -0
  1137. data/db/seeds/chord_voicings/d-sharp/dsharp7sus4-piano.yml +43 -0
  1138. data/db/seeds/chord_voicings/d-sharp/dsharp9-guitar.yml +11 -0
  1139. data/db/seeds/chord_voicings/d-sharp/dsharp9-piano.yml +54 -0
  1140. data/db/seeds/chord_voicings/d-sharp/dsharp9flat13-guitar.yml +11 -0
  1141. data/db/seeds/chord_voicings/d-sharp/dsharp9flat13-piano.yml +65 -0
  1142. data/db/seeds/chord_voicings/d-sharp/dsharp9sharp11-guitar.yml +11 -0
  1143. data/db/seeds/chord_voicings/d-sharp/dsharp9sharp11-piano.yml +65 -0
  1144. data/db/seeds/chord_voicings/d-sharp/dsharp9sus4-guitar.yml +11 -0
  1145. data/db/seeds/chord_voicings/d-sharp/dsharp9sus4-piano.yml +54 -0
  1146. data/db/seeds/chord_voicings/d-sharp/dsharpadd11-guitar.yml +11 -0
  1147. data/db/seeds/chord_voicings/d-sharp/dsharpadd11-piano.yml +43 -0
  1148. data/db/seeds/chord_voicings/d-sharp/dsharpadd13-guitar.yml +11 -0
  1149. data/db/seeds/chord_voicings/d-sharp/dsharpadd13-piano.yml +43 -0
  1150. data/db/seeds/chord_voicings/d-sharp/dsharpadd2-guitar.yml +11 -0
  1151. data/db/seeds/chord_voicings/d-sharp/dsharpadd2-piano.yml +43 -0
  1152. data/db/seeds/chord_voicings/d-sharp/dsharpadd4-guitar.yml +11 -0
  1153. data/db/seeds/chord_voicings/d-sharp/dsharpadd4-piano.yml +43 -0
  1154. data/db/seeds/chord_voicings/d-sharp/dsharpadd9-guitar.yml +11 -0
  1155. data/db/seeds/chord_voicings/d-sharp/dsharpadd9-piano.yml +43 -0
  1156. data/db/seeds/chord_voicings/d-sharp/dsharpaug-guitar.yml +23 -0
  1157. data/db/seeds/chord_voicings/d-sharp/dsharpaug-piano.yml +32 -0
  1158. data/db/seeds/chord_voicings/d-sharp/dsharpdim-guitar.yml +23 -0
  1159. data/db/seeds/chord_voicings/d-sharp/dsharpdim-piano.yml +32 -0
  1160. data/db/seeds/chord_voicings/d-sharp/dsharpdim7-guitar.yml +23 -0
  1161. data/db/seeds/chord_voicings/d-sharp/dsharpdim7-piano.yml +43 -0
  1162. data/db/seeds/chord_voicings/d-sharp/dsharpm-guitar.yml +35 -0
  1163. data/db/seeds/chord_voicings/d-sharp/dsharpm-maj7-guitar.yml +35 -0
  1164. data/db/seeds/chord_voicings/d-sharp/dsharpm-maj7-piano.yml +43 -0
  1165. data/db/seeds/chord_voicings/d-sharp/dsharpm-piano.yml +32 -0
  1166. data/db/seeds/chord_voicings/d-sharp/dsharpm11-guitar.yml +11 -0
  1167. data/db/seeds/chord_voicings/d-sharp/dsharpm11-piano.yml +71 -0
  1168. data/db/seeds/chord_voicings/d-sharp/dsharpm13-guitar.yml +11 -0
  1169. data/db/seeds/chord_voicings/d-sharp/dsharpm13-piano.yml +71 -0
  1170. data/db/seeds/chord_voicings/d-sharp/dsharpm6-guitar.yml +35 -0
  1171. data/db/seeds/chord_voicings/d-sharp/dsharpm6-piano.yml +43 -0
  1172. data/db/seeds/chord_voicings/d-sharp/dsharpm7-guitar.yml +35 -0
  1173. data/db/seeds/chord_voicings/d-sharp/dsharpm7-piano.yml +43 -0
  1174. data/db/seeds/chord_voicings/d-sharp/dsharpm7add11-guitar.yml +11 -0
  1175. data/db/seeds/chord_voicings/d-sharp/dsharpm7add11-piano.yml +54 -0
  1176. data/db/seeds/chord_voicings/d-sharp/dsharpm7flat5-guitar.yml +23 -0
  1177. data/db/seeds/chord_voicings/d-sharp/dsharpm7flat5-piano.yml +43 -0
  1178. data/db/seeds/chord_voicings/d-sharp/dsharpm9-guitar.yml +11 -0
  1179. data/db/seeds/chord_voicings/d-sharp/dsharpm9-piano.yml +54 -0
  1180. data/db/seeds/chord_voicings/d-sharp/dsharpmadd11-guitar.yml +11 -0
  1181. data/db/seeds/chord_voicings/d-sharp/dsharpmadd11-piano.yml +43 -0
  1182. data/db/seeds/chord_voicings/d-sharp/dsharpmadd13-guitar.yml +11 -0
  1183. data/db/seeds/chord_voicings/d-sharp/dsharpmadd13-piano.yml +43 -0
  1184. data/db/seeds/chord_voicings/d-sharp/dsharpmadd2-guitar.yml +11 -0
  1185. data/db/seeds/chord_voicings/d-sharp/dsharpmadd2-piano.yml +43 -0
  1186. data/db/seeds/chord_voicings/d-sharp/dsharpmadd4-guitar.yml +11 -0
  1187. data/db/seeds/chord_voicings/d-sharp/dsharpmadd4-piano.yml +43 -0
  1188. data/db/seeds/chord_voicings/d-sharp/dsharpmadd9-guitar.yml +11 -0
  1189. data/db/seeds/chord_voicings/d-sharp/dsharpmadd9-piano.yml +43 -0
  1190. data/db/seeds/chord_voicings/d-sharp/dsharpmaj7-guitar.yml +59 -0
  1191. data/db/seeds/chord_voicings/d-sharp/dsharpmaj7-piano.yml +43 -0
  1192. data/db/seeds/chord_voicings/d-sharp/dsharpmaj7sharp5-guitar.yml +23 -0
  1193. data/db/seeds/chord_voicings/d-sharp/dsharpmaj7sharp5-piano.yml +43 -0
  1194. data/db/seeds/chord_voicings/d-sharp/dsharpsus2-guitar.yml +23 -0
  1195. data/db/seeds/chord_voicings/d-sharp/dsharpsus2-piano.yml +32 -0
  1196. data/db/seeds/chord_voicings/d-sharp/dsharpsus4-guitar.yml +35 -0
  1197. data/db/seeds/chord_voicings/d-sharp/dsharpsus4-piano.yml +32 -0
  1198. data/db/seeds/chord_voicings/e/e-guitar.yml +59 -0
  1199. data/db/seeds/chord_voicings/e/e-piano.yml +32 -0
  1200. data/db/seeds/chord_voicings/e/e11-guitar.yml +11 -0
  1201. data/db/seeds/chord_voicings/e/e11-piano.yml +71 -0
  1202. data/db/seeds/chord_voicings/e/e13-guitar.yml +11 -0
  1203. data/db/seeds/chord_voicings/e/e13-piano.yml +71 -0
  1204. data/db/seeds/chord_voicings/e/e13flat9-guitar.yml +11 -0
  1205. data/db/seeds/chord_voicings/e/e13flat9-piano.yml +71 -0
  1206. data/db/seeds/chord_voicings/e/e13sharp11-guitar.yml +11 -0
  1207. data/db/seeds/chord_voicings/e/e13sharp11-piano.yml +83 -0
  1208. data/db/seeds/chord_voicings/e/e13sharp9-guitar.yml +11 -0
  1209. data/db/seeds/chord_voicings/e/e13sharp9-piano.yml +71 -0
  1210. data/db/seeds/chord_voicings/e/e13sus4-guitar.yml +11 -0
  1211. data/db/seeds/chord_voicings/e/e13sus4-piano.yml +71 -0
  1212. data/db/seeds/chord_voicings/e/e5-guitar.yml +23 -0
  1213. data/db/seeds/chord_voicings/e/e5-piano.yml +21 -0
  1214. data/db/seeds/chord_voicings/e/e6-guitar.yml +59 -0
  1215. data/db/seeds/chord_voicings/e/e6-piano.yml +43 -0
  1216. data/db/seeds/chord_voicings/e/e7-guitar.yml +59 -0
  1217. data/db/seeds/chord_voicings/e/e7-piano.yml +43 -0
  1218. data/db/seeds/chord_voicings/e/e7flat13-guitar.yml +11 -0
  1219. data/db/seeds/chord_voicings/e/e7flat13-piano.yml +54 -0
  1220. data/db/seeds/chord_voicings/e/e7flat5-guitar.yml +11 -0
  1221. data/db/seeds/chord_voicings/e/e7flat5-piano.yml +43 -0
  1222. data/db/seeds/chord_voicings/e/e7flat5flat9-guitar.yml +11 -0
  1223. data/db/seeds/chord_voicings/e/e7flat5flat9-piano.yml +54 -0
  1224. data/db/seeds/chord_voicings/e/e7flat5sharp9-guitar.yml +11 -0
  1225. data/db/seeds/chord_voicings/e/e7flat5sharp9-piano.yml +54 -0
  1226. data/db/seeds/chord_voicings/e/e7flat9-guitar.yml +11 -0
  1227. data/db/seeds/chord_voicings/e/e7flat9-piano.yml +54 -0
  1228. data/db/seeds/chord_voicings/e/e7flat9flat13-guitar.yml +11 -0
  1229. data/db/seeds/chord_voicings/e/e7flat9flat13-piano.yml +65 -0
  1230. data/db/seeds/chord_voicings/e/e7flat9sharp11-guitar.yml +11 -0
  1231. data/db/seeds/chord_voicings/e/e7flat9sharp11-piano.yml +65 -0
  1232. data/db/seeds/chord_voicings/e/e7sharp11-guitar.yml +11 -0
  1233. data/db/seeds/chord_voicings/e/e7sharp11-piano.yml +54 -0
  1234. data/db/seeds/chord_voicings/e/e7sharp5-guitar.yml +11 -0
  1235. data/db/seeds/chord_voicings/e/e7sharp5-piano.yml +43 -0
  1236. data/db/seeds/chord_voicings/e/e7sharp5flat9-guitar.yml +11 -0
  1237. data/db/seeds/chord_voicings/e/e7sharp5flat9-piano.yml +54 -0
  1238. data/db/seeds/chord_voicings/e/e7sharp5sharp9-guitar.yml +11 -0
  1239. data/db/seeds/chord_voicings/e/e7sharp5sharp9-piano.yml +54 -0
  1240. data/db/seeds/chord_voicings/e/e7sharp9-guitar.yml +11 -0
  1241. data/db/seeds/chord_voicings/e/e7sharp9-piano.yml +54 -0
  1242. data/db/seeds/chord_voicings/e/e7sharp9flat13-guitar.yml +11 -0
  1243. data/db/seeds/chord_voicings/e/e7sharp9flat13-piano.yml +65 -0
  1244. data/db/seeds/chord_voicings/e/e7sus2-guitar.yml +23 -0
  1245. data/db/seeds/chord_voicings/e/e7sus2-piano.yml +43 -0
  1246. data/db/seeds/chord_voicings/e/e7sus4-guitar.yml +35 -0
  1247. data/db/seeds/chord_voicings/e/e7sus4-piano.yml +43 -0
  1248. data/db/seeds/chord_voicings/e/e9-guitar.yml +11 -0
  1249. data/db/seeds/chord_voicings/e/e9-piano.yml +54 -0
  1250. data/db/seeds/chord_voicings/e/e9flat13-guitar.yml +11 -0
  1251. data/db/seeds/chord_voicings/e/e9flat13-piano.yml +65 -0
  1252. data/db/seeds/chord_voicings/e/e9sharp11-guitar.yml +11 -0
  1253. data/db/seeds/chord_voicings/e/e9sharp11-piano.yml +65 -0
  1254. data/db/seeds/chord_voicings/e/e9sus4-guitar.yml +11 -0
  1255. data/db/seeds/chord_voicings/e/e9sus4-piano.yml +54 -0
  1256. data/db/seeds/chord_voicings/e/eadd11-guitar.yml +11 -0
  1257. data/db/seeds/chord_voicings/e/eadd11-piano.yml +43 -0
  1258. data/db/seeds/chord_voicings/e/eadd13-guitar.yml +11 -0
  1259. data/db/seeds/chord_voicings/e/eadd13-piano.yml +43 -0
  1260. data/db/seeds/chord_voicings/e/eadd2-guitar.yml +11 -0
  1261. data/db/seeds/chord_voicings/e/eadd2-piano.yml +43 -0
  1262. data/db/seeds/chord_voicings/e/eadd4-guitar.yml +11 -0
  1263. data/db/seeds/chord_voicings/e/eadd4-piano.yml +43 -0
  1264. data/db/seeds/chord_voicings/e/eadd9-guitar.yml +11 -0
  1265. data/db/seeds/chord_voicings/e/eadd9-piano.yml +43 -0
  1266. data/db/seeds/chord_voicings/e/eaug-guitar.yml +23 -0
  1267. data/db/seeds/chord_voicings/e/eaug-piano.yml +32 -0
  1268. data/db/seeds/chord_voicings/e/edim-guitar.yml +23 -0
  1269. data/db/seeds/chord_voicings/e/edim-piano.yml +32 -0
  1270. data/db/seeds/chord_voicings/e/edim7-guitar.yml +23 -0
  1271. data/db/seeds/chord_voicings/e/edim7-piano.yml +43 -0
  1272. data/db/seeds/chord_voicings/e/em-guitar.yml +35 -0
  1273. data/db/seeds/chord_voicings/e/em-maj7-guitar.yml +35 -0
  1274. data/db/seeds/chord_voicings/e/em-maj7-piano.yml +43 -0
  1275. data/db/seeds/chord_voicings/e/em-piano.yml +32 -0
  1276. data/db/seeds/chord_voicings/e/em11-guitar.yml +11 -0
  1277. data/db/seeds/chord_voicings/e/em11-piano.yml +71 -0
  1278. data/db/seeds/chord_voicings/e/em13-guitar.yml +11 -0
  1279. data/db/seeds/chord_voicings/e/em13-piano.yml +71 -0
  1280. data/db/seeds/chord_voicings/e/em6-guitar.yml +35 -0
  1281. data/db/seeds/chord_voicings/e/em6-piano.yml +43 -0
  1282. data/db/seeds/chord_voicings/e/em7-guitar.yml +35 -0
  1283. data/db/seeds/chord_voicings/e/em7-piano.yml +43 -0
  1284. data/db/seeds/chord_voicings/e/em7add11-guitar.yml +11 -0
  1285. data/db/seeds/chord_voicings/e/em7add11-piano.yml +54 -0
  1286. data/db/seeds/chord_voicings/e/em7flat5-guitar.yml +23 -0
  1287. data/db/seeds/chord_voicings/e/em7flat5-piano.yml +43 -0
  1288. data/db/seeds/chord_voicings/e/em9-guitar.yml +11 -0
  1289. data/db/seeds/chord_voicings/e/em9-piano.yml +54 -0
  1290. data/db/seeds/chord_voicings/e/emadd11-guitar.yml +11 -0
  1291. data/db/seeds/chord_voicings/e/emadd11-piano.yml +43 -0
  1292. data/db/seeds/chord_voicings/e/emadd13-guitar.yml +11 -0
  1293. data/db/seeds/chord_voicings/e/emadd13-piano.yml +43 -0
  1294. data/db/seeds/chord_voicings/e/emadd2-guitar.yml +11 -0
  1295. data/db/seeds/chord_voicings/e/emadd2-piano.yml +43 -0
  1296. data/db/seeds/chord_voicings/e/emadd4-guitar.yml +11 -0
  1297. data/db/seeds/chord_voicings/e/emadd4-piano.yml +43 -0
  1298. data/db/seeds/chord_voicings/e/emadd9-guitar.yml +11 -0
  1299. data/db/seeds/chord_voicings/e/emadd9-piano.yml +43 -0
  1300. data/db/seeds/chord_voicings/e/emaj7-guitar.yml +59 -0
  1301. data/db/seeds/chord_voicings/e/emaj7-piano.yml +43 -0
  1302. data/db/seeds/chord_voicings/e/emaj7sharp5-guitar.yml +23 -0
  1303. data/db/seeds/chord_voicings/e/emaj7sharp5-piano.yml +43 -0
  1304. data/db/seeds/chord_voicings/e/esus2-guitar.yml +23 -0
  1305. data/db/seeds/chord_voicings/e/esus2-piano.yml +32 -0
  1306. data/db/seeds/chord_voicings/e/esus4-guitar.yml +35 -0
  1307. data/db/seeds/chord_voicings/e/esus4-piano.yml +32 -0
  1308. data/db/seeds/chord_voicings/e-flat/eflat-guitar.yml +59 -0
  1309. data/db/seeds/chord_voicings/e-flat/eflat-piano.yml +32 -0
  1310. data/db/seeds/chord_voicings/e-flat/eflat11-guitar.yml +11 -0
  1311. data/db/seeds/chord_voicings/e-flat/eflat11-piano.yml +71 -0
  1312. data/db/seeds/chord_voicings/e-flat/eflat13-guitar.yml +11 -0
  1313. data/db/seeds/chord_voicings/e-flat/eflat13-piano.yml +71 -0
  1314. data/db/seeds/chord_voicings/e-flat/eflat13flat9-guitar.yml +11 -0
  1315. data/db/seeds/chord_voicings/e-flat/eflat13flat9-piano.yml +71 -0
  1316. data/db/seeds/chord_voicings/e-flat/eflat13sharp11-guitar.yml +11 -0
  1317. data/db/seeds/chord_voicings/e-flat/eflat13sharp11-piano.yml +83 -0
  1318. data/db/seeds/chord_voicings/e-flat/eflat13sharp9-guitar.yml +11 -0
  1319. data/db/seeds/chord_voicings/e-flat/eflat13sharp9-piano.yml +71 -0
  1320. data/db/seeds/chord_voicings/e-flat/eflat13sus4-guitar.yml +11 -0
  1321. data/db/seeds/chord_voicings/e-flat/eflat13sus4-piano.yml +71 -0
  1322. data/db/seeds/chord_voicings/e-flat/eflat5-guitar.yml +23 -0
  1323. data/db/seeds/chord_voicings/e-flat/eflat5-piano.yml +21 -0
  1324. data/db/seeds/chord_voicings/e-flat/eflat6-guitar.yml +59 -0
  1325. data/db/seeds/chord_voicings/e-flat/eflat6-piano.yml +43 -0
  1326. data/db/seeds/chord_voicings/e-flat/eflat7-guitar.yml +59 -0
  1327. data/db/seeds/chord_voicings/e-flat/eflat7-piano.yml +43 -0
  1328. data/db/seeds/chord_voicings/e-flat/eflat7flat13-guitar.yml +11 -0
  1329. data/db/seeds/chord_voicings/e-flat/eflat7flat13-piano.yml +54 -0
  1330. data/db/seeds/chord_voicings/e-flat/eflat7flat5-guitar.yml +11 -0
  1331. data/db/seeds/chord_voicings/e-flat/eflat7flat5-piano.yml +43 -0
  1332. data/db/seeds/chord_voicings/e-flat/eflat7flat5flat9-guitar.yml +11 -0
  1333. data/db/seeds/chord_voicings/e-flat/eflat7flat5flat9-piano.yml +54 -0
  1334. data/db/seeds/chord_voicings/e-flat/eflat7flat5sharp9-guitar.yml +11 -0
  1335. data/db/seeds/chord_voicings/e-flat/eflat7flat5sharp9-piano.yml +54 -0
  1336. data/db/seeds/chord_voicings/e-flat/eflat7flat9-guitar.yml +11 -0
  1337. data/db/seeds/chord_voicings/e-flat/eflat7flat9-piano.yml +54 -0
  1338. data/db/seeds/chord_voicings/e-flat/eflat7flat9flat13-guitar.yml +11 -0
  1339. data/db/seeds/chord_voicings/e-flat/eflat7flat9flat13-piano.yml +65 -0
  1340. data/db/seeds/chord_voicings/e-flat/eflat7flat9sharp11-guitar.yml +11 -0
  1341. data/db/seeds/chord_voicings/e-flat/eflat7flat9sharp11-piano.yml +65 -0
  1342. data/db/seeds/chord_voicings/e-flat/eflat7sharp11-guitar.yml +11 -0
  1343. data/db/seeds/chord_voicings/e-flat/eflat7sharp11-piano.yml +54 -0
  1344. data/db/seeds/chord_voicings/e-flat/eflat7sharp5-guitar.yml +11 -0
  1345. data/db/seeds/chord_voicings/e-flat/eflat7sharp5-piano.yml +43 -0
  1346. data/db/seeds/chord_voicings/e-flat/eflat7sharp5flat9-guitar.yml +11 -0
  1347. data/db/seeds/chord_voicings/e-flat/eflat7sharp5flat9-piano.yml +54 -0
  1348. data/db/seeds/chord_voicings/e-flat/eflat7sharp5sharp9-guitar.yml +11 -0
  1349. data/db/seeds/chord_voicings/e-flat/eflat7sharp5sharp9-piano.yml +54 -0
  1350. data/db/seeds/chord_voicings/e-flat/eflat7sharp9-guitar.yml +11 -0
  1351. data/db/seeds/chord_voicings/e-flat/eflat7sharp9-piano.yml +54 -0
  1352. data/db/seeds/chord_voicings/e-flat/eflat7sharp9flat13-guitar.yml +11 -0
  1353. data/db/seeds/chord_voicings/e-flat/eflat7sharp9flat13-piano.yml +65 -0
  1354. data/db/seeds/chord_voicings/e-flat/eflat7sus2-guitar.yml +23 -0
  1355. data/db/seeds/chord_voicings/e-flat/eflat7sus2-piano.yml +43 -0
  1356. data/db/seeds/chord_voicings/e-flat/eflat7sus4-guitar.yml +35 -0
  1357. data/db/seeds/chord_voicings/e-flat/eflat7sus4-piano.yml +43 -0
  1358. data/db/seeds/chord_voicings/e-flat/eflat9-guitar.yml +11 -0
  1359. data/db/seeds/chord_voicings/e-flat/eflat9-piano.yml +54 -0
  1360. data/db/seeds/chord_voicings/e-flat/eflat9flat13-guitar.yml +11 -0
  1361. data/db/seeds/chord_voicings/e-flat/eflat9flat13-piano.yml +65 -0
  1362. data/db/seeds/chord_voicings/e-flat/eflat9sharp11-guitar.yml +11 -0
  1363. data/db/seeds/chord_voicings/e-flat/eflat9sharp11-piano.yml +65 -0
  1364. data/db/seeds/chord_voicings/e-flat/eflat9sus4-guitar.yml +11 -0
  1365. data/db/seeds/chord_voicings/e-flat/eflat9sus4-piano.yml +54 -0
  1366. data/db/seeds/chord_voicings/e-flat/eflatadd11-guitar.yml +11 -0
  1367. data/db/seeds/chord_voicings/e-flat/eflatadd11-piano.yml +43 -0
  1368. data/db/seeds/chord_voicings/e-flat/eflatadd13-guitar.yml +11 -0
  1369. data/db/seeds/chord_voicings/e-flat/eflatadd13-piano.yml +43 -0
  1370. data/db/seeds/chord_voicings/e-flat/eflatadd2-guitar.yml +11 -0
  1371. data/db/seeds/chord_voicings/e-flat/eflatadd2-piano.yml +43 -0
  1372. data/db/seeds/chord_voicings/e-flat/eflatadd4-guitar.yml +11 -0
  1373. data/db/seeds/chord_voicings/e-flat/eflatadd4-piano.yml +43 -0
  1374. data/db/seeds/chord_voicings/e-flat/eflatadd9-guitar.yml +11 -0
  1375. data/db/seeds/chord_voicings/e-flat/eflatadd9-piano.yml +43 -0
  1376. data/db/seeds/chord_voicings/e-flat/eflataug-guitar.yml +23 -0
  1377. data/db/seeds/chord_voicings/e-flat/eflataug-piano.yml +32 -0
  1378. data/db/seeds/chord_voicings/e-flat/eflatdim-guitar.yml +23 -0
  1379. data/db/seeds/chord_voicings/e-flat/eflatdim-piano.yml +32 -0
  1380. data/db/seeds/chord_voicings/e-flat/eflatdim7-guitar.yml +23 -0
  1381. data/db/seeds/chord_voicings/e-flat/eflatdim7-piano.yml +43 -0
  1382. data/db/seeds/chord_voicings/e-flat/eflatm-guitar.yml +35 -0
  1383. data/db/seeds/chord_voicings/e-flat/eflatm-maj7-guitar.yml +35 -0
  1384. data/db/seeds/chord_voicings/e-flat/eflatm-maj7-piano.yml +43 -0
  1385. data/db/seeds/chord_voicings/e-flat/eflatm-piano.yml +32 -0
  1386. data/db/seeds/chord_voicings/e-flat/eflatm11-guitar.yml +11 -0
  1387. data/db/seeds/chord_voicings/e-flat/eflatm11-piano.yml +71 -0
  1388. data/db/seeds/chord_voicings/e-flat/eflatm13-guitar.yml +11 -0
  1389. data/db/seeds/chord_voicings/e-flat/eflatm13-piano.yml +71 -0
  1390. data/db/seeds/chord_voicings/e-flat/eflatm6-guitar.yml +35 -0
  1391. data/db/seeds/chord_voicings/e-flat/eflatm6-piano.yml +43 -0
  1392. data/db/seeds/chord_voicings/e-flat/eflatm7-guitar.yml +35 -0
  1393. data/db/seeds/chord_voicings/e-flat/eflatm7-piano.yml +43 -0
  1394. data/db/seeds/chord_voicings/e-flat/eflatm7add11-guitar.yml +11 -0
  1395. data/db/seeds/chord_voicings/e-flat/eflatm7add11-piano.yml +54 -0
  1396. data/db/seeds/chord_voicings/e-flat/eflatm7flat5-guitar.yml +23 -0
  1397. data/db/seeds/chord_voicings/e-flat/eflatm7flat5-piano.yml +43 -0
  1398. data/db/seeds/chord_voicings/e-flat/eflatm9-guitar.yml +11 -0
  1399. data/db/seeds/chord_voicings/e-flat/eflatm9-piano.yml +54 -0
  1400. data/db/seeds/chord_voicings/e-flat/eflatmadd11-guitar.yml +11 -0
  1401. data/db/seeds/chord_voicings/e-flat/eflatmadd11-piano.yml +43 -0
  1402. data/db/seeds/chord_voicings/e-flat/eflatmadd13-guitar.yml +11 -0
  1403. data/db/seeds/chord_voicings/e-flat/eflatmadd13-piano.yml +43 -0
  1404. data/db/seeds/chord_voicings/e-flat/eflatmadd2-guitar.yml +11 -0
  1405. data/db/seeds/chord_voicings/e-flat/eflatmadd2-piano.yml +43 -0
  1406. data/db/seeds/chord_voicings/e-flat/eflatmadd4-guitar.yml +11 -0
  1407. data/db/seeds/chord_voicings/e-flat/eflatmadd4-piano.yml +43 -0
  1408. data/db/seeds/chord_voicings/e-flat/eflatmadd9-guitar.yml +11 -0
  1409. data/db/seeds/chord_voicings/e-flat/eflatmadd9-piano.yml +43 -0
  1410. data/db/seeds/chord_voicings/e-flat/eflatmaj7-guitar.yml +59 -0
  1411. data/db/seeds/chord_voicings/e-flat/eflatmaj7-piano.yml +43 -0
  1412. data/db/seeds/chord_voicings/e-flat/eflatmaj7sharp5-guitar.yml +23 -0
  1413. data/db/seeds/chord_voicings/e-flat/eflatmaj7sharp5-piano.yml +43 -0
  1414. data/db/seeds/chord_voicings/e-flat/eflatsus2-guitar.yml +23 -0
  1415. data/db/seeds/chord_voicings/e-flat/eflatsus2-piano.yml +32 -0
  1416. data/db/seeds/chord_voicings/e-flat/eflatsus4-guitar.yml +35 -0
  1417. data/db/seeds/chord_voicings/e-flat/eflatsus4-piano.yml +32 -0
  1418. data/db/seeds/chord_voicings/f/f-guitar.yml +59 -0
  1419. data/db/seeds/chord_voicings/f/f-piano.yml +32 -0
  1420. data/db/seeds/chord_voicings/f/f11-guitar.yml +11 -0
  1421. data/db/seeds/chord_voicings/f/f11-piano.yml +71 -0
  1422. data/db/seeds/chord_voicings/f/f13-guitar.yml +11 -0
  1423. data/db/seeds/chord_voicings/f/f13-piano.yml +71 -0
  1424. data/db/seeds/chord_voicings/f/f13flat9-guitar.yml +11 -0
  1425. data/db/seeds/chord_voicings/f/f13flat9-piano.yml +71 -0
  1426. data/db/seeds/chord_voicings/f/f13sharp11-guitar.yml +11 -0
  1427. data/db/seeds/chord_voicings/f/f13sharp11-piano.yml +83 -0
  1428. data/db/seeds/chord_voicings/f/f13sharp9-guitar.yml +11 -0
  1429. data/db/seeds/chord_voicings/f/f13sharp9-piano.yml +71 -0
  1430. data/db/seeds/chord_voicings/f/f13sus4-guitar.yml +11 -0
  1431. data/db/seeds/chord_voicings/f/f13sus4-piano.yml +71 -0
  1432. data/db/seeds/chord_voicings/f/f5-guitar.yml +23 -0
  1433. data/db/seeds/chord_voicings/f/f5-piano.yml +21 -0
  1434. data/db/seeds/chord_voicings/f/f6-guitar.yml +59 -0
  1435. data/db/seeds/chord_voicings/f/f6-piano.yml +43 -0
  1436. data/db/seeds/chord_voicings/f/f7-guitar.yml +59 -0
  1437. data/db/seeds/chord_voicings/f/f7-piano.yml +43 -0
  1438. data/db/seeds/chord_voicings/f/f7flat13-guitar.yml +11 -0
  1439. data/db/seeds/chord_voicings/f/f7flat13-piano.yml +54 -0
  1440. data/db/seeds/chord_voicings/f/f7flat5-guitar.yml +11 -0
  1441. data/db/seeds/chord_voicings/f/f7flat5-piano.yml +43 -0
  1442. data/db/seeds/chord_voicings/f/f7flat5flat9-guitar.yml +11 -0
  1443. data/db/seeds/chord_voicings/f/f7flat5flat9-piano.yml +54 -0
  1444. data/db/seeds/chord_voicings/f/f7flat5sharp9-guitar.yml +11 -0
  1445. data/db/seeds/chord_voicings/f/f7flat5sharp9-piano.yml +54 -0
  1446. data/db/seeds/chord_voicings/f/f7flat9-guitar.yml +11 -0
  1447. data/db/seeds/chord_voicings/f/f7flat9-piano.yml +54 -0
  1448. data/db/seeds/chord_voicings/f/f7flat9flat13-guitar.yml +11 -0
  1449. data/db/seeds/chord_voicings/f/f7flat9flat13-piano.yml +65 -0
  1450. data/db/seeds/chord_voicings/f/f7flat9sharp11-guitar.yml +11 -0
  1451. data/db/seeds/chord_voicings/f/f7flat9sharp11-piano.yml +65 -0
  1452. data/db/seeds/chord_voicings/f/f7sharp11-guitar.yml +11 -0
  1453. data/db/seeds/chord_voicings/f/f7sharp11-piano.yml +54 -0
  1454. data/db/seeds/chord_voicings/f/f7sharp5-guitar.yml +11 -0
  1455. data/db/seeds/chord_voicings/f/f7sharp5-piano.yml +43 -0
  1456. data/db/seeds/chord_voicings/f/f7sharp5flat9-guitar.yml +11 -0
  1457. data/db/seeds/chord_voicings/f/f7sharp5flat9-piano.yml +54 -0
  1458. data/db/seeds/chord_voicings/f/f7sharp5sharp9-guitar.yml +11 -0
  1459. data/db/seeds/chord_voicings/f/f7sharp5sharp9-piano.yml +54 -0
  1460. data/db/seeds/chord_voicings/f/f7sharp9-guitar.yml +11 -0
  1461. data/db/seeds/chord_voicings/f/f7sharp9-piano.yml +54 -0
  1462. data/db/seeds/chord_voicings/f/f7sharp9flat13-guitar.yml +11 -0
  1463. data/db/seeds/chord_voicings/f/f7sharp9flat13-piano.yml +65 -0
  1464. data/db/seeds/chord_voicings/f/f7sus2-guitar.yml +23 -0
  1465. data/db/seeds/chord_voicings/f/f7sus2-piano.yml +43 -0
  1466. data/db/seeds/chord_voicings/f/f7sus4-guitar.yml +35 -0
  1467. data/db/seeds/chord_voicings/f/f7sus4-piano.yml +43 -0
  1468. data/db/seeds/chord_voicings/f/f9-guitar.yml +11 -0
  1469. data/db/seeds/chord_voicings/f/f9-piano.yml +54 -0
  1470. data/db/seeds/chord_voicings/f/f9flat13-guitar.yml +11 -0
  1471. data/db/seeds/chord_voicings/f/f9flat13-piano.yml +65 -0
  1472. data/db/seeds/chord_voicings/f/f9sharp11-guitar.yml +11 -0
  1473. data/db/seeds/chord_voicings/f/f9sharp11-piano.yml +65 -0
  1474. data/db/seeds/chord_voicings/f/f9sus4-guitar.yml +11 -0
  1475. data/db/seeds/chord_voicings/f/f9sus4-piano.yml +54 -0
  1476. data/db/seeds/chord_voicings/f/fadd11-guitar.yml +11 -0
  1477. data/db/seeds/chord_voicings/f/fadd11-piano.yml +43 -0
  1478. data/db/seeds/chord_voicings/f/fadd13-guitar.yml +11 -0
  1479. data/db/seeds/chord_voicings/f/fadd13-piano.yml +43 -0
  1480. data/db/seeds/chord_voicings/f/fadd2-guitar.yml +11 -0
  1481. data/db/seeds/chord_voicings/f/fadd2-piano.yml +43 -0
  1482. data/db/seeds/chord_voicings/f/fadd4-guitar.yml +11 -0
  1483. data/db/seeds/chord_voicings/f/fadd4-piano.yml +43 -0
  1484. data/db/seeds/chord_voicings/f/fadd9-guitar.yml +11 -0
  1485. data/db/seeds/chord_voicings/f/fadd9-piano.yml +43 -0
  1486. data/db/seeds/chord_voicings/f/faug-guitar.yml +23 -0
  1487. data/db/seeds/chord_voicings/f/faug-piano.yml +32 -0
  1488. data/db/seeds/chord_voicings/f/fdim-guitar.yml +23 -0
  1489. data/db/seeds/chord_voicings/f/fdim-piano.yml +32 -0
  1490. data/db/seeds/chord_voicings/f/fdim7-guitar.yml +23 -0
  1491. data/db/seeds/chord_voicings/f/fdim7-piano.yml +43 -0
  1492. data/db/seeds/chord_voicings/f/fm-guitar.yml +35 -0
  1493. data/db/seeds/chord_voicings/f/fm-maj7-guitar.yml +35 -0
  1494. data/db/seeds/chord_voicings/f/fm-maj7-piano.yml +43 -0
  1495. data/db/seeds/chord_voicings/f/fm-piano.yml +32 -0
  1496. data/db/seeds/chord_voicings/f/fm11-guitar.yml +11 -0
  1497. data/db/seeds/chord_voicings/f/fm11-piano.yml +71 -0
  1498. data/db/seeds/chord_voicings/f/fm13-guitar.yml +11 -0
  1499. data/db/seeds/chord_voicings/f/fm13-piano.yml +71 -0
  1500. data/db/seeds/chord_voicings/f/fm6-guitar.yml +35 -0
  1501. data/db/seeds/chord_voicings/f/fm6-piano.yml +43 -0
  1502. data/db/seeds/chord_voicings/f/fm7-guitar.yml +35 -0
  1503. data/db/seeds/chord_voicings/f/fm7-piano.yml +43 -0
  1504. data/db/seeds/chord_voicings/f/fm7add11-guitar.yml +11 -0
  1505. data/db/seeds/chord_voicings/f/fm7add11-piano.yml +54 -0
  1506. data/db/seeds/chord_voicings/f/fm7flat5-guitar.yml +23 -0
  1507. data/db/seeds/chord_voicings/f/fm7flat5-piano.yml +43 -0
  1508. data/db/seeds/chord_voicings/f/fm9-guitar.yml +11 -0
  1509. data/db/seeds/chord_voicings/f/fm9-piano.yml +54 -0
  1510. data/db/seeds/chord_voicings/f/fmadd11-guitar.yml +11 -0
  1511. data/db/seeds/chord_voicings/f/fmadd11-piano.yml +43 -0
  1512. data/db/seeds/chord_voicings/f/fmadd13-guitar.yml +11 -0
  1513. data/db/seeds/chord_voicings/f/fmadd13-piano.yml +43 -0
  1514. data/db/seeds/chord_voicings/f/fmadd2-guitar.yml +11 -0
  1515. data/db/seeds/chord_voicings/f/fmadd2-piano.yml +43 -0
  1516. data/db/seeds/chord_voicings/f/fmadd4-guitar.yml +11 -0
  1517. data/db/seeds/chord_voicings/f/fmadd4-piano.yml +43 -0
  1518. data/db/seeds/chord_voicings/f/fmadd9-guitar.yml +11 -0
  1519. data/db/seeds/chord_voicings/f/fmadd9-piano.yml +43 -0
  1520. data/db/seeds/chord_voicings/f/fmaj7-guitar.yml +59 -0
  1521. data/db/seeds/chord_voicings/f/fmaj7-piano.yml +43 -0
  1522. data/db/seeds/chord_voicings/f/fmaj7sharp5-guitar.yml +23 -0
  1523. data/db/seeds/chord_voicings/f/fmaj7sharp5-piano.yml +43 -0
  1524. data/db/seeds/chord_voicings/f/fsus2-guitar.yml +23 -0
  1525. data/db/seeds/chord_voicings/f/fsus2-piano.yml +32 -0
  1526. data/db/seeds/chord_voicings/f/fsus4-guitar.yml +35 -0
  1527. data/db/seeds/chord_voicings/f/fsus4-piano.yml +32 -0
  1528. data/db/seeds/chord_voicings/f-sharp/fsharp-guitar.yml +59 -0
  1529. data/db/seeds/chord_voicings/f-sharp/fsharp-piano.yml +32 -0
  1530. data/db/seeds/chord_voicings/f-sharp/fsharp11-guitar.yml +11 -0
  1531. data/db/seeds/chord_voicings/f-sharp/fsharp11-piano.yml +71 -0
  1532. data/db/seeds/chord_voicings/f-sharp/fsharp13-guitar.yml +11 -0
  1533. data/db/seeds/chord_voicings/f-sharp/fsharp13-piano.yml +71 -0
  1534. data/db/seeds/chord_voicings/f-sharp/fsharp13flat9-guitar.yml +11 -0
  1535. data/db/seeds/chord_voicings/f-sharp/fsharp13flat9-piano.yml +71 -0
  1536. data/db/seeds/chord_voicings/f-sharp/fsharp13sharp11-guitar.yml +11 -0
  1537. data/db/seeds/chord_voicings/f-sharp/fsharp13sharp11-piano.yml +83 -0
  1538. data/db/seeds/chord_voicings/f-sharp/fsharp13sharp9-guitar.yml +11 -0
  1539. data/db/seeds/chord_voicings/f-sharp/fsharp13sharp9-piano.yml +71 -0
  1540. data/db/seeds/chord_voicings/f-sharp/fsharp13sus4-guitar.yml +11 -0
  1541. data/db/seeds/chord_voicings/f-sharp/fsharp13sus4-piano.yml +71 -0
  1542. data/db/seeds/chord_voicings/f-sharp/fsharp5-guitar.yml +23 -0
  1543. data/db/seeds/chord_voicings/f-sharp/fsharp5-piano.yml +21 -0
  1544. data/db/seeds/chord_voicings/f-sharp/fsharp6-guitar.yml +59 -0
  1545. data/db/seeds/chord_voicings/f-sharp/fsharp6-piano.yml +43 -0
  1546. data/db/seeds/chord_voicings/f-sharp/fsharp7-guitar.yml +59 -0
  1547. data/db/seeds/chord_voicings/f-sharp/fsharp7-piano.yml +43 -0
  1548. data/db/seeds/chord_voicings/f-sharp/fsharp7flat13-guitar.yml +11 -0
  1549. data/db/seeds/chord_voicings/f-sharp/fsharp7flat13-piano.yml +54 -0
  1550. data/db/seeds/chord_voicings/f-sharp/fsharp7flat5-guitar.yml +11 -0
  1551. data/db/seeds/chord_voicings/f-sharp/fsharp7flat5-piano.yml +43 -0
  1552. data/db/seeds/chord_voicings/f-sharp/fsharp7flat5flat9-guitar.yml +11 -0
  1553. data/db/seeds/chord_voicings/f-sharp/fsharp7flat5flat9-piano.yml +54 -0
  1554. data/db/seeds/chord_voicings/f-sharp/fsharp7flat5sharp9-guitar.yml +11 -0
  1555. data/db/seeds/chord_voicings/f-sharp/fsharp7flat5sharp9-piano.yml +54 -0
  1556. data/db/seeds/chord_voicings/f-sharp/fsharp7flat9-guitar.yml +11 -0
  1557. data/db/seeds/chord_voicings/f-sharp/fsharp7flat9-piano.yml +54 -0
  1558. data/db/seeds/chord_voicings/f-sharp/fsharp7flat9flat13-guitar.yml +11 -0
  1559. data/db/seeds/chord_voicings/f-sharp/fsharp7flat9flat13-piano.yml +65 -0
  1560. data/db/seeds/chord_voicings/f-sharp/fsharp7flat9sharp11-guitar.yml +11 -0
  1561. data/db/seeds/chord_voicings/f-sharp/fsharp7flat9sharp11-piano.yml +65 -0
  1562. data/db/seeds/chord_voicings/f-sharp/fsharp7sharp11-guitar.yml +11 -0
  1563. data/db/seeds/chord_voicings/f-sharp/fsharp7sharp11-piano.yml +54 -0
  1564. data/db/seeds/chord_voicings/f-sharp/fsharp7sharp5-guitar.yml +11 -0
  1565. data/db/seeds/chord_voicings/f-sharp/fsharp7sharp5-piano.yml +43 -0
  1566. data/db/seeds/chord_voicings/f-sharp/fsharp7sharp5flat9-guitar.yml +11 -0
  1567. data/db/seeds/chord_voicings/f-sharp/fsharp7sharp5flat9-piano.yml +54 -0
  1568. data/db/seeds/chord_voicings/f-sharp/fsharp7sharp5sharp9-guitar.yml +11 -0
  1569. data/db/seeds/chord_voicings/f-sharp/fsharp7sharp5sharp9-piano.yml +54 -0
  1570. data/db/seeds/chord_voicings/f-sharp/fsharp7sharp9-guitar.yml +11 -0
  1571. data/db/seeds/chord_voicings/f-sharp/fsharp7sharp9-piano.yml +54 -0
  1572. data/db/seeds/chord_voicings/f-sharp/fsharp7sharp9flat13-guitar.yml +11 -0
  1573. data/db/seeds/chord_voicings/f-sharp/fsharp7sharp9flat13-piano.yml +65 -0
  1574. data/db/seeds/chord_voicings/f-sharp/fsharp7sus2-guitar.yml +23 -0
  1575. data/db/seeds/chord_voicings/f-sharp/fsharp7sus2-piano.yml +43 -0
  1576. data/db/seeds/chord_voicings/f-sharp/fsharp7sus4-guitar.yml +35 -0
  1577. data/db/seeds/chord_voicings/f-sharp/fsharp7sus4-piano.yml +43 -0
  1578. data/db/seeds/chord_voicings/f-sharp/fsharp9-guitar.yml +11 -0
  1579. data/db/seeds/chord_voicings/f-sharp/fsharp9-piano.yml +54 -0
  1580. data/db/seeds/chord_voicings/f-sharp/fsharp9flat13-guitar.yml +11 -0
  1581. data/db/seeds/chord_voicings/f-sharp/fsharp9flat13-piano.yml +65 -0
  1582. data/db/seeds/chord_voicings/f-sharp/fsharp9sharp11-guitar.yml +11 -0
  1583. data/db/seeds/chord_voicings/f-sharp/fsharp9sharp11-piano.yml +65 -0
  1584. data/db/seeds/chord_voicings/f-sharp/fsharp9sus4-guitar.yml +11 -0
  1585. data/db/seeds/chord_voicings/f-sharp/fsharp9sus4-piano.yml +54 -0
  1586. data/db/seeds/chord_voicings/f-sharp/fsharpadd11-guitar.yml +11 -0
  1587. data/db/seeds/chord_voicings/f-sharp/fsharpadd11-piano.yml +43 -0
  1588. data/db/seeds/chord_voicings/f-sharp/fsharpadd13-guitar.yml +11 -0
  1589. data/db/seeds/chord_voicings/f-sharp/fsharpadd13-piano.yml +43 -0
  1590. data/db/seeds/chord_voicings/f-sharp/fsharpadd2-guitar.yml +11 -0
  1591. data/db/seeds/chord_voicings/f-sharp/fsharpadd2-piano.yml +43 -0
  1592. data/db/seeds/chord_voicings/f-sharp/fsharpadd4-guitar.yml +11 -0
  1593. data/db/seeds/chord_voicings/f-sharp/fsharpadd4-piano.yml +43 -0
  1594. data/db/seeds/chord_voicings/f-sharp/fsharpadd9-guitar.yml +11 -0
  1595. data/db/seeds/chord_voicings/f-sharp/fsharpadd9-piano.yml +43 -0
  1596. data/db/seeds/chord_voicings/f-sharp/fsharpaug-guitar.yml +23 -0
  1597. data/db/seeds/chord_voicings/f-sharp/fsharpaug-piano.yml +32 -0
  1598. data/db/seeds/chord_voicings/f-sharp/fsharpdim-guitar.yml +23 -0
  1599. data/db/seeds/chord_voicings/f-sharp/fsharpdim-piano.yml +32 -0
  1600. data/db/seeds/chord_voicings/f-sharp/fsharpdim7-guitar.yml +23 -0
  1601. data/db/seeds/chord_voicings/f-sharp/fsharpdim7-piano.yml +43 -0
  1602. data/db/seeds/chord_voicings/f-sharp/fsharpm-guitar.yml +35 -0
  1603. data/db/seeds/chord_voicings/f-sharp/fsharpm-maj7-guitar.yml +35 -0
  1604. data/db/seeds/chord_voicings/f-sharp/fsharpm-maj7-piano.yml +43 -0
  1605. data/db/seeds/chord_voicings/f-sharp/fsharpm-piano.yml +32 -0
  1606. data/db/seeds/chord_voicings/f-sharp/fsharpm11-guitar.yml +11 -0
  1607. data/db/seeds/chord_voicings/f-sharp/fsharpm11-piano.yml +71 -0
  1608. data/db/seeds/chord_voicings/f-sharp/fsharpm13-guitar.yml +11 -0
  1609. data/db/seeds/chord_voicings/f-sharp/fsharpm13-piano.yml +71 -0
  1610. data/db/seeds/chord_voicings/f-sharp/fsharpm6-guitar.yml +35 -0
  1611. data/db/seeds/chord_voicings/f-sharp/fsharpm6-piano.yml +43 -0
  1612. data/db/seeds/chord_voicings/f-sharp/fsharpm7-guitar.yml +35 -0
  1613. data/db/seeds/chord_voicings/f-sharp/fsharpm7-piano.yml +43 -0
  1614. data/db/seeds/chord_voicings/f-sharp/fsharpm7add11-guitar.yml +11 -0
  1615. data/db/seeds/chord_voicings/f-sharp/fsharpm7add11-piano.yml +54 -0
  1616. data/db/seeds/chord_voicings/f-sharp/fsharpm7flat5-guitar.yml +23 -0
  1617. data/db/seeds/chord_voicings/f-sharp/fsharpm7flat5-piano.yml +43 -0
  1618. data/db/seeds/chord_voicings/f-sharp/fsharpm9-guitar.yml +11 -0
  1619. data/db/seeds/chord_voicings/f-sharp/fsharpm9-piano.yml +54 -0
  1620. data/db/seeds/chord_voicings/f-sharp/fsharpmadd11-guitar.yml +11 -0
  1621. data/db/seeds/chord_voicings/f-sharp/fsharpmadd11-piano.yml +43 -0
  1622. data/db/seeds/chord_voicings/f-sharp/fsharpmadd13-guitar.yml +11 -0
  1623. data/db/seeds/chord_voicings/f-sharp/fsharpmadd13-piano.yml +43 -0
  1624. data/db/seeds/chord_voicings/f-sharp/fsharpmadd2-guitar.yml +11 -0
  1625. data/db/seeds/chord_voicings/f-sharp/fsharpmadd2-piano.yml +43 -0
  1626. data/db/seeds/chord_voicings/f-sharp/fsharpmadd4-guitar.yml +11 -0
  1627. data/db/seeds/chord_voicings/f-sharp/fsharpmadd4-piano.yml +43 -0
  1628. data/db/seeds/chord_voicings/f-sharp/fsharpmadd9-guitar.yml +11 -0
  1629. data/db/seeds/chord_voicings/f-sharp/fsharpmadd9-piano.yml +43 -0
  1630. data/db/seeds/chord_voicings/f-sharp/fsharpmaj7-guitar.yml +59 -0
  1631. data/db/seeds/chord_voicings/f-sharp/fsharpmaj7-piano.yml +43 -0
  1632. data/db/seeds/chord_voicings/f-sharp/fsharpmaj7sharp5-guitar.yml +23 -0
  1633. data/db/seeds/chord_voicings/f-sharp/fsharpmaj7sharp5-piano.yml +43 -0
  1634. data/db/seeds/chord_voicings/f-sharp/fsharpsus2-guitar.yml +23 -0
  1635. data/db/seeds/chord_voicings/f-sharp/fsharpsus2-piano.yml +32 -0
  1636. data/db/seeds/chord_voicings/f-sharp/fsharpsus4-guitar.yml +35 -0
  1637. data/db/seeds/chord_voicings/f-sharp/fsharpsus4-piano.yml +32 -0
  1638. data/db/seeds/chord_voicings/g/g-guitar.yml +59 -0
  1639. data/db/seeds/chord_voicings/g/g-piano.yml +32 -0
  1640. data/db/seeds/chord_voicings/g/g11-guitar.yml +11 -0
  1641. data/db/seeds/chord_voicings/g/g11-piano.yml +71 -0
  1642. data/db/seeds/chord_voicings/g/g13-guitar.yml +11 -0
  1643. data/db/seeds/chord_voicings/g/g13-piano.yml +71 -0
  1644. data/db/seeds/chord_voicings/g/g13flat9-guitar.yml +11 -0
  1645. data/db/seeds/chord_voicings/g/g13flat9-piano.yml +71 -0
  1646. data/db/seeds/chord_voicings/g/g13sharp11-guitar.yml +11 -0
  1647. data/db/seeds/chord_voicings/g/g13sharp11-piano.yml +83 -0
  1648. data/db/seeds/chord_voicings/g/g13sharp9-guitar.yml +11 -0
  1649. data/db/seeds/chord_voicings/g/g13sharp9-piano.yml +71 -0
  1650. data/db/seeds/chord_voicings/g/g13sus4-guitar.yml +11 -0
  1651. data/db/seeds/chord_voicings/g/g13sus4-piano.yml +71 -0
  1652. data/db/seeds/chord_voicings/g/g5-guitar.yml +23 -0
  1653. data/db/seeds/chord_voicings/g/g5-piano.yml +21 -0
  1654. data/db/seeds/chord_voicings/g/g6-guitar.yml +59 -0
  1655. data/db/seeds/chord_voicings/g/g6-piano.yml +43 -0
  1656. data/db/seeds/chord_voicings/g/g7-guitar.yml +59 -0
  1657. data/db/seeds/chord_voicings/g/g7-piano.yml +43 -0
  1658. data/db/seeds/chord_voicings/g/g7flat13-guitar.yml +11 -0
  1659. data/db/seeds/chord_voicings/g/g7flat13-piano.yml +54 -0
  1660. data/db/seeds/chord_voicings/g/g7flat5-guitar.yml +11 -0
  1661. data/db/seeds/chord_voicings/g/g7flat5-piano.yml +43 -0
  1662. data/db/seeds/chord_voicings/g/g7flat5flat9-guitar.yml +11 -0
  1663. data/db/seeds/chord_voicings/g/g7flat5flat9-piano.yml +54 -0
  1664. data/db/seeds/chord_voicings/g/g7flat5sharp9-guitar.yml +11 -0
  1665. data/db/seeds/chord_voicings/g/g7flat5sharp9-piano.yml +54 -0
  1666. data/db/seeds/chord_voicings/g/g7flat9-guitar.yml +11 -0
  1667. data/db/seeds/chord_voicings/g/g7flat9-piano.yml +54 -0
  1668. data/db/seeds/chord_voicings/g/g7flat9flat13-guitar.yml +11 -0
  1669. data/db/seeds/chord_voicings/g/g7flat9flat13-piano.yml +65 -0
  1670. data/db/seeds/chord_voicings/g/g7flat9sharp11-guitar.yml +11 -0
  1671. data/db/seeds/chord_voicings/g/g7flat9sharp11-piano.yml +65 -0
  1672. data/db/seeds/chord_voicings/g/g7sharp11-guitar.yml +11 -0
  1673. data/db/seeds/chord_voicings/g/g7sharp11-piano.yml +54 -0
  1674. data/db/seeds/chord_voicings/g/g7sharp5-guitar.yml +11 -0
  1675. data/db/seeds/chord_voicings/g/g7sharp5-piano.yml +43 -0
  1676. data/db/seeds/chord_voicings/g/g7sharp5flat9-guitar.yml +11 -0
  1677. data/db/seeds/chord_voicings/g/g7sharp5flat9-piano.yml +54 -0
  1678. data/db/seeds/chord_voicings/g/g7sharp5sharp9-guitar.yml +11 -0
  1679. data/db/seeds/chord_voicings/g/g7sharp5sharp9-piano.yml +54 -0
  1680. data/db/seeds/chord_voicings/g/g7sharp9-guitar.yml +11 -0
  1681. data/db/seeds/chord_voicings/g/g7sharp9-piano.yml +54 -0
  1682. data/db/seeds/chord_voicings/g/g7sharp9flat13-guitar.yml +11 -0
  1683. data/db/seeds/chord_voicings/g/g7sharp9flat13-piano.yml +65 -0
  1684. data/db/seeds/chord_voicings/g/g7sus2-guitar.yml +23 -0
  1685. data/db/seeds/chord_voicings/g/g7sus2-piano.yml +43 -0
  1686. data/db/seeds/chord_voicings/g/g7sus4-guitar.yml +35 -0
  1687. data/db/seeds/chord_voicings/g/g7sus4-piano.yml +43 -0
  1688. data/db/seeds/chord_voicings/g/g9-guitar.yml +11 -0
  1689. data/db/seeds/chord_voicings/g/g9-piano.yml +54 -0
  1690. data/db/seeds/chord_voicings/g/g9flat13-guitar.yml +11 -0
  1691. data/db/seeds/chord_voicings/g/g9flat13-piano.yml +65 -0
  1692. data/db/seeds/chord_voicings/g/g9sharp11-guitar.yml +11 -0
  1693. data/db/seeds/chord_voicings/g/g9sharp11-piano.yml +65 -0
  1694. data/db/seeds/chord_voicings/g/g9sus4-guitar.yml +11 -0
  1695. data/db/seeds/chord_voicings/g/g9sus4-piano.yml +54 -0
  1696. data/db/seeds/chord_voicings/g/gadd11-guitar.yml +11 -0
  1697. data/db/seeds/chord_voicings/g/gadd11-piano.yml +43 -0
  1698. data/db/seeds/chord_voicings/g/gadd13-guitar.yml +11 -0
  1699. data/db/seeds/chord_voicings/g/gadd13-piano.yml +43 -0
  1700. data/db/seeds/chord_voicings/g/gadd2-guitar.yml +11 -0
  1701. data/db/seeds/chord_voicings/g/gadd2-piano.yml +43 -0
  1702. data/db/seeds/chord_voicings/g/gadd4-guitar.yml +11 -0
  1703. data/db/seeds/chord_voicings/g/gadd4-piano.yml +43 -0
  1704. data/db/seeds/chord_voicings/g/gadd9-guitar.yml +11 -0
  1705. data/db/seeds/chord_voicings/g/gadd9-piano.yml +43 -0
  1706. data/db/seeds/chord_voicings/g/gaug-guitar.yml +23 -0
  1707. data/db/seeds/chord_voicings/g/gaug-piano.yml +32 -0
  1708. data/db/seeds/chord_voicings/g/gdim-guitar.yml +23 -0
  1709. data/db/seeds/chord_voicings/g/gdim-piano.yml +32 -0
  1710. data/db/seeds/chord_voicings/g/gdim7-guitar.yml +23 -0
  1711. data/db/seeds/chord_voicings/g/gdim7-piano.yml +43 -0
  1712. data/db/seeds/chord_voicings/g/gm-guitar.yml +35 -0
  1713. data/db/seeds/chord_voicings/g/gm-maj7-guitar.yml +35 -0
  1714. data/db/seeds/chord_voicings/g/gm-maj7-piano.yml +43 -0
  1715. data/db/seeds/chord_voicings/g/gm-piano.yml +32 -0
  1716. data/db/seeds/chord_voicings/g/gm11-guitar.yml +11 -0
  1717. data/db/seeds/chord_voicings/g/gm11-piano.yml +71 -0
  1718. data/db/seeds/chord_voicings/g/gm13-guitar.yml +11 -0
  1719. data/db/seeds/chord_voicings/g/gm13-piano.yml +71 -0
  1720. data/db/seeds/chord_voicings/g/gm6-guitar.yml +35 -0
  1721. data/db/seeds/chord_voicings/g/gm6-piano.yml +43 -0
  1722. data/db/seeds/chord_voicings/g/gm7-guitar.yml +35 -0
  1723. data/db/seeds/chord_voicings/g/gm7-piano.yml +43 -0
  1724. data/db/seeds/chord_voicings/g/gm7add11-guitar.yml +11 -0
  1725. data/db/seeds/chord_voicings/g/gm7add11-piano.yml +54 -0
  1726. data/db/seeds/chord_voicings/g/gm7flat5-guitar.yml +23 -0
  1727. data/db/seeds/chord_voicings/g/gm7flat5-piano.yml +43 -0
  1728. data/db/seeds/chord_voicings/g/gm9-guitar.yml +11 -0
  1729. data/db/seeds/chord_voicings/g/gm9-piano.yml +54 -0
  1730. data/db/seeds/chord_voicings/g/gmadd11-guitar.yml +11 -0
  1731. data/db/seeds/chord_voicings/g/gmadd11-piano.yml +43 -0
  1732. data/db/seeds/chord_voicings/g/gmadd13-guitar.yml +11 -0
  1733. data/db/seeds/chord_voicings/g/gmadd13-piano.yml +43 -0
  1734. data/db/seeds/chord_voicings/g/gmadd2-guitar.yml +11 -0
  1735. data/db/seeds/chord_voicings/g/gmadd2-piano.yml +43 -0
  1736. data/db/seeds/chord_voicings/g/gmadd4-guitar.yml +11 -0
  1737. data/db/seeds/chord_voicings/g/gmadd4-piano.yml +43 -0
  1738. data/db/seeds/chord_voicings/g/gmadd9-guitar.yml +11 -0
  1739. data/db/seeds/chord_voicings/g/gmadd9-piano.yml +43 -0
  1740. data/db/seeds/chord_voicings/g/gmaj7-guitar.yml +59 -0
  1741. data/db/seeds/chord_voicings/g/gmaj7-piano.yml +43 -0
  1742. data/db/seeds/chord_voicings/g/gmaj7sharp5-guitar.yml +23 -0
  1743. data/db/seeds/chord_voicings/g/gmaj7sharp5-piano.yml +43 -0
  1744. data/db/seeds/chord_voicings/g/gsus2-guitar.yml +23 -0
  1745. data/db/seeds/chord_voicings/g/gsus2-piano.yml +32 -0
  1746. data/db/seeds/chord_voicings/g/gsus4-guitar.yml +35 -0
  1747. data/db/seeds/chord_voicings/g/gsus4-piano.yml +32 -0
  1748. data/db/seeds/chord_voicings/g-flat/gflat-guitar.yml +59 -0
  1749. data/db/seeds/chord_voicings/g-flat/gflat-piano.yml +32 -0
  1750. data/db/seeds/chord_voicings/g-flat/gflat11-guitar.yml +11 -0
  1751. data/db/seeds/chord_voicings/g-flat/gflat11-piano.yml +71 -0
  1752. data/db/seeds/chord_voicings/g-flat/gflat13-guitar.yml +11 -0
  1753. data/db/seeds/chord_voicings/g-flat/gflat13-piano.yml +71 -0
  1754. data/db/seeds/chord_voicings/g-flat/gflat13flat9-guitar.yml +11 -0
  1755. data/db/seeds/chord_voicings/g-flat/gflat13flat9-piano.yml +71 -0
  1756. data/db/seeds/chord_voicings/g-flat/gflat13sharp11-guitar.yml +11 -0
  1757. data/db/seeds/chord_voicings/g-flat/gflat13sharp11-piano.yml +83 -0
  1758. data/db/seeds/chord_voicings/g-flat/gflat13sharp9-guitar.yml +11 -0
  1759. data/db/seeds/chord_voicings/g-flat/gflat13sharp9-piano.yml +71 -0
  1760. data/db/seeds/chord_voicings/g-flat/gflat13sus4-guitar.yml +11 -0
  1761. data/db/seeds/chord_voicings/g-flat/gflat13sus4-piano.yml +71 -0
  1762. data/db/seeds/chord_voicings/g-flat/gflat5-guitar.yml +23 -0
  1763. data/db/seeds/chord_voicings/g-flat/gflat5-piano.yml +21 -0
  1764. data/db/seeds/chord_voicings/g-flat/gflat6-guitar.yml +59 -0
  1765. data/db/seeds/chord_voicings/g-flat/gflat6-piano.yml +43 -0
  1766. data/db/seeds/chord_voicings/g-flat/gflat7-guitar.yml +59 -0
  1767. data/db/seeds/chord_voicings/g-flat/gflat7-piano.yml +43 -0
  1768. data/db/seeds/chord_voicings/g-flat/gflat7flat13-guitar.yml +11 -0
  1769. data/db/seeds/chord_voicings/g-flat/gflat7flat13-piano.yml +54 -0
  1770. data/db/seeds/chord_voicings/g-flat/gflat7flat5-guitar.yml +11 -0
  1771. data/db/seeds/chord_voicings/g-flat/gflat7flat5-piano.yml +43 -0
  1772. data/db/seeds/chord_voicings/g-flat/gflat7flat5flat9-guitar.yml +11 -0
  1773. data/db/seeds/chord_voicings/g-flat/gflat7flat5flat9-piano.yml +54 -0
  1774. data/db/seeds/chord_voicings/g-flat/gflat7flat5sharp9-guitar.yml +11 -0
  1775. data/db/seeds/chord_voicings/g-flat/gflat7flat5sharp9-piano.yml +54 -0
  1776. data/db/seeds/chord_voicings/g-flat/gflat7flat9-guitar.yml +11 -0
  1777. data/db/seeds/chord_voicings/g-flat/gflat7flat9-piano.yml +54 -0
  1778. data/db/seeds/chord_voicings/g-flat/gflat7flat9flat13-guitar.yml +11 -0
  1779. data/db/seeds/chord_voicings/g-flat/gflat7flat9flat13-piano.yml +65 -0
  1780. data/db/seeds/chord_voicings/g-flat/gflat7flat9sharp11-guitar.yml +11 -0
  1781. data/db/seeds/chord_voicings/g-flat/gflat7flat9sharp11-piano.yml +65 -0
  1782. data/db/seeds/chord_voicings/g-flat/gflat7sharp11-guitar.yml +11 -0
  1783. data/db/seeds/chord_voicings/g-flat/gflat7sharp11-piano.yml +54 -0
  1784. data/db/seeds/chord_voicings/g-flat/gflat7sharp5-guitar.yml +11 -0
  1785. data/db/seeds/chord_voicings/g-flat/gflat7sharp5-piano.yml +43 -0
  1786. data/db/seeds/chord_voicings/g-flat/gflat7sharp5flat9-guitar.yml +11 -0
  1787. data/db/seeds/chord_voicings/g-flat/gflat7sharp5flat9-piano.yml +54 -0
  1788. data/db/seeds/chord_voicings/g-flat/gflat7sharp5sharp9-guitar.yml +11 -0
  1789. data/db/seeds/chord_voicings/g-flat/gflat7sharp5sharp9-piano.yml +54 -0
  1790. data/db/seeds/chord_voicings/g-flat/gflat7sharp9-guitar.yml +11 -0
  1791. data/db/seeds/chord_voicings/g-flat/gflat7sharp9-piano.yml +54 -0
  1792. data/db/seeds/chord_voicings/g-flat/gflat7sharp9flat13-guitar.yml +11 -0
  1793. data/db/seeds/chord_voicings/g-flat/gflat7sharp9flat13-piano.yml +65 -0
  1794. data/db/seeds/chord_voicings/g-flat/gflat7sus2-guitar.yml +23 -0
  1795. data/db/seeds/chord_voicings/g-flat/gflat7sus2-piano.yml +43 -0
  1796. data/db/seeds/chord_voicings/g-flat/gflat7sus4-guitar.yml +35 -0
  1797. data/db/seeds/chord_voicings/g-flat/gflat7sus4-piano.yml +43 -0
  1798. data/db/seeds/chord_voicings/g-flat/gflat9-guitar.yml +11 -0
  1799. data/db/seeds/chord_voicings/g-flat/gflat9-piano.yml +54 -0
  1800. data/db/seeds/chord_voicings/g-flat/gflat9flat13-guitar.yml +11 -0
  1801. data/db/seeds/chord_voicings/g-flat/gflat9flat13-piano.yml +65 -0
  1802. data/db/seeds/chord_voicings/g-flat/gflat9sharp11-guitar.yml +11 -0
  1803. data/db/seeds/chord_voicings/g-flat/gflat9sharp11-piano.yml +65 -0
  1804. data/db/seeds/chord_voicings/g-flat/gflat9sus4-guitar.yml +11 -0
  1805. data/db/seeds/chord_voicings/g-flat/gflat9sus4-piano.yml +54 -0
  1806. data/db/seeds/chord_voicings/g-flat/gflatadd11-guitar.yml +11 -0
  1807. data/db/seeds/chord_voicings/g-flat/gflatadd11-piano.yml +43 -0
  1808. data/db/seeds/chord_voicings/g-flat/gflatadd13-guitar.yml +11 -0
  1809. data/db/seeds/chord_voicings/g-flat/gflatadd13-piano.yml +43 -0
  1810. data/db/seeds/chord_voicings/g-flat/gflatadd2-guitar.yml +11 -0
  1811. data/db/seeds/chord_voicings/g-flat/gflatadd2-piano.yml +43 -0
  1812. data/db/seeds/chord_voicings/g-flat/gflatadd4-guitar.yml +11 -0
  1813. data/db/seeds/chord_voicings/g-flat/gflatadd4-piano.yml +43 -0
  1814. data/db/seeds/chord_voicings/g-flat/gflatadd9-guitar.yml +11 -0
  1815. data/db/seeds/chord_voicings/g-flat/gflatadd9-piano.yml +43 -0
  1816. data/db/seeds/chord_voicings/g-flat/gflataug-guitar.yml +23 -0
  1817. data/db/seeds/chord_voicings/g-flat/gflataug-piano.yml +32 -0
  1818. data/db/seeds/chord_voicings/g-flat/gflatdim-guitar.yml +23 -0
  1819. data/db/seeds/chord_voicings/g-flat/gflatdim-piano.yml +32 -0
  1820. data/db/seeds/chord_voicings/g-flat/gflatdim7-guitar.yml +23 -0
  1821. data/db/seeds/chord_voicings/g-flat/gflatdim7-piano.yml +43 -0
  1822. data/db/seeds/chord_voicings/g-flat/gflatm-guitar.yml +35 -0
  1823. data/db/seeds/chord_voicings/g-flat/gflatm-maj7-guitar.yml +35 -0
  1824. data/db/seeds/chord_voicings/g-flat/gflatm-maj7-piano.yml +43 -0
  1825. data/db/seeds/chord_voicings/g-flat/gflatm-piano.yml +32 -0
  1826. data/db/seeds/chord_voicings/g-flat/gflatm11-guitar.yml +11 -0
  1827. data/db/seeds/chord_voicings/g-flat/gflatm11-piano.yml +71 -0
  1828. data/db/seeds/chord_voicings/g-flat/gflatm13-guitar.yml +11 -0
  1829. data/db/seeds/chord_voicings/g-flat/gflatm13-piano.yml +71 -0
  1830. data/db/seeds/chord_voicings/g-flat/gflatm6-guitar.yml +35 -0
  1831. data/db/seeds/chord_voicings/g-flat/gflatm6-piano.yml +43 -0
  1832. data/db/seeds/chord_voicings/g-flat/gflatm7-guitar.yml +35 -0
  1833. data/db/seeds/chord_voicings/g-flat/gflatm7-piano.yml +43 -0
  1834. data/db/seeds/chord_voicings/g-flat/gflatm7add11-guitar.yml +11 -0
  1835. data/db/seeds/chord_voicings/g-flat/gflatm7add11-piano.yml +54 -0
  1836. data/db/seeds/chord_voicings/g-flat/gflatm7flat5-guitar.yml +23 -0
  1837. data/db/seeds/chord_voicings/g-flat/gflatm7flat5-piano.yml +43 -0
  1838. data/db/seeds/chord_voicings/g-flat/gflatm9-guitar.yml +11 -0
  1839. data/db/seeds/chord_voicings/g-flat/gflatm9-piano.yml +54 -0
  1840. data/db/seeds/chord_voicings/g-flat/gflatmadd11-guitar.yml +11 -0
  1841. data/db/seeds/chord_voicings/g-flat/gflatmadd11-piano.yml +43 -0
  1842. data/db/seeds/chord_voicings/g-flat/gflatmadd13-guitar.yml +11 -0
  1843. data/db/seeds/chord_voicings/g-flat/gflatmadd13-piano.yml +43 -0
  1844. data/db/seeds/chord_voicings/g-flat/gflatmadd2-guitar.yml +11 -0
  1845. data/db/seeds/chord_voicings/g-flat/gflatmadd2-piano.yml +43 -0
  1846. data/db/seeds/chord_voicings/g-flat/gflatmadd4-guitar.yml +11 -0
  1847. data/db/seeds/chord_voicings/g-flat/gflatmadd4-piano.yml +43 -0
  1848. data/db/seeds/chord_voicings/g-flat/gflatmadd9-guitar.yml +11 -0
  1849. data/db/seeds/chord_voicings/g-flat/gflatmadd9-piano.yml +43 -0
  1850. data/db/seeds/chord_voicings/g-flat/gflatmaj7-guitar.yml +59 -0
  1851. data/db/seeds/chord_voicings/g-flat/gflatmaj7-piano.yml +43 -0
  1852. data/db/seeds/chord_voicings/g-flat/gflatmaj7sharp5-guitar.yml +23 -0
  1853. data/db/seeds/chord_voicings/g-flat/gflatmaj7sharp5-piano.yml +43 -0
  1854. data/db/seeds/chord_voicings/g-flat/gflatsus2-guitar.yml +23 -0
  1855. data/db/seeds/chord_voicings/g-flat/gflatsus2-piano.yml +32 -0
  1856. data/db/seeds/chord_voicings/g-flat/gflatsus4-guitar.yml +35 -0
  1857. data/db/seeds/chord_voicings/g-flat/gflatsus4-piano.yml +32 -0
  1858. data/db/seeds/chord_voicings/g-sharp/gsharp-guitar.yml +59 -0
  1859. data/db/seeds/chord_voicings/g-sharp/gsharp-piano.yml +32 -0
  1860. data/db/seeds/chord_voicings/g-sharp/gsharp11-guitar.yml +11 -0
  1861. data/db/seeds/chord_voicings/g-sharp/gsharp11-piano.yml +71 -0
  1862. data/db/seeds/chord_voicings/g-sharp/gsharp13-guitar.yml +11 -0
  1863. data/db/seeds/chord_voicings/g-sharp/gsharp13-piano.yml +71 -0
  1864. data/db/seeds/chord_voicings/g-sharp/gsharp13flat9-guitar.yml +11 -0
  1865. data/db/seeds/chord_voicings/g-sharp/gsharp13flat9-piano.yml +71 -0
  1866. data/db/seeds/chord_voicings/g-sharp/gsharp13sharp11-guitar.yml +11 -0
  1867. data/db/seeds/chord_voicings/g-sharp/gsharp13sharp11-piano.yml +83 -0
  1868. data/db/seeds/chord_voicings/g-sharp/gsharp13sharp9-guitar.yml +11 -0
  1869. data/db/seeds/chord_voicings/g-sharp/gsharp13sharp9-piano.yml +71 -0
  1870. data/db/seeds/chord_voicings/g-sharp/gsharp13sus4-guitar.yml +11 -0
  1871. data/db/seeds/chord_voicings/g-sharp/gsharp13sus4-piano.yml +71 -0
  1872. data/db/seeds/chord_voicings/g-sharp/gsharp5-guitar.yml +23 -0
  1873. data/db/seeds/chord_voicings/g-sharp/gsharp5-piano.yml +21 -0
  1874. data/db/seeds/chord_voicings/g-sharp/gsharp6-guitar.yml +59 -0
  1875. data/db/seeds/chord_voicings/g-sharp/gsharp6-piano.yml +43 -0
  1876. data/db/seeds/chord_voicings/g-sharp/gsharp7-guitar.yml +59 -0
  1877. data/db/seeds/chord_voicings/g-sharp/gsharp7-piano.yml +43 -0
  1878. data/db/seeds/chord_voicings/g-sharp/gsharp7flat13-guitar.yml +11 -0
  1879. data/db/seeds/chord_voicings/g-sharp/gsharp7flat13-piano.yml +54 -0
  1880. data/db/seeds/chord_voicings/g-sharp/gsharp7flat5-guitar.yml +11 -0
  1881. data/db/seeds/chord_voicings/g-sharp/gsharp7flat5-piano.yml +43 -0
  1882. data/db/seeds/chord_voicings/g-sharp/gsharp7flat5flat9-guitar.yml +11 -0
  1883. data/db/seeds/chord_voicings/g-sharp/gsharp7flat5flat9-piano.yml +54 -0
  1884. data/db/seeds/chord_voicings/g-sharp/gsharp7flat5sharp9-guitar.yml +11 -0
  1885. data/db/seeds/chord_voicings/g-sharp/gsharp7flat5sharp9-piano.yml +54 -0
  1886. data/db/seeds/chord_voicings/g-sharp/gsharp7flat9-guitar.yml +11 -0
  1887. data/db/seeds/chord_voicings/g-sharp/gsharp7flat9-piano.yml +54 -0
  1888. data/db/seeds/chord_voicings/g-sharp/gsharp7flat9flat13-guitar.yml +11 -0
  1889. data/db/seeds/chord_voicings/g-sharp/gsharp7flat9flat13-piano.yml +65 -0
  1890. data/db/seeds/chord_voicings/g-sharp/gsharp7flat9sharp11-guitar.yml +11 -0
  1891. data/db/seeds/chord_voicings/g-sharp/gsharp7flat9sharp11-piano.yml +65 -0
  1892. data/db/seeds/chord_voicings/g-sharp/gsharp7sharp11-guitar.yml +11 -0
  1893. data/db/seeds/chord_voicings/g-sharp/gsharp7sharp11-piano.yml +54 -0
  1894. data/db/seeds/chord_voicings/g-sharp/gsharp7sharp5-guitar.yml +11 -0
  1895. data/db/seeds/chord_voicings/g-sharp/gsharp7sharp5-piano.yml +43 -0
  1896. data/db/seeds/chord_voicings/g-sharp/gsharp7sharp5flat9-guitar.yml +11 -0
  1897. data/db/seeds/chord_voicings/g-sharp/gsharp7sharp5flat9-piano.yml +54 -0
  1898. data/db/seeds/chord_voicings/g-sharp/gsharp7sharp5sharp9-guitar.yml +11 -0
  1899. data/db/seeds/chord_voicings/g-sharp/gsharp7sharp5sharp9-piano.yml +54 -0
  1900. data/db/seeds/chord_voicings/g-sharp/gsharp7sharp9-guitar.yml +11 -0
  1901. data/db/seeds/chord_voicings/g-sharp/gsharp7sharp9-piano.yml +54 -0
  1902. data/db/seeds/chord_voicings/g-sharp/gsharp7sharp9flat13-guitar.yml +11 -0
  1903. data/db/seeds/chord_voicings/g-sharp/gsharp7sharp9flat13-piano.yml +65 -0
  1904. data/db/seeds/chord_voicings/g-sharp/gsharp7sus2-guitar.yml +23 -0
  1905. data/db/seeds/chord_voicings/g-sharp/gsharp7sus2-piano.yml +43 -0
  1906. data/db/seeds/chord_voicings/g-sharp/gsharp7sus4-guitar.yml +35 -0
  1907. data/db/seeds/chord_voicings/g-sharp/gsharp7sus4-piano.yml +43 -0
  1908. data/db/seeds/chord_voicings/g-sharp/gsharp9-guitar.yml +11 -0
  1909. data/db/seeds/chord_voicings/g-sharp/gsharp9-piano.yml +54 -0
  1910. data/db/seeds/chord_voicings/g-sharp/gsharp9flat13-guitar.yml +11 -0
  1911. data/db/seeds/chord_voicings/g-sharp/gsharp9flat13-piano.yml +65 -0
  1912. data/db/seeds/chord_voicings/g-sharp/gsharp9sharp11-guitar.yml +11 -0
  1913. data/db/seeds/chord_voicings/g-sharp/gsharp9sharp11-piano.yml +65 -0
  1914. data/db/seeds/chord_voicings/g-sharp/gsharp9sus4-guitar.yml +11 -0
  1915. data/db/seeds/chord_voicings/g-sharp/gsharp9sus4-piano.yml +54 -0
  1916. data/db/seeds/chord_voicings/g-sharp/gsharpadd11-guitar.yml +11 -0
  1917. data/db/seeds/chord_voicings/g-sharp/gsharpadd11-piano.yml +43 -0
  1918. data/db/seeds/chord_voicings/g-sharp/gsharpadd13-guitar.yml +11 -0
  1919. data/db/seeds/chord_voicings/g-sharp/gsharpadd13-piano.yml +43 -0
  1920. data/db/seeds/chord_voicings/g-sharp/gsharpadd2-guitar.yml +11 -0
  1921. data/db/seeds/chord_voicings/g-sharp/gsharpadd2-piano.yml +43 -0
  1922. data/db/seeds/chord_voicings/g-sharp/gsharpadd4-guitar.yml +11 -0
  1923. data/db/seeds/chord_voicings/g-sharp/gsharpadd4-piano.yml +43 -0
  1924. data/db/seeds/chord_voicings/g-sharp/gsharpadd9-guitar.yml +11 -0
  1925. data/db/seeds/chord_voicings/g-sharp/gsharpadd9-piano.yml +43 -0
  1926. data/db/seeds/chord_voicings/g-sharp/gsharpaug-guitar.yml +23 -0
  1927. data/db/seeds/chord_voicings/g-sharp/gsharpaug-piano.yml +32 -0
  1928. data/db/seeds/chord_voicings/g-sharp/gsharpdim-guitar.yml +23 -0
  1929. data/db/seeds/chord_voicings/g-sharp/gsharpdim-piano.yml +32 -0
  1930. data/db/seeds/chord_voicings/g-sharp/gsharpdim7-guitar.yml +23 -0
  1931. data/db/seeds/chord_voicings/g-sharp/gsharpdim7-piano.yml +43 -0
  1932. data/db/seeds/chord_voicings/g-sharp/gsharpm-guitar.yml +35 -0
  1933. data/db/seeds/chord_voicings/g-sharp/gsharpm-maj7-guitar.yml +35 -0
  1934. data/db/seeds/chord_voicings/g-sharp/gsharpm-maj7-piano.yml +43 -0
  1935. data/db/seeds/chord_voicings/g-sharp/gsharpm-piano.yml +32 -0
  1936. data/db/seeds/chord_voicings/g-sharp/gsharpm11-guitar.yml +11 -0
  1937. data/db/seeds/chord_voicings/g-sharp/gsharpm11-piano.yml +71 -0
  1938. data/db/seeds/chord_voicings/g-sharp/gsharpm13-guitar.yml +11 -0
  1939. data/db/seeds/chord_voicings/g-sharp/gsharpm13-piano.yml +71 -0
  1940. data/db/seeds/chord_voicings/g-sharp/gsharpm6-guitar.yml +35 -0
  1941. data/db/seeds/chord_voicings/g-sharp/gsharpm6-piano.yml +43 -0
  1942. data/db/seeds/chord_voicings/g-sharp/gsharpm7-guitar.yml +35 -0
  1943. data/db/seeds/chord_voicings/g-sharp/gsharpm7-piano.yml +43 -0
  1944. data/db/seeds/chord_voicings/g-sharp/gsharpm7add11-guitar.yml +11 -0
  1945. data/db/seeds/chord_voicings/g-sharp/gsharpm7add11-piano.yml +54 -0
  1946. data/db/seeds/chord_voicings/g-sharp/gsharpm7flat5-guitar.yml +23 -0
  1947. data/db/seeds/chord_voicings/g-sharp/gsharpm7flat5-piano.yml +43 -0
  1948. data/db/seeds/chord_voicings/g-sharp/gsharpm9-guitar.yml +11 -0
  1949. data/db/seeds/chord_voicings/g-sharp/gsharpm9-piano.yml +54 -0
  1950. data/db/seeds/chord_voicings/g-sharp/gsharpmadd11-guitar.yml +11 -0
  1951. data/db/seeds/chord_voicings/g-sharp/gsharpmadd11-piano.yml +43 -0
  1952. data/db/seeds/chord_voicings/g-sharp/gsharpmadd13-guitar.yml +11 -0
  1953. data/db/seeds/chord_voicings/g-sharp/gsharpmadd13-piano.yml +43 -0
  1954. data/db/seeds/chord_voicings/g-sharp/gsharpmadd2-guitar.yml +11 -0
  1955. data/db/seeds/chord_voicings/g-sharp/gsharpmadd2-piano.yml +43 -0
  1956. data/db/seeds/chord_voicings/g-sharp/gsharpmadd4-guitar.yml +11 -0
  1957. data/db/seeds/chord_voicings/g-sharp/gsharpmadd4-piano.yml +43 -0
  1958. data/db/seeds/chord_voicings/g-sharp/gsharpmadd9-guitar.yml +11 -0
  1959. data/db/seeds/chord_voicings/g-sharp/gsharpmadd9-piano.yml +43 -0
  1960. data/db/seeds/chord_voicings/g-sharp/gsharpmaj7-guitar.yml +59 -0
  1961. data/db/seeds/chord_voicings/g-sharp/gsharpmaj7-piano.yml +43 -0
  1962. data/db/seeds/chord_voicings/g-sharp/gsharpmaj7sharp5-guitar.yml +23 -0
  1963. data/db/seeds/chord_voicings/g-sharp/gsharpmaj7sharp5-piano.yml +43 -0
  1964. data/db/seeds/chord_voicings/g-sharp/gsharpsus2-guitar.yml +23 -0
  1965. data/db/seeds/chord_voicings/g-sharp/gsharpsus2-piano.yml +32 -0
  1966. data/db/seeds/chord_voicings/g-sharp/gsharpsus4-guitar.yml +35 -0
  1967. data/db/seeds/chord_voicings/g-sharp/gsharpsus4-piano.yml +32 -0
  1968. data/db/seeds/chords/a-flat.yml +451 -0
  1969. data/db/seeds/chords/a-sharp.yml +451 -0
  1970. data/db/seeds/chords/a.yml +451 -0
  1971. data/db/seeds/chords/b-flat.yml +451 -0
  1972. data/db/seeds/chords/b.yml +451 -0
  1973. data/db/seeds/chords/c-sharp.yml +451 -0
  1974. data/db/seeds/chords/c.yml +451 -0
  1975. data/db/seeds/chords/d-flat.yml +451 -0
  1976. data/db/seeds/chords/d-sharp.yml +451 -0
  1977. data/db/seeds/chords/d.yml +451 -0
  1978. data/db/seeds/chords/e-flat.yml +451 -0
  1979. data/db/seeds/chords/e.yml +451 -0
  1980. data/db/seeds/chords/f-sharp.yml +451 -0
  1981. data/db/seeds/chords/f.yml +451 -0
  1982. data/db/seeds/chords/g-flat.yml +451 -0
  1983. data/db/seeds/chords/g-sharp.yml +451 -0
  1984. data/db/seeds/chords/g.yml +451 -0
  1985. data/db/seeds.rb +72 -0
  1986. data/lib/outro_rails/chord_chart_attribute.rb +40 -0
  1987. data/lib/outro_rails/engine.rb +20 -0
  1988. data/lib/outro_rails/form_builder_extensions.rb +7 -0
  1989. data/lib/outro_rails/generators/chord_seed_generator.rb +219 -0
  1990. data/lib/outro_rails/generators/guitar_voicing_generator.rb +196 -0
  1991. data/lib/outro_rails/generators/voicing_seed_entry.rb +42 -0
  1992. data/lib/outro_rails/generators/voicing_seed_writer.rb +53 -0
  1993. data/lib/outro_rails/generators/voicing_stub_generator.rb +176 -0
  1994. data/lib/outro_rails/instruments/guitar/capo.rb +54 -0
  1995. data/lib/outro_rails/instruments/guitar/chord_shapes.rb +243 -0
  1996. data/lib/outro_rails/instruments/guitar/tunings.rb +109 -0
  1997. data/lib/outro_rails/instruments/guitar.rb +120 -0
  1998. data/lib/outro_rails/instruments/piano.rb +68 -0
  1999. data/lib/outro_rails/instruments.rb +15 -0
  2000. data/lib/outro_rails/theory/chord_vocabulary.rb +198 -0
  2001. data/lib/outro_rails/theory/interval.rb +59 -0
  2002. data/lib/outro_rails/theory/key.rb +249 -0
  2003. data/lib/outro_rails/theory/nashville_number.rb +154 -0
  2004. data/lib/outro_rails/theory/note_name.rb +224 -0
  2005. data/lib/outro_rails/theory/pitch.rb +112 -0
  2006. data/lib/outro_rails/theory/scale.rb +338 -0
  2007. data/lib/outro_rails/theory/transposer.rb +248 -0
  2008. data/lib/outro_rails/theory.rb +15 -0
  2009. data/lib/outro_rails/version.rb +5 -0
  2010. data/lib/outro_rails.rb +19 -0
  2011. data/lib/tasks/outro_rails_tasks.rake +92 -0
  2012. metadata +2070 -0
@@ -0,0 +1,24 @@
1
+ <% content_for :title, @chord.symbol %>
2
+
3
+ <% subtitle = [ @chord.root_name,
4
+ @chord.quality.humanize.downcase,
5
+ @chord.extension.presence
6
+ ].compact.join(" ")
7
+ %>
8
+
9
+ <div class="outro outro-container">
10
+
11
+ <%= render "outro_rails/shared/header",
12
+ title: @chord.symbol,
13
+ subtitle: subtitle
14
+ %>
15
+
16
+ <%= render "outro_rails/shared/breadcrumb", trail: [
17
+ [ "Outro Home", root_path ],
18
+ [ "Chord Library", chords_path ],
19
+ [ @chord.symbol ]
20
+ ] %>
21
+
22
+ <%= render 'outro_rails/chords/chord', chord: @chord %>
23
+
24
+ </div>
@@ -0,0 +1,64 @@
1
+ <%# The circle-of-fifths wheel. Locals:
2
+ positions - Theory::Key.circle_positions
3
+ selected_index - wheel index of the selected key
4
+ subdominant_index - wheel index one step counterclockwise
5
+ dominant_index - wheel index one step clockwise
6
+ selected_mode - :major or :minor (which ring carries highlights) %>
7
+
8
+ <%
9
+ size = 380
10
+ center = size / 2.0
11
+ rings = { major: [ 122, 184 ], minor: [ 64, 120 ] }
12
+ wheel_label = "Circle of fifths with " \
13
+ "#{positions[selected_index].major_label} selected"
14
+ %>
15
+
16
+ <svg class="outro-circle" viewBox="0 0 <%= size %> <%= size %>" role="img"
17
+ aria-label="<%= wheel_label %>">
18
+ <% positions.each_with_index do |position, index| %>
19
+ <% rings.each do |ring_mode, (inner_radius, outer_radius)| %>
20
+ <%
21
+ major = ring_mode == :major
22
+ key = major ? position.majors.first : position.minors.first
23
+ label = major ? position.major_label : position.minor_label
24
+
25
+ classes = [ "outro-circle__wedge" ]
26
+ if ring_mode == selected_mode
27
+ classes << "is-selected" if index == selected_index
28
+ classes << "is-subdominant" if index == subdominant_index
29
+ classes << "is-dominant" if index == dominant_index
30
+ elsif index == selected_index
31
+ classes << "is-relative"
32
+ end
33
+
34
+ lx, ly = wedge_label_point(center, center, inner_radius,
35
+ outer_radius, index)
36
+ %>
37
+ <a href="<%= circle_of_fifths_key_path(key.tonic.path_slug, ring_mode) %>"
38
+ aria-label="<%= label %>">
39
+ <path class="<%= classes.join(' ') %>"
40
+ d="<%= wedge_path(center, center, inner_radius,
41
+ outer_radius, index) %>" />
42
+ <text class="outro-circle__label outro-circle__label--<%= ring_mode %>"
43
+ x="<%= lx %>" y="<%= ly %>"
44
+ text-anchor="middle"
45
+ dominant-baseline="middle"><%= label %></text>
46
+ </a>
47
+ <% end %>
48
+ <% end %>
49
+ </svg>
50
+
51
+ <p class="outro-circle-legend">
52
+ <span class="outro-circle-legend__item
53
+ outro-circle-legend__item--selected">Selected</span>
54
+ <span class="outro-circle-legend__item
55
+ outro-circle-legend__item--subdominant">
56
+ Subdominant (<%= selected_mode == :minor ? "iv" : "IV" %>)
57
+ </span>
58
+ <span class="outro-circle-legend__item
59
+ outro-circle-legend__item--dominant">
60
+ Dominant (<%= selected_mode == :minor ? "v" : "V" %>)
61
+ </span>
62
+ <span class="outro-circle-legend__item
63
+ outro-circle-legend__item--relative">Relative</span>
64
+ </p>
@@ -0,0 +1,95 @@
1
+ <% content_for :title, "Circle of Fifths - #{@key}" %>
2
+
3
+ <%
4
+ minor = @key.mode == :minor
5
+ subdominant_degree = minor ? "iv" : "IV"
6
+ dominant_degree = minor ? "v" : "V"
7
+ %>
8
+
9
+ <div class="outro outro-container">
10
+
11
+ <%= render "outro_rails/shared/header",
12
+ title: @key,
13
+ subtitle: "Key signature: #{key_signature_label(@key)}"
14
+ %>
15
+
16
+ <%= render "outro_rails/shared/breadcrumb", trail: [
17
+ [ "Outro Home", root_path ],
18
+ [ "Circle of Fifths", circle_of_fifths_path ],
19
+ [ @key.to_s ]
20
+ ] %>
21
+
22
+ <div class="outro-grid outro-grid--wide">
23
+ <section class="outro-card">
24
+ <h2 class="outro-section-heading">Circle of fifths</h2>
25
+
26
+ <%= render "wheel",
27
+ positions: @positions,
28
+ selected_index: @selected_index,
29
+ subdominant_index: @subdominant_index,
30
+ dominant_index: @dominant_index,
31
+ selected_mode: @key.mode %>
32
+ </section>
33
+
34
+ <section class="outro-card">
35
+ <h2 class="outro-section-heading">Neighbouring keys</h2>
36
+
37
+ <dl class="outro-spec">
38
+ <dt class="outro-spec__term">
39
+ Subdominant (<%= subdominant_degree %>)
40
+ </dt>
41
+ <dd class="outro-spec__detail">
42
+ <%= link_to @subdominant.to_s,
43
+ circle_of_fifths_key_path(@subdominant.tonic.path_slug,
44
+ @subdominant.mode) %>
45
+ </dd>
46
+
47
+ <dt class="outro-spec__term">Dominant (<%= dominant_degree %>)</dt>
48
+ <dd class="outro-spec__detail">
49
+ <%= link_to @dominant.to_s,
50
+ circle_of_fifths_key_path(@dominant.tonic.path_slug,
51
+ @dominant.mode) %>
52
+ </dd>
53
+
54
+ <dt class="outro-spec__term">Relative</dt>
55
+ <dd class="outro-spec__detail">
56
+ <%= link_to @key.relative.to_s,
57
+ circle_of_fifths_key_path(@key.relative.tonic.path_slug,
58
+ @key.relative.mode) %>
59
+ </dd>
60
+
61
+ <dt class="outro-spec__term">Key signature</dt>
62
+ <dd class="outro-spec__detail"><%= key_signature_label(@key) %></dd>
63
+ </dl>
64
+
65
+ <div class="outro-card__footer">
66
+ <span class="outro-label" id="scale-instruments-label">
67
+ See this scale on
68
+ </span>
69
+ <div class="outro-chip-row" role="group"
70
+ aria-labelledby="scale-instruments-label">
71
+ <% OutroRails::ScalesController::INSTRUMENTS.each do |instrument| %>
72
+ <% scale_path = instrument_scale_path(
73
+ instrument, @scale.root.path_slug, @scale.slug
74
+ ) %>
75
+ <%= link_to scale_path,
76
+ class: "outro-chip outro-chip--link" do %>
77
+ <%= image_tag "outro_rails/#{instrument}.svg",
78
+ class: "outro-chip__icon", alt: "",
79
+ aria: { hidden: true } %>
80
+ <span class="outro-chip__label">
81
+ <%= scale_instrument_label(instrument) %>
82
+ </span>
83
+ <% end %>
84
+ <% end %>
85
+ </div>
86
+ </div>
87
+ </section>
88
+
89
+ <%= render "outro_rails/scales/chords_table", scale: @scale %>
90
+
91
+ <%= render "outro_rails/scales/related_scales",
92
+ scale: @scale,
93
+ instrument: OutroRails::CircleOfFifthsController::LINK_INSTRUMENT %>
94
+ </div>
95
+ </div>
@@ -0,0 +1,75 @@
1
+ <% content_for :title, 'Outro' %>
2
+
3
+ <%
4
+ tools = [
5
+ {
6
+ name: 'CAGED Shapes',
7
+ path: caged_path,
8
+ image: 'outro_rails/shapes.svg',
9
+ description: 'Five movable guitar chord shapes that map the ' \
10
+ 'whole fretboard.'
11
+ },
12
+ {
13
+ name: 'Chord Library',
14
+ path: chords_path,
15
+ image: 'outro_rails/library.svg',
16
+ description: 'Look up common chords and voicings.'
17
+ },
18
+ {
19
+ name: 'Chord Transposer',
20
+ path: transposer_path,
21
+ image: 'outro_rails/transposer.svg',
22
+ description: 'Move a chord chart into another key.'
23
+ },
24
+ {
25
+ name: 'Circle of Fifths',
26
+ path: circle_of_fifths_path,
27
+ image: 'outro_rails/circle.svg',
28
+ description: 'Explore relationships between keys and chords.'
29
+ },
30
+ {
31
+ name: 'Guitar Capo Chart',
32
+ path: capo_path,
33
+ image: 'outro_rails/capo.svg',
34
+ description: 'Pick a capo position to see what each open shape ' \
35
+ 'actually sounds like.'
36
+ },
37
+ {
38
+ name: 'Instruments',
39
+ path: instruments_path,
40
+ image: 'outro_rails/instruments.svg',
41
+ description: 'Playable diagrams you can click to hear.'
42
+ },
43
+ {
44
+ name: 'Scales',
45
+ path: scales_path,
46
+ image: 'outro_rails/scales.svg',
47
+ description: 'Scale patterns and notes.'
48
+ }
49
+ ]
50
+ %>
51
+
52
+ <div class="outro outro-container">
53
+ <header class="outro-header">
54
+ <h1 class="outro-header__title">Outro</h1>
55
+ <p class="outro-header__byline">Ruminate, Riff, Resolve</p>
56
+ </header>
57
+
58
+ <ul class="outro-grid outro-grid--tools">
59
+ <% tools.each do |tool| %>
60
+ <li class="outro-grid__item">
61
+ <div class="outro-card outro-card--link">
62
+ <span class="outro-card__media">
63
+ <%= image_tag tool[:image], alt: '', class: 'outro-card__image' %>
64
+ </span>
65
+ <h2 class="outro-card__title"><%= tool[:name] %></h2>
66
+ <p class="outro-card__description"><%= tool[:description] %></p>
67
+ <%= link_to 'Open tool',
68
+ tool[:path],
69
+ class: 'outro-card__cta',
70
+ 'aria-label': "Open #{tool[:name]}" %>
71
+ </div>
72
+ </li>
73
+ <% end %>
74
+ </ul>
75
+ </div>
@@ -0,0 +1,37 @@
1
+ <% tuning = @tuning || OutroRails::Instruments::Guitar::Tunings.default %>
2
+
3
+ <section class="outro-card">
4
+ <h2 class="outro-section-heading">
5
+ Full fretboard
6
+ <span class="outro-symbol-list__detail"><%= tuning.label %></span>
7
+ </h2>
8
+
9
+ <div class="outro-panel outro-filters">
10
+ <%= form_with url: instrument_picker_path, method: :get,
11
+ class: "outro-picker outro-picker--flush" do %>
12
+ <%= hidden_field_tag :instrument, @instrument %>
13
+
14
+ <label class="outro-picker__field">
15
+ <span class="outro-label">Tuning</span>
16
+ <%= select_tag :tuning,
17
+ options_for_select(guitar_tuning_options, tuning.slug),
18
+ class: "outro-select",
19
+ onchange: "this.form.requestSubmit()" %>
20
+ </label>
21
+
22
+ <%# Fallback for keyboard users / no JS; the select auto-submits
23
+ on change. %>
24
+ <%= button_tag type: :submit, name: nil,
25
+ class: "outro-button",
26
+ "aria-label": "Show Tuning" do %>
27
+ <%= image_tag "outro_rails/guitar.svg", class: 'outro-button__icon' %>
28
+ Show Tuning
29
+ <% end %>
30
+ <% end %>
31
+ </div>
32
+
33
+ <%= render "outro_rails/instruments/guitar_midi",
34
+ end_fret: 24,
35
+ tuning: tuning.notes,
36
+ prefer: tuning.prefer.to_s %>
37
+ </section>
@@ -0,0 +1,145 @@
1
+ <%#
2
+ Small printable guitar figure. A classic songbook-style chord box
3
+ (strings as columns, frets as rows) rendered as a static SVG with no
4
+ controls and no JavaScript. Dots are SVG fills, so they survive
5
+ printing even when the browser skips background graphics.
6
+
7
+ Takes the same locals as instruments/_guitar_midi (all optional):
8
+ start_fret: first fret of the window (default 0). 0 or 1 shows
9
+ the nut; anything higher shows an "Nfr" label instead.
10
+ end_fret: last fret of the window. The box always shows at
11
+ least four fret rows and grows to cover every dot.
12
+ tuning: open-string notes low to high (default standard)
13
+ highlight_frets: positions to dot, [string, fret] pairs or
14
+ "string:fret" strings (string 1 = highest pitch).
15
+ Fret 0 marks the string open (O above the nut);
16
+ strings with no position at all are muted (X).
17
+ highlight_color: any CSS color for the dots (default blue)
18
+ root_frets: subset of positions to mark as roots (default [])
19
+ root_color: any CSS color for root dots (default red)
20
+ prefer: 'sharps' or 'flats' for the note labels under the
21
+ box (default 'sharps')
22
+ %>
23
+
24
+ <%
25
+ complete = lambda do |position|
26
+ if position.is_a?(String)
27
+ position.match?(/\A\s*\d+\s*:\s*\d+\s*\z/)
28
+ else
29
+ pair = position.respond_to?(:to_a) ? position.to_a : []
30
+ !pair[0].nil? && !pair[1].nil?
31
+ end
32
+ end
33
+
34
+ default_tuning = OutroRails::InstrumentsHelper::GUITAR_STANDARD_TUNING
35
+ tuning = local_assigns.fetch(:tuning, default_tuning)
36
+ highlight_frets = guitar_positions(
37
+ Array(local_assigns.fetch(:highlight_frets, [])).select(&complete)
38
+ )
39
+ highlight_color = local_assigns.fetch(:highlight_color, "#2f6bed")
40
+ root_frets = guitar_positions(
41
+ Array(local_assigns.fetch(:root_frets, [])).select(&complete)
42
+ )
43
+ highlight_frets |= root_frets
44
+ root_color = local_assigns.fetch(:root_color, "#d1495b")
45
+ prefer = local_assigns.fetch(:prefer, "sharps").to_sym
46
+
47
+ open_midis = guitar_open_midis(tuning) # { 1 => 64, ..., 6 => 40 }
48
+ strings = open_midis.keys.sort # 1 (rightmost col) .. N (leftmost)
49
+ string_count = strings.size
50
+
51
+ fretted = highlight_frets.map(&:last).select(&:positive?)
52
+ start_fret = local_assigns.fetch(:start_fret, nil)
53
+ row_start =
54
+ if !start_fret.nil? then [start_fret.to_i, 1].max
55
+ elsif fretted.empty? || fretted.max <= 4 then 1
56
+ else fretted.min
57
+ end
58
+ row_end = [local_assigns.fetch(:end_fret, nil).to_i,
59
+ fretted.max.to_i, row_start + 3].max
60
+ rows = (row_start..row_end).to_a
61
+ show_nut = row_start == 1
62
+
63
+ sounded = highlight_frets.group_by(&:first)
64
+ .transform_values { |pos| pos.map(&:last).min }
65
+ roots = root_frets.to_set
66
+
67
+ gap_x, gap_y = 13, 15
68
+ pad_l = 8
69
+ pad_r = show_nut ? 8 : 30 # room for the "Nfr" label
70
+ top = 14 # O / X row
71
+ bottom = 12 # note labels
72
+ board_w = (string_count - 1) * gap_x
73
+ width = pad_l + board_w + pad_r
74
+ height = top + (rows.size * gap_y) + bottom
75
+
76
+ col_x = ->(string) { pad_l + ((string_count - string) * gap_x) }
77
+ row_y = ->(fret) { top + ((fret - row_start) + 0.5) * gap_y }
78
+
79
+ frets_label = strings.sort.reverse.map { |s|
80
+ sounded.key?(s) ? sounded[s] : "x"
81
+ }.join(" ")
82
+ %>
83
+
84
+ <svg class="outro-figure__svg outro-figure__svg--guitar"
85
+ viewBox="0 0 <%= width %> <%= height %>"
86
+ width="<%= width %>"
87
+ role="img"
88
+ aria-label="Guitar chord box, low to high: <%= frets_label %>">
89
+ <g stroke="currentColor" stroke-opacity="0.75" stroke-width="0.8">
90
+ <%# strings (vertical) %>
91
+ <% strings.each do |string| %>
92
+ <line x1="<%= col_x.call(string) %>" y1="<%= top %>"
93
+ x2="<%= col_x.call(string) %>"
94
+ y2="<%= top + rows.size * gap_y %>" />
95
+ <% end %>
96
+ <%# frets (horizontal); the top line is drawn separately as nut or fret %>
97
+ <% (1..rows.size).each do |i| %>
98
+ <line x1="<%= pad_l %>" y1="<%= top + i * gap_y %>"
99
+ x2="<%= pad_l + board_w %>" y2="<%= top + i * gap_y %>" />
100
+ <% end %>
101
+ </g>
102
+
103
+ <% if show_nut %>
104
+ <rect x="<%= pad_l - 0.5 %>" y="<%= top - 2.5 %>"
105
+ width="<%= board_w + 1 %>" height="3"
106
+ fill="currentColor" />
107
+ <% else %>
108
+ <line x1="<%= pad_l %>" y1="<%= top %>"
109
+ x2="<%= pad_l + board_w %>" y2="<%= top %>"
110
+ stroke="currentColor" stroke-opacity="0.75" stroke-width="0.8" />
111
+ <text x="<%= pad_l + board_w + 8 %>" y="<%= row_y.call(row_start) + 2.5 %>"
112
+ font-size="7.5" fill="currentColor"><%= row_start %>fr</text>
113
+ <% end %>
114
+
115
+ <%# O / X above the nut %>
116
+ <% if highlight_frets.any? %>
117
+ <% strings.each do |string| %>
118
+ <text x="<%= col_x.call(string) %>" y="<%= top - 5.5 %>"
119
+ font-size="7.5" text-anchor="middle" fill="currentColor"
120
+ fill-opacity="<%= sounded.key?(string) ? 1 : 0.6 %>"><%=
121
+ if sounded[string] == 0 then "O"
122
+ elsif !sounded.key?(string) then "X"
123
+ end
124
+ %></text>
125
+ <% end %>
126
+ <% end %>
127
+
128
+ <%# dots %>
129
+ <% highlight_frets.each do |string, fret| %>
130
+ <% next unless fret.positive? && fret >= row_start %>
131
+ <% root = roots.include?([string, fret]) %>
132
+ <circle cx="<%= col_x.call(string) %>" cy="<%= row_y.call(fret) %>"
133
+ r="4.4" fill="<%= root ? root_color : highlight_color %>" />
134
+ <% end %>
135
+
136
+ <%# sounded note names under the box %>
137
+ <% strings.each do |string| %>
138
+ <% next unless sounded.key?(string) %>
139
+ <text x="<%= col_x.call(string) %>" y="<%= height - 3 %>"
140
+ font-size="6.5" text-anchor="middle"
141
+ fill="currentColor" fill-opacity="0.8"><%=
142
+ midi_to_note_name(open_midis[string] + sounded[string], prefer: prefer)
143
+ %></text>
144
+ <% end %>
145
+ </svg>
@@ -0,0 +1,137 @@
1
+ <%#
2
+ Playable guitar fretboard.
3
+
4
+ Locals (all optional):
5
+ start_fret: first fret shown (default 0 - includes open strings)
6
+ end_fret: last fret shown (default 12)
7
+ tuning: open-string notes low to high
8
+ (default %w[E2 A2 D3 G3 B3 E4], standard tuning)
9
+ highlight_frets: positions to mark with a dot. Strings are numbered
10
+ 1 (highest pitch) to 6 (lowest). Accepts [string, fret]
11
+ pairs or "string:fret" strings, e.g.
12
+ [[5, 3], [4, 2], [3, 0], [2, 1], [1, 0]] (open C major)
13
+ highlight_color: any CSS color for the dots (default blue)
14
+ root_frets: subset of positions to mark as roots with a distinct
15
+ color, same formats as highlight_frets (default []).
16
+ Root positions should also be included in
17
+ highlight_frets so playback covers them.
18
+ root_color: any CSS color for root dots (default red)
19
+
20
+ When highlight_frets is present, "Play Chord" strums all marked notes
21
+ (lowest first, slightly staggered like a downstroke) and "Play Notes"
22
+ plays them one at a time, low to high. Every fret is always individually
23
+ clickable/tappable (Enter/Space works too).
24
+ %>
25
+
26
+ <%
27
+ start_fret = local_assigns.fetch(:start_fret, 0)
28
+ end_fret = local_assigns.fetch(:end_fret, 12)
29
+ default_tuning = OutroRails::InstrumentsHelper::GUITAR_STANDARD_TUNING
30
+ tuning = local_assigns.fetch(:tuning, default_tuning)
31
+ highlight_frets = guitar_positions(local_assigns.fetch(:highlight_frets, []))
32
+ highlight_color = local_assigns.fetch(:highlight_color, "#2f6bed")
33
+ root_frets = guitar_positions(local_assigns.fetch(:root_frets, []))
34
+ root_color = local_assigns.fetch(:root_color, "#d1495b")
35
+ prefer = local_assigns.fetch(:prefer, 'sharps')
36
+
37
+ start_fret, end_fret = end_fret, start_fret if start_fret > end_fret
38
+ guitar = OutroRails::Instruments::Guitar
39
+ fret_range = guitar::MIN_FRET..guitar::MAX_FRET
40
+ start_fret = start_fret.clamp(fret_range)
41
+ end_fret = end_fret.clamp(fret_range)
42
+
43
+ open_midis = guitar_open_midis(tuning) # { 1 => 64, ..., 6 => 40 }
44
+ strings = open_midis.keys.sort # 1 (top row) .. 6 (bottom row)
45
+ frets = (start_fret..end_fret).to_a
46
+ highlights = highlight_frets.to_set
47
+ roots = root_frets.to_set
48
+
49
+ # "string:fret:midi" triples for the play buttons.
50
+ positions_attr = highlight_frets
51
+ .map { |string, fret| [string, fret, open_midis.fetch(string) + fret] }
52
+ .map { |triple| triple.join(":") }
53
+ .join(",")
54
+
55
+ single_markers = guitar::SINGLE_MARKER_FRETS
56
+ double_markers = guitar::DOUBLE_MARKER_FRETS
57
+
58
+ board_label = "Guitar fretboard, frets #{start_fret} to #{end_fret}"
59
+ %>
60
+
61
+ <div class="outro-guitar"
62
+ data-outro-guitar
63
+ style="--outro-guitar-highlight: <%= highlight_color %>;
64
+ --outro-guitar-root: <%= root_color %>;">
65
+ <div>
66
+ <div class="outro-guitar__board"
67
+ role="group"
68
+ aria-label="<%= board_label %>">
69
+ <% strings.each do |string| %>
70
+ <div class="outro-guitar__row"
71
+ style="--string-size: <%= 1 + (string - 1) * 0.4 %>px;">
72
+ <span class="outro-guitar__string-label"><%=
73
+ midi_to_note_name(open_midis[string], prefer: prefer.to_sym)
74
+ %></span>
75
+ <% frets.each do |fret| %>
76
+ <%
77
+ midi = open_midis[string] + fret
78
+ note = midi_to_note(midi, prefer: prefer.to_sym)
79
+ note_name = midi_to_note_name(midi, prefer: prefer.to_sym)
80
+ highlighted = highlights.include?([string, fret])
81
+
82
+ fret_classes = [
83
+ "outro-guitar__fret",
84
+ ("outro-guitar__fret--open" if fret.zero?),
85
+ ("is-highlighted" if highlighted),
86
+ ("is-root" if roots.include?([string, fret]))
87
+ ].compact.join(" ")
88
+
89
+ where = fret.zero? ? "open" : "fret #{fret}"
90
+ fret_label = "Play #{note}, string #{string} #{where}"
91
+ %>
92
+ <div class="<%= fret_classes %>"
93
+ data-guitar-fret
94
+ data-string="<%= string %>"
95
+ data-fret="<%= fret %>"
96
+ data-midi="<%= midi %>"
97
+ role="button"
98
+ tabindex="0"
99
+ aria-label="<%= fret_label %>">
100
+ <span class="outro-guitar__dot"><%= note_name %></span>
101
+ </div>
102
+ <% end %>
103
+ </div>
104
+ <% end %>
105
+ </div>
106
+
107
+ <div class="outro-guitar__numbers" aria-hidden="true">
108
+ <span class="outro-guitar__number outro-guitar__number--label"></span>
109
+ <% frets.each do |fret| %>
110
+ <span class="outro-guitar__number
111
+ <%= "outro-guitar__number--open" if fret.zero? %>">
112
+ <span class="outro-guitar__inlay"><%=
113
+ if double_markers.include?(fret) then "&#9679; &#9679;".html_safe
114
+ elsif single_markers.include?(fret) then "&#9679;".html_safe
115
+ end
116
+ %></span>
117
+ <span><%= fret.zero? ? "Open" : fret %></span>
118
+ </span>
119
+ <% end %>
120
+ </div>
121
+ </div>
122
+
123
+ <% if highlight_frets.any? %>
124
+ <div class="outro-guitar__controls">
125
+ <button type="button" class="outro-guitar__button"
126
+ data-guitar-play="chord"
127
+ data-positions="<%= positions_attr %>">
128
+ Play Chord
129
+ </button>
130
+ <button type="button" class="outro-guitar__button"
131
+ data-guitar-play="scale"
132
+ data-positions="<%= positions_attr %>">
133
+ Play Notes
134
+ </button>
135
+ </div>
136
+ <% end %>
137
+ </div>
@@ -0,0 +1,9 @@
1
+ <section class="outro-card">
2
+ <h2 class="outro-section-heading">
3
+ Full keyboard
4
+ </h2>
5
+
6
+ <%= render "outro_rails/instruments/piano_midi",
7
+ start_note: 'A1', end_note: 'C8' %>
8
+
9
+ </section>
@@ -0,0 +1,82 @@
1
+ <%#
2
+ Small printable piano figure. A static SVG thumbnail of a voicing,
3
+ with no controls and no JavaScript. Because the highlights are SVG
4
+ fills (not CSS backgrounds), they survive printing even when the
5
+ browser skips background graphics.
6
+
7
+ Takes the same locals as instruments/_piano_midi (all optional):
8
+ start_note: first key, e.g. "C3" (default "C3")
9
+ end_note: last key, e.g. "C5" (default "C5")
10
+ highlight_keys: array of note names to highlight, e.g. %w[C4 E4 G4]
11
+ highlight_color: any CSS color for highlighted keys (default blue)
12
+ root_keys: subset of keys to mark as roots (default [])
13
+ root_color: any CSS color for root keys (default red)
14
+ prefer: 'sharps' or 'flats' for spelling (default 'sharps')
15
+ %>
16
+
17
+ <%
18
+ start_note = local_assigns.fetch(:start_note, nil).presence || "C3"
19
+ end_note = local_assigns.fetch(:end_note, nil).presence || "C5"
20
+ highlight_keys = Array(local_assigns.fetch(:highlight_keys, []))
21
+ highlight_color = local_assigns.fetch(:highlight_color, "#2f6bed")
22
+ root_keys = Array(local_assigns.fetch(:root_keys, []))
23
+ root_color = local_assigns.fetch(:root_color, "#d1495b")
24
+ prefer = local_assigns.fetch(:prefer, "sharps").to_sym
25
+
26
+ keys = piano_keys_between(start_note, end_note, prefer: prefer)
27
+ highlighted_midis = highlight_keys.map { |n| note_to_midi(n) }
28
+ root_midis = root_keys.map { |n| note_to_midi(n) }
29
+
30
+ white_w, white_h = 14, 46 # viewBox units
31
+ black_w, black_h = 8.5, 28
32
+
33
+ whites = []
34
+ blacks = []
35
+ white_index = 0
36
+
37
+ keys.each do |key|
38
+ if key[:black]
39
+ x = (white_index * white_w) - (black_w / 2.0)
40
+ blacks << key.merge(x: x.clamp(0, Float::INFINITY))
41
+ else
42
+ whites << key.merge(x: white_index * white_w)
43
+ white_index += 1
44
+ end
45
+ end
46
+
47
+ width = [white_index, 1].max * white_w
48
+
49
+ fill_for = lambda do |key|
50
+ if root_midis.include?(key[:midi]) then root_color
51
+ elsif highlighted_midis.include?(key[:midi]) then highlight_color
52
+ elsif key[:black] then "#222222"
53
+ else "#ffffff"
54
+ end
55
+ end
56
+
57
+ label =
58
+ if highlight_keys.any?
59
+ "Piano voicing: #{highlight_keys.join(', ')}"
60
+ else
61
+ "Piano keyboard from #{start_note} to #{end_note}"
62
+ end
63
+ %>
64
+
65
+ <svg class="outro-figure__svg outro-figure__svg--piano"
66
+ viewBox="0 0 <%= width %> <%= white_h %>"
67
+ width="<%= (width * 0.9).round %>"
68
+ role="img"
69
+ aria-label="<%= label %>">
70
+ <% whites.each do |key| %>
71
+ <rect x="<%= key[:x] %>" y="0"
72
+ width="<%= white_w %>" height="<%= white_h %>"
73
+ rx="1.5" fill="<%= fill_for.call(key) %>"
74
+ stroke="#444444" stroke-width="0.75" />
75
+ <% end %>
76
+ <% blacks.each do |key| %>
77
+ <rect x="<%= key[:x] %>" y="0"
78
+ width="<%= black_w %>" height="<%= black_h %>"
79
+ rx="1.5" fill="<%= fill_for.call(key) %>"
80
+ stroke="#111111" stroke-width="0.75" />
81
+ <% end %>
82
+ </svg>