coltrane 2.2.1 → 3.0.0.pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (129) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +16 -1
  3. data/CHANGELOG.md +11 -0
  4. data/Gemfile.lock +25 -2
  5. data/README.md +3 -0
  6. data/bin/console +6 -2
  7. data/coltrane.gemspec +2 -1
  8. data/exe/coltrane +14 -224
  9. data/lib/coltrane.rb +3 -50
  10. data/lib/coltrane/commands.rb +14 -0
  11. data/lib/coltrane/commands/chords.rb +77 -0
  12. data/lib/coltrane/commands/command.rb +45 -0
  13. data/lib/coltrane/commands/common_chords.rb +33 -0
  14. data/lib/coltrane/commands/errors.rb +44 -0
  15. data/lib/coltrane/commands/find_progression.rb +28 -0
  16. data/lib/coltrane/commands/find_scale.rb +39 -0
  17. data/lib/coltrane/commands/notes.rb +44 -0
  18. data/lib/coltrane/commands/progression.rb +27 -0
  19. data/lib/{cli → coltrane/commands}/representation.rb +0 -0
  20. data/lib/coltrane/commands/scale.rb +46 -0
  21. data/lib/coltrane/renderers.rb +6 -0
  22. data/lib/coltrane/renderers/renderer.rb +42 -0
  23. data/lib/coltrane/renderers/text_renderer.rb +23 -0
  24. data/lib/coltrane/renderers/text_renderer/array_drawer.rb +45 -0
  25. data/lib/coltrane/renderers/text_renderer/base_drawer.rb +20 -0
  26. data/lib/coltrane/renderers/text_renderer/hash_drawer.rb +16 -0
  27. data/lib/coltrane/renderers/text_renderer/representation_guitar_chord_drawer.rb +95 -0
  28. data/lib/coltrane/renderers/text_renderer/representation_guitar_note_set_drawer.rb +76 -0
  29. data/lib/coltrane/renderers/text_renderer/representation_piano_note_set_drawer.rb +49 -0
  30. data/lib/coltrane/renderers/text_renderer/theory_chord_drawer.rb +14 -0
  31. data/lib/coltrane/renderers/text_renderer/theory_note_set_drawer.rb +17 -0
  32. data/lib/coltrane/renderers/text_renderer/theory_progression_drawer.rb +13 -0
  33. data/lib/coltrane/renderers/text_renderer/theory_progression_set_drawer.rb +22 -0
  34. data/lib/coltrane/renderers/text_renderer/theory_scale_drawer.rb +13 -0
  35. data/lib/coltrane/renderers/text_renderer/theory_scale_set_drawer.rb +27 -0
  36. data/lib/coltrane/representation.rb +12 -0
  37. data/lib/coltrane/representation/guitar.rb +34 -0
  38. data/lib/coltrane/representation/guitar/chord.rb +180 -0
  39. data/lib/coltrane/representation/guitar/note.rb +26 -0
  40. data/lib/coltrane/representation/guitar/note_set.rb +35 -0
  41. data/lib/coltrane/representation/guitar/string.rb +31 -0
  42. data/lib/coltrane/representation/guitar_like_instruments.rb +21 -0
  43. data/lib/coltrane/representation/piano.rb +36 -0
  44. data/lib/coltrane/representation/piano/note_set.rb +22 -0
  45. data/lib/{coltrane_synth.rb → coltrane/synth.rb.rb} +0 -0
  46. data/lib/{coltrane_synth → coltrane/synth}/base.rb +0 -0
  47. data/lib/{coltrane_synth → coltrane/synth}/synth.rb +0 -0
  48. data/lib/coltrane/theory.rb +54 -0
  49. data/lib/coltrane/theory/cadence.rb +9 -0
  50. data/lib/coltrane/{changes.rb → theory/changes.rb} +0 -0
  51. data/lib/coltrane/theory/chord.rb +101 -0
  52. data/lib/coltrane/theory/chord_quality.rb +113 -0
  53. data/lib/coltrane/theory/chord_substitutions.rb +11 -0
  54. data/lib/coltrane/theory/circle_of_fifths.rb +33 -0
  55. data/lib/coltrane/theory/classic_scales.rb +113 -0
  56. data/lib/coltrane/theory/diatonic_scale.rb +38 -0
  57. data/lib/coltrane/theory/errors.rb +97 -0
  58. data/lib/coltrane/theory/frequency.rb +52 -0
  59. data/lib/coltrane/theory/frequency_interval.rb +83 -0
  60. data/lib/coltrane/theory/interval.rb +209 -0
  61. data/lib/coltrane/theory/interval_class.rb +212 -0
  62. data/lib/coltrane/theory/interval_sequence.rb +157 -0
  63. data/lib/coltrane/theory/key.rb +18 -0
  64. data/lib/coltrane/{mode.rb → theory/mode.rb} +0 -0
  65. data/lib/coltrane/theory/notable_progressions.rb +30 -0
  66. data/lib/coltrane/theory/note.rb +104 -0
  67. data/lib/coltrane/theory/note_set.rb +101 -0
  68. data/lib/coltrane/theory/pitch.rb +94 -0
  69. data/lib/coltrane/theory/pitch_class.rb +154 -0
  70. data/lib/coltrane/theory/progression.rb +81 -0
  71. data/lib/coltrane/theory/progression_set.rb +18 -0
  72. data/lib/coltrane/{qualities.rb → theory/qualities.rb} +0 -0
  73. data/lib/coltrane/theory/roman_chord.rb +114 -0
  74. data/lib/coltrane/theory/scale.rb +161 -0
  75. data/lib/coltrane/theory/scale_search_result.rb +6 -0
  76. data/lib/coltrane/theory/scale_set.rb +40 -0
  77. data/lib/coltrane/theory/voicing.rb +41 -0
  78. data/lib/coltrane/version.rb +1 -1
  79. metadata +88 -63
  80. data/bin/rails +0 -17
  81. data/data/qualities.yml +0 -83
  82. data/db/cache.sqlite3 +0 -0
  83. data/db/cache_test.sqlite3 +0 -0
  84. data/db/config.yml +0 -11
  85. data/lib/cli.rb +0 -24
  86. data/lib/cli/bass_guitar.rb +0 -12
  87. data/lib/cli/chord.rb +0 -39
  88. data/lib/cli/config.rb +0 -39
  89. data/lib/cli/errors.rb +0 -46
  90. data/lib/cli/guitar.rb +0 -67
  91. data/lib/cli/guitar_chords.rb +0 -122
  92. data/lib/cli/notes.rb +0 -20
  93. data/lib/cli/piano.rb +0 -57
  94. data/lib/cli/scale.rb +0 -53
  95. data/lib/cli/text.rb +0 -16
  96. data/lib/cli/ukulele.rb +0 -14
  97. data/lib/coltrane/cache.rb +0 -43
  98. data/lib/coltrane/cadence.rb +0 -7
  99. data/lib/coltrane/chord.rb +0 -89
  100. data/lib/coltrane/chord_quality.rb +0 -111
  101. data/lib/coltrane/chord_substitutions.rb +0 -9
  102. data/lib/coltrane/circle_of_fifths.rb +0 -31
  103. data/lib/coltrane/classic_scales.rb +0 -94
  104. data/lib/coltrane/diatonic_scale.rb +0 -36
  105. data/lib/coltrane/errors.rb +0 -95
  106. data/lib/coltrane/frequency.rb +0 -50
  107. data/lib/coltrane/frequency_interval.rb +0 -81
  108. data/lib/coltrane/interval.rb +0 -208
  109. data/lib/coltrane/interval_class.rb +0 -210
  110. data/lib/coltrane/interval_sequence.rb +0 -155
  111. data/lib/coltrane/key.rb +0 -16
  112. data/lib/coltrane/notable_progressions.rb +0 -28
  113. data/lib/coltrane/note.rb +0 -98
  114. data/lib/coltrane/note_set.rb +0 -89
  115. data/lib/coltrane/pitch.rb +0 -92
  116. data/lib/coltrane/pitch_class.rb +0 -148
  117. data/lib/coltrane/progression.rb +0 -74
  118. data/lib/coltrane/roman_chord.rb +0 -112
  119. data/lib/coltrane/scale.rb +0 -154
  120. data/lib/coltrane/unordered_interval_class.rb +0 -7
  121. data/lib/coltrane/voicing.rb +0 -39
  122. data/lib/coltrane_game/question.rb +0 -7
  123. data/lib/coltrane_instruments.rb +0 -7
  124. data/lib/coltrane_instruments/guitar.rb +0 -10
  125. data/lib/coltrane_instruments/guitar/base.rb +0 -29
  126. data/lib/coltrane_instruments/guitar/chord.rb +0 -170
  127. data/lib/coltrane_instruments/guitar/note.rb +0 -24
  128. data/lib/coltrane_instruments/guitar/string.rb +0 -29
  129. data/lib/os.rb +0 -21
@@ -0,0 +1,6 @@
1
+ module Coltrane
2
+ module Theory
3
+ class ScaleSearchResult
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,40 @@
1
+ module Coltrane
2
+ module Theory
3
+ class ScaleSet
4
+ extend Forwardable
5
+ def_delegators :scales, :map
6
+
7
+ attr_accessor :scales, :searched_notes
8
+
9
+ def initialize(*scales, searched_notes: nil)
10
+ @scales = scales.uniq
11
+ @searched_notes = searched_notes
12
+ end
13
+
14
+ def strict_scales
15
+ @strict_scales ||= scales.select do |scale|
16
+ (scale.notes & searched_notes).size == searched_notes.size
17
+ end
18
+ end
19
+
20
+ def results
21
+ raise 'No searched notes were provided' unless searched_notes
22
+ @table ||=
23
+ scales.each_with_object({}) do |scale, the_table|
24
+ the_table[scale.name] ||= {}
25
+ the_table[scale.name][scale.tone.pitch_class.name] = (
26
+ scale.notes & searched_notes
27
+ )
28
+ end
29
+ end
30
+
31
+ def names
32
+ map(&:name)
33
+ end
34
+
35
+ def full_names
36
+ map(&:full_name)
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Coltrane
4
+ module Theory
5
+ # This class describes an actual implementation of a Chord, being aware
6
+ # of exact octaves of each pitch and even repeating pitches across octaves.
7
+ class Voicing
8
+ attr_reader :pitches
9
+
10
+ def initialize(*pitch_strings, pitches: nil)
11
+ @pitches = if pitch_strings.any?
12
+ pitch_strings.map { |s| Pitch[s] }
13
+ elsif pitches
14
+ pitches
15
+ else
16
+ raise WrongArgumentsError
17
+ end
18
+ end
19
+
20
+ def self.[](*args)
21
+ new(*args)
22
+ end
23
+
24
+ def pitch_classes
25
+ NoteSet[*pitches.map(&:pitch_class).uniq]
26
+ end
27
+
28
+ alias notes pitch_classes
29
+
30
+ def chord
31
+ @chord ||= Chord.new(notes: notes)
32
+ rescue ChordNotFoundError
33
+ return false
34
+ end
35
+
36
+ def frequencies
37
+ pitches.map(&:frequency)
38
+ end
39
+ end
40
+ end
41
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Coltrane
4
- VERSION = '2.2.1'
4
+ VERSION = '3.0.0.pre'
5
5
  end
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: coltrane
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.1
4
+ version: 3.0.0.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pedro Maciel
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-03-27 00:00:00.000000000 Z
11
+ date: 2018-04-01 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: tty-prompt
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.16.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.16.0
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: dry-monads
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -30,14 +44,14 @@ dependencies:
30
44
  requirements:
31
45
  - - "~>"
32
46
  - !ruby/object:Gem::Version
33
- version: '2.0'
47
+ version: 2.0.1
34
48
  type: :runtime
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
52
  - - "~>"
39
53
  - !ruby/object:Gem::Version
40
- version: '2.0'
54
+ version: 2.0.1
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: color
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -141,7 +155,6 @@ files:
141
155
  - bin/pronto
142
156
  - bin/pry
143
157
  - bin/rackup
144
- - bin/rails
145
158
  - bin/rake
146
159
  - bin/rdoc
147
160
  - bin/rescue
@@ -158,66 +171,78 @@ files:
158
171
  - bin/tilt
159
172
  - coltrane.gemspec
160
173
  - config.ru
161
- - data/qualities.yml
162
- - db/cache.sqlite3
163
- - db/cache_test.sqlite3
164
- - db/config.yml
165
174
  - exe/coltrane
166
- - lib/cli.rb
167
- - lib/cli/bass_guitar.rb
168
- - lib/cli/chord.rb
169
- - lib/cli/config.rb
170
- - lib/cli/errors.rb
171
- - lib/cli/guitar.rb
172
- - lib/cli/guitar_chords.rb
173
- - lib/cli/notes.rb
174
- - lib/cli/piano.rb
175
- - lib/cli/representation.rb
176
- - lib/cli/scale.rb
177
- - lib/cli/text.rb
178
- - lib/cli/ukulele.rb
179
175
  - lib/coltrane.rb
180
- - lib/coltrane/cache.rb
181
- - lib/coltrane/cadence.rb
182
- - lib/coltrane/changes.rb
183
- - lib/coltrane/chord.rb
184
- - lib/coltrane/chord_quality.rb
185
- - lib/coltrane/chord_substitutions.rb
186
- - lib/coltrane/circle_of_fifths.rb
187
- - lib/coltrane/classic_scales.rb
188
- - lib/coltrane/diatonic_scale.rb
189
- - lib/coltrane/errors.rb
190
- - lib/coltrane/frequency.rb
191
- - lib/coltrane/frequency_interval.rb
192
- - lib/coltrane/interval.rb
193
- - lib/coltrane/interval_class.rb
194
- - lib/coltrane/interval_sequence.rb
195
- - lib/coltrane/key.rb
196
- - lib/coltrane/mode.rb
197
- - lib/coltrane/notable_progressions.rb
198
- - lib/coltrane/note.rb
199
- - lib/coltrane/note_set.rb
200
- - lib/coltrane/pitch.rb
201
- - lib/coltrane/pitch_class.rb
202
- - lib/coltrane/progression.rb
203
- - lib/coltrane/qualities.rb
204
- - lib/coltrane/roman_chord.rb
205
- - lib/coltrane/scale.rb
206
- - lib/coltrane/unordered_interval_class.rb
176
+ - lib/coltrane/commands.rb
177
+ - lib/coltrane/commands/chords.rb
178
+ - lib/coltrane/commands/command.rb
179
+ - lib/coltrane/commands/common_chords.rb
180
+ - lib/coltrane/commands/errors.rb
181
+ - lib/coltrane/commands/find_progression.rb
182
+ - lib/coltrane/commands/find_scale.rb
183
+ - lib/coltrane/commands/notes.rb
184
+ - lib/coltrane/commands/progression.rb
185
+ - lib/coltrane/commands/representation.rb
186
+ - lib/coltrane/commands/scale.rb
187
+ - lib/coltrane/renderers.rb
188
+ - lib/coltrane/renderers/renderer.rb
189
+ - lib/coltrane/renderers/text_renderer.rb
190
+ - lib/coltrane/renderers/text_renderer/array_drawer.rb
191
+ - lib/coltrane/renderers/text_renderer/base_drawer.rb
192
+ - lib/coltrane/renderers/text_renderer/hash_drawer.rb
193
+ - lib/coltrane/renderers/text_renderer/representation_guitar_chord_drawer.rb
194
+ - lib/coltrane/renderers/text_renderer/representation_guitar_note_set_drawer.rb
195
+ - lib/coltrane/renderers/text_renderer/representation_piano_note_set_drawer.rb
196
+ - lib/coltrane/renderers/text_renderer/theory_chord_drawer.rb
197
+ - lib/coltrane/renderers/text_renderer/theory_note_set_drawer.rb
198
+ - lib/coltrane/renderers/text_renderer/theory_progression_drawer.rb
199
+ - lib/coltrane/renderers/text_renderer/theory_progression_set_drawer.rb
200
+ - lib/coltrane/renderers/text_renderer/theory_scale_drawer.rb
201
+ - lib/coltrane/renderers/text_renderer/theory_scale_set_drawer.rb
202
+ - lib/coltrane/representation.rb
203
+ - lib/coltrane/representation/guitar.rb
204
+ - lib/coltrane/representation/guitar/chord.rb
205
+ - lib/coltrane/representation/guitar/note.rb
206
+ - lib/coltrane/representation/guitar/note_set.rb
207
+ - lib/coltrane/representation/guitar/string.rb
208
+ - lib/coltrane/representation/guitar_like_instruments.rb
209
+ - lib/coltrane/representation/piano.rb
210
+ - lib/coltrane/representation/piano/note_set.rb
211
+ - lib/coltrane/synth.rb.rb
212
+ - lib/coltrane/synth/base.rb
213
+ - lib/coltrane/synth/synth.rb
214
+ - lib/coltrane/theory.rb
215
+ - lib/coltrane/theory/cadence.rb
216
+ - lib/coltrane/theory/changes.rb
217
+ - lib/coltrane/theory/chord.rb
218
+ - lib/coltrane/theory/chord_quality.rb
219
+ - lib/coltrane/theory/chord_substitutions.rb
220
+ - lib/coltrane/theory/circle_of_fifths.rb
221
+ - lib/coltrane/theory/classic_scales.rb
222
+ - lib/coltrane/theory/diatonic_scale.rb
223
+ - lib/coltrane/theory/errors.rb
224
+ - lib/coltrane/theory/frequency.rb
225
+ - lib/coltrane/theory/frequency_interval.rb
226
+ - lib/coltrane/theory/interval.rb
227
+ - lib/coltrane/theory/interval_class.rb
228
+ - lib/coltrane/theory/interval_sequence.rb
229
+ - lib/coltrane/theory/key.rb
230
+ - lib/coltrane/theory/mode.rb
231
+ - lib/coltrane/theory/notable_progressions.rb
232
+ - lib/coltrane/theory/note.rb
233
+ - lib/coltrane/theory/note_set.rb
234
+ - lib/coltrane/theory/pitch.rb
235
+ - lib/coltrane/theory/pitch_class.rb
236
+ - lib/coltrane/theory/progression.rb
237
+ - lib/coltrane/theory/progression_set.rb
238
+ - lib/coltrane/theory/qualities.rb
239
+ - lib/coltrane/theory/roman_chord.rb
240
+ - lib/coltrane/theory/scale.rb
241
+ - lib/coltrane/theory/scale_search_result.rb
242
+ - lib/coltrane/theory/scale_set.rb
243
+ - lib/coltrane/theory/voicing.rb
207
244
  - lib/coltrane/version.rb
208
- - lib/coltrane/voicing.rb
209
- - lib/coltrane_game/question.rb
210
- - lib/coltrane_instruments.rb
211
- - lib/coltrane_instruments/guitar.rb
212
- - lib/coltrane_instruments/guitar/base.rb
213
- - lib/coltrane_instruments/guitar/chord.rb
214
- - lib/coltrane_instruments/guitar/note.rb
215
- - lib/coltrane_instruments/guitar/string.rb
216
- - lib/coltrane_synth.rb
217
- - lib/coltrane_synth/base.rb
218
- - lib/coltrane_synth/synth.rb
219
245
  - lib/core_ext.rb
220
- - lib/os.rb
221
246
  homepage: http://github.com/pedrozath/coltrane
222
247
  licenses:
223
248
  - MIT
@@ -234,9 +259,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
234
259
  version: '2.5'
235
260
  required_rubygems_version: !ruby/object:Gem::Requirement
236
261
  requirements:
237
- - - ">="
262
+ - - ">"
238
263
  - !ruby/object:Gem::Version
239
- version: '0'
264
+ version: 1.3.1
240
265
  requirements: []
241
266
  rubyforge_project:
242
267
  rubygems_version: 2.7.6
data/bin/rails DELETED
@@ -1,17 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
- #
4
- # This file was generated by Bundler.
5
- #
6
- # The application 'rails' is installed as part of a gem, and
7
- # this file is here to facilitate running it.
8
- #
9
-
10
- require "pathname"
11
- ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
12
- Pathname.new(__FILE__).realpath)
13
-
14
- require "rubygems"
15
- require "bundler/setup"
16
-
17
- load Gem.bin_path("railties", "rails")
data/data/qualities.yml DELETED
@@ -1,83 +0,0 @@
1
- # NOTE: suspended chords are added programatically
2
-
3
- Perfect Unison:
4
- Minor Third:
5
- Diminished Fifth:
6
- name: dim
7
- Diminished Seventh:
8
- name: dim7
9
- Minor Ninth:
10
- name: dim9
11
- Major Ninth:
12
- name: dim(b9)
13
- Minor Seventh:
14
- name: m7b5
15
- Minor Ninth:
16
- name: m7b5b9
17
- Perfect Eleventh:
18
- name: m7b5b11
19
- Major Thirteenth:
20
- name: m7b5b13
21
- Major Ninth:
22
- name: m7b5(9)
23
- Perfect Fifth:
24
- name: m
25
- Major Sixth:
26
- name: m6
27
- Minor Seventh:
28
- name: m7
29
- Minor Ninth:
30
- name: m9
31
- Perfect Eleventh:
32
- name: m11
33
- Major Seventh:
34
- name: m(M7)
35
- Major Ninth:
36
- name: m(M9)
37
- Perfect Eleventh:
38
- name: m(M11)
39
- Major Thirteenth:
40
- name: m(M13)
41
- Major Third:
42
- Perfect Fifth:
43
- name: M
44
- Major Sixth:
45
- name: M6
46
- Major Ninth:
47
- name: 6/9
48
- Perfect Eleventh:
49
- name: 6/9(add11)
50
- Minor Seventh:
51
- name: "7"
52
- Major Ninth:
53
- name: "9"
54
- Perfect Eleventh:
55
- name: "11"
56
- Major Thirteenth:
57
- name: "13"
58
- Major Seventh:
59
- name: M7
60
- Major Ninth:
61
- name: M9
62
- Perfect Eleventh:
63
- name: M11
64
- Major Thirteenth:
65
- name: M13
66
- Augmented Fifth:
67
- name: +
68
- Minor Seventh:
69
- name: "+7"
70
- Major Ninth:
71
- name: "+9"
72
- Perfect Eleventh:
73
- name: "+11"
74
- Major Thirteenth:
75
- name: "+13"
76
- Major Seventh:
77
- name: +M7
78
- Major Ninth:
79
- name: +M9
80
- Perfect Eleventh:
81
- name: +M11
82
- Major Thirteenth:
83
- name: +M13
data/db/cache.sqlite3 DELETED
Binary file
Binary file
data/db/config.yml DELETED
@@ -1,11 +0,0 @@
1
- production:
2
- adapter: sqlite3
3
- database: db/cache.sqlite3
4
- pool: 5
5
- timeout: 5000
6
-
7
- test:
8
- adapter: sqlite3
9
- database: db/cache_test.sqlite3
10
- pool: 5
11
- timeout: 5000
data/lib/cli.rb DELETED
@@ -1,24 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'os'
4
- require 'mercenary'
5
- require 'paint'
6
- require 'color'
7
-
8
- require 'coltrane'
9
- require 'coltrane_instruments'
10
- # require 'coltrane_synth'
11
-
12
- require 'cli/config'
13
- require 'cli/errors'
14
- require 'cli/representation'
15
- require 'cli/text'
16
- require 'cli/piano'
17
- require 'cli/guitar'
18
- require 'cli/bass_guitar'
19
- require 'cli/ukulele'
20
- require 'cli/guitar_chords'
21
-
22
- require 'cli/notes'
23
- require 'cli/chord'
24
- require 'cli/scale'