fretboard 1.3.0 → 1.4.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +568 -14
- data/RELEASE.md +7 -0
- data/bin/fretboard +2 -0
- data/fretboard.gemspec +4 -2
- data/lib/fretboard/builder.rb +116 -23
- data/lib/fretboard/console.rb +3 -1
- data/lib/fretboard/constants.rb +7 -5
- data/lib/fretboard/note.rb +8 -7
- data/lib/fretboard/notes.rb +12 -24
- data/lib/fretboard/parser.rb +4 -2
- data/lib/fretboard/tunings.rb +245 -231
- data/lib/fretboard/version.rb +4 -2
- data/lib/fretboard.rb +2 -0
- metadata +10 -9
data/lib/fretboard/tunings.rb
CHANGED
@@ -1,291 +1,305 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Fretboard
|
2
|
-
class Tunings
|
4
|
+
class Tunings # rubocop:disable Style/Documentation, Metrics/ClassLength
|
3
5
|
# Fretboard::Tunings.get(:standart)
|
4
6
|
# Fretboard::Tunings.exists?(:standart)
|
5
7
|
|
6
8
|
TUNINGS = {
|
7
9
|
STANDART: {
|
8
10
|
STRINGS: {
|
9
|
-
1 => {
|
10
|
-
|
11
|
-
},
|
12
|
-
|
13
|
-
|
14
|
-
}
|
15
|
-
3 => {
|
16
|
-
NOTE: 'G'
|
17
|
-
},
|
18
|
-
4 => {
|
19
|
-
NOTE: 'D'
|
20
|
-
},
|
21
|
-
5 => {
|
22
|
-
NOTE: 'A'
|
23
|
-
},
|
24
|
-
6 => {
|
25
|
-
NOTE: 'E'
|
26
|
-
}
|
11
|
+
1 => { NOTE: 'E' },
|
12
|
+
2 => { NOTE: 'B' },
|
13
|
+
3 => { NOTE: 'G' },
|
14
|
+
4 => { NOTE: 'D' },
|
15
|
+
5 => { NOTE: 'A' },
|
16
|
+
6 => { NOTE: 'E' }
|
27
17
|
}
|
28
18
|
},
|
29
19
|
|
30
|
-
|
20
|
+
TUNING_A: {
|
31
21
|
STRINGS: {
|
32
|
-
1 => {
|
33
|
-
|
34
|
-
},
|
35
|
-
|
36
|
-
|
37
|
-
}
|
38
|
-
3 => {
|
39
|
-
NOTE: 'F'
|
40
|
-
},
|
41
|
-
4 => {
|
42
|
-
NOTE: 'C'
|
43
|
-
},
|
44
|
-
5 => {
|
45
|
-
NOTE: 'G'
|
46
|
-
},
|
47
|
-
6 => {
|
48
|
-
NOTE: 'C'
|
49
|
-
}
|
22
|
+
1 => { NOTE: 'A' },
|
23
|
+
2 => { NOTE: 'E' },
|
24
|
+
3 => { NOTE: 'C' },
|
25
|
+
4 => { NOTE: 'G' },
|
26
|
+
5 => { NOTE: 'D' },
|
27
|
+
6 => { NOTE: 'A' }
|
50
28
|
}
|
51
29
|
},
|
52
30
|
|
53
|
-
|
31
|
+
OPEN_A: {
|
54
32
|
STRINGS: {
|
55
|
-
1 => {
|
56
|
-
|
57
|
-
},
|
58
|
-
|
59
|
-
|
60
|
-
}
|
61
|
-
3 => {
|
62
|
-
NOTE: 'G'
|
63
|
-
},
|
64
|
-
4 => {
|
65
|
-
NOTE: 'D'
|
66
|
-
},
|
67
|
-
5 => {
|
68
|
-
NOTE: 'A'
|
69
|
-
},
|
70
|
-
6 => {
|
71
|
-
NOTE: 'D'
|
72
|
-
}
|
33
|
+
1 => { NOTE: 'E' },
|
34
|
+
2 => { NOTE: 'A' },
|
35
|
+
3 => { NOTE: 'E' },
|
36
|
+
4 => { NOTE: ['C#', 'Db'] },
|
37
|
+
5 => { NOTE: 'A' },
|
38
|
+
6 => { NOTE: 'E' }
|
73
39
|
}
|
74
40
|
},
|
75
41
|
|
76
|
-
|
42
|
+
DROP_A: {
|
77
43
|
STRINGS: {
|
78
|
-
1 => {
|
79
|
-
|
80
|
-
},
|
81
|
-
|
82
|
-
|
83
|
-
}
|
84
|
-
3 => {
|
85
|
-
NOTE: 'G'
|
86
|
-
},
|
87
|
-
4 => {
|
88
|
-
NOTE: 'D'
|
89
|
-
},
|
90
|
-
5 => {
|
91
|
-
NOTE: 'A'
|
92
|
-
},
|
93
|
-
6 => {
|
94
|
-
NOTE: 'D'
|
95
|
-
}
|
44
|
+
1 => { NOTE: 'B' },
|
45
|
+
2 => { NOTE: ['F#', 'Gb'] },
|
46
|
+
3 => { NOTE: 'D' },
|
47
|
+
4 => { NOTE: 'A' },
|
48
|
+
5 => { NOTE: 'E' },
|
49
|
+
6 => { NOTE: 'A' }
|
96
50
|
}
|
97
51
|
},
|
98
52
|
|
99
|
-
|
53
|
+
DROP_A_SHARP: {
|
54
|
+
STRINGS: {
|
55
|
+
1 => { NOTE: 'C' },
|
56
|
+
2 => { NOTE: 'G' },
|
57
|
+
3 => { NOTE: ['D#', 'Eb'] },
|
58
|
+
4 => { NOTE: ['A#', 'Bb'] },
|
59
|
+
5 => { NOTE: 'F' },
|
60
|
+
6 => { NOTE: ['A#', 'Bb'] }
|
61
|
+
}
|
62
|
+
},
|
63
|
+
|
64
|
+
DROP_A_FLAT: {
|
65
|
+
STRINGS: {
|
66
|
+
1 => { NOTE: ['A#', 'Bb'] },
|
67
|
+
2 => { NOTE: 'F' },
|
68
|
+
3 => { NOTE: ['C#', 'Db'] },
|
69
|
+
4 => { NOTE: ['G#', 'Ab'] },
|
70
|
+
5 => { NOTE: ['D#', 'Eb'] },
|
71
|
+
6 => { NOTE: ['G#', 'Ab'] }
|
72
|
+
}
|
73
|
+
},
|
74
|
+
|
75
|
+
TUNING_B: {
|
76
|
+
STRINGS: {
|
77
|
+
1 => { NOTE: 'B' },
|
78
|
+
2 => { NOTE: ['F#', 'Gb'] },
|
79
|
+
3 => { NOTE: 'D' },
|
80
|
+
4 => { NOTE: 'A' },
|
81
|
+
5 => { NOTE: 'E' },
|
82
|
+
6 => { NOTE: 'B' }
|
83
|
+
}
|
84
|
+
},
|
85
|
+
|
86
|
+
OPEN_B: {
|
100
87
|
STRINGS: {
|
101
|
-
1 => {
|
102
|
-
|
103
|
-
},
|
104
|
-
|
105
|
-
|
106
|
-
}
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
},
|
116
|
-
5 => {
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
88
|
+
1 => { NOTE: ['D#', 'Eb'] },
|
89
|
+
2 => { NOTE: 'B' },
|
90
|
+
3 => { NOTE: ['F#', 'Gb'] },
|
91
|
+
4 => { NOTE: 'B' },
|
92
|
+
5 => { NOTE: ['F#', 'Gb'] },
|
93
|
+
6 => { NOTE: 'B' }
|
94
|
+
}
|
95
|
+
},
|
96
|
+
|
97
|
+
DROP_B: {
|
98
|
+
STRINGS: {
|
99
|
+
1 => { NOTE: ['C#', 'Db'] },
|
100
|
+
2 => { NOTE: ['G#', 'Ab'] },
|
101
|
+
3 => { NOTE: 'E' },
|
102
|
+
4 => { NOTE: 'B' },
|
103
|
+
5 => { NOTE: ['F#', 'Gb'] },
|
104
|
+
6 => { NOTE: 'B' }
|
105
|
+
}
|
106
|
+
},
|
107
|
+
|
108
|
+
DROP_B_FLAT: {
|
109
|
+
STRINGS: {
|
110
|
+
1 => { NOTE: 'C' },
|
111
|
+
2 => { NOTE: 'G' },
|
112
|
+
3 => { NOTE: ['D#', 'Eb'] },
|
113
|
+
4 => { NOTE: ['A#', 'Bb'] },
|
114
|
+
5 => { NOTE: 'F' },
|
115
|
+
6 => { NOTE: ['A#', 'Bb'] }
|
116
|
+
}
|
117
|
+
},
|
118
|
+
|
119
|
+
TUNING_C: {
|
120
|
+
STRINGS: {
|
121
|
+
1 => { NOTE: 'C' },
|
122
|
+
2 => { NOTE: 'G' },
|
123
|
+
3 => { NOTE: ['D#', 'Eb'] },
|
124
|
+
4 => { NOTE: ['A#', 'Bb'] },
|
125
|
+
5 => { NOTE: 'F' },
|
126
|
+
6 => { NOTE: 'C' }
|
122
127
|
}
|
123
128
|
},
|
124
129
|
|
125
130
|
OPEN_C: {
|
126
131
|
STRINGS: {
|
127
|
-
1 => {
|
128
|
-
|
129
|
-
},
|
130
|
-
|
131
|
-
|
132
|
-
}
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
},
|
139
|
-
|
140
|
-
|
141
|
-
},
|
142
|
-
|
143
|
-
|
144
|
-
|
132
|
+
1 => { NOTE: 'E' },
|
133
|
+
2 => { NOTE: 'C' },
|
134
|
+
3 => { NOTE: 'G' },
|
135
|
+
4 => { NOTE: 'C' },
|
136
|
+
5 => { NOTE: 'G' },
|
137
|
+
6 => { NOTE: 'C' }
|
138
|
+
}
|
139
|
+
},
|
140
|
+
|
141
|
+
DROP_C: {
|
142
|
+
STRINGS: {
|
143
|
+
1 => { NOTE: 'D' },
|
144
|
+
2 => { NOTE: 'A' },
|
145
|
+
3 => { NOTE: 'F' },
|
146
|
+
4 => { NOTE: 'C' },
|
147
|
+
5 => { NOTE: 'G' },
|
148
|
+
6 => { NOTE: 'C' }
|
149
|
+
}
|
150
|
+
},
|
151
|
+
|
152
|
+
TUNING_D: {
|
153
|
+
STRINGS: {
|
154
|
+
1 => { NOTE: 'D' },
|
155
|
+
2 => { NOTE: 'A' },
|
156
|
+
3 => { NOTE: 'F' },
|
157
|
+
4 => { NOTE: 'C' },
|
158
|
+
5 => { NOTE: 'G' },
|
159
|
+
6 => { NOTE: 'D' }
|
145
160
|
}
|
146
161
|
},
|
147
162
|
|
148
163
|
OPEN_D: {
|
149
164
|
STRINGS: {
|
150
|
-
1 => {
|
151
|
-
|
152
|
-
},
|
153
|
-
|
154
|
-
|
155
|
-
}
|
156
|
-
3 => {
|
157
|
-
NOTE: [
|
158
|
-
'F#',
|
159
|
-
'Gb'
|
160
|
-
]
|
161
|
-
},
|
162
|
-
4 => {
|
163
|
-
NOTE: 'D'
|
164
|
-
},
|
165
|
-
5 => {
|
166
|
-
NOTE: 'A'
|
167
|
-
},
|
168
|
-
6 => {
|
169
|
-
NOTE: 'D'
|
170
|
-
}
|
165
|
+
1 => { NOTE: 'D' },
|
166
|
+
2 => { NOTE: 'A' },
|
167
|
+
3 => { NOTE: ['F#', 'Gb'] },
|
168
|
+
4 => { NOTE: 'D' },
|
169
|
+
5 => { NOTE: 'A' },
|
170
|
+
6 => { NOTE: 'D' }
|
171
171
|
}
|
172
172
|
},
|
173
173
|
|
174
174
|
OPEN_D_MINOR: {
|
175
175
|
STRINGS: {
|
176
|
-
1 => {
|
177
|
-
|
178
|
-
},
|
179
|
-
|
180
|
-
|
181
|
-
}
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
},
|
188
|
-
|
189
|
-
|
190
|
-
},
|
191
|
-
|
192
|
-
|
193
|
-
|
176
|
+
1 => { NOTE: 'D' },
|
177
|
+
2 => { NOTE: 'A' },
|
178
|
+
3 => { NOTE: 'F' },
|
179
|
+
4 => { NOTE: 'D' },
|
180
|
+
5 => { NOTE: 'A' },
|
181
|
+
6 => { NOTE: 'D' }
|
182
|
+
}
|
183
|
+
},
|
184
|
+
|
185
|
+
DROP_D: {
|
186
|
+
STRINGS: {
|
187
|
+
1 => { NOTE: 'E' },
|
188
|
+
2 => { NOTE: 'B' },
|
189
|
+
3 => { NOTE: 'G' },
|
190
|
+
4 => { NOTE: 'D' },
|
191
|
+
5 => { NOTE: 'A' },
|
192
|
+
6 => { NOTE: 'D' }
|
193
|
+
}
|
194
|
+
},
|
195
|
+
|
196
|
+
DOUBLE_DROP_D: {
|
197
|
+
STRINGS: {
|
198
|
+
1 => { NOTE: 'D' },
|
199
|
+
2 => { NOTE: 'B' },
|
200
|
+
3 => { NOTE: 'G' },
|
201
|
+
4 => { NOTE: 'D' },
|
202
|
+
5 => { NOTE: 'A' },
|
203
|
+
6 => { NOTE: 'D' }
|
204
|
+
}
|
205
|
+
},
|
206
|
+
|
207
|
+
MODAL_D: {
|
208
|
+
STRINGS: {
|
209
|
+
1 => { NOTE: 'D' },
|
210
|
+
2 => { NOTE: 'A' },
|
211
|
+
3 => { NOTE: 'G' },
|
212
|
+
4 => { NOTE: 'D' },
|
213
|
+
5 => { NOTE: 'A' },
|
214
|
+
6 => { NOTE: 'D' }
|
215
|
+
}
|
216
|
+
},
|
217
|
+
|
218
|
+
OPEN_E: {
|
219
|
+
STRINGS: {
|
220
|
+
1 => { NOTE: 'E' },
|
221
|
+
2 => { NOTE: 'B' },
|
222
|
+
3 => { NOTE: ['G#', 'Ab'] },
|
223
|
+
4 => { NOTE: 'E' },
|
224
|
+
5 => { NOTE: 'B' },
|
225
|
+
6 => { NOTE: 'E' }
|
226
|
+
}
|
227
|
+
},
|
228
|
+
|
229
|
+
TUNING_F: {
|
230
|
+
STRINGS: {
|
231
|
+
1 => { NOTE: 'F' },
|
232
|
+
2 => { NOTE: 'C' },
|
233
|
+
3 => { NOTE: ['G#', 'Ab'] },
|
234
|
+
4 => { NOTE: ['D#', 'Eb'] },
|
235
|
+
5 => { NOTE: ['A#', 'Bb'] },
|
236
|
+
6 => { NOTE: 'F' }
|
237
|
+
}
|
238
|
+
},
|
239
|
+
|
240
|
+
TUNING_G: {
|
241
|
+
STRINGS: {
|
242
|
+
1 => { NOTE: 'G' },
|
243
|
+
2 => { NOTE: 'D' },
|
244
|
+
3 => { NOTE: ['A#', 'Bb'] },
|
245
|
+
4 => { NOTE: 'F' },
|
246
|
+
5 => { NOTE: 'C' },
|
247
|
+
6 => { NOTE: 'G' }
|
248
|
+
}
|
249
|
+
},
|
250
|
+
|
251
|
+
OPEN_F: {
|
252
|
+
STRINGS: {
|
253
|
+
1 => { NOTE: 'F' },
|
254
|
+
2 => { NOTE: 'C' },
|
255
|
+
3 => { NOTE: 'F' },
|
256
|
+
4 => { NOTE: 'C' },
|
257
|
+
5 => { NOTE: 'A' },
|
258
|
+
6 => { NOTE: 'F' }
|
194
259
|
}
|
195
260
|
},
|
196
261
|
|
197
262
|
OPEN_G: {
|
198
263
|
STRINGS: {
|
199
|
-
1 => {
|
200
|
-
|
201
|
-
},
|
202
|
-
|
203
|
-
|
204
|
-
}
|
205
|
-
3 => {
|
206
|
-
NOTE: 'G'
|
207
|
-
},
|
208
|
-
4 => {
|
209
|
-
NOTE: 'D'
|
210
|
-
},
|
211
|
-
5 => {
|
212
|
-
NOTE: 'G'
|
213
|
-
},
|
214
|
-
6 => {
|
215
|
-
NOTE: 'D'
|
216
|
-
}
|
264
|
+
1 => { NOTE: 'D' },
|
265
|
+
2 => { NOTE: 'B' },
|
266
|
+
3 => { NOTE: 'G' },
|
267
|
+
4 => { NOTE: 'D' },
|
268
|
+
5 => { NOTE: 'G' },
|
269
|
+
6 => { NOTE: 'D' }
|
217
270
|
}
|
218
271
|
},
|
219
272
|
|
220
273
|
OPEN_G_MINOR: {
|
221
274
|
STRINGS: {
|
222
|
-
1 => {
|
223
|
-
|
224
|
-
},
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
'Bb'
|
229
|
-
]
|
230
|
-
},
|
231
|
-
3 => {
|
232
|
-
NOTE: 'G'
|
233
|
-
},
|
234
|
-
4 => {
|
235
|
-
NOTE: 'D'
|
236
|
-
},
|
237
|
-
5 => {
|
238
|
-
NOTE: 'G'
|
239
|
-
},
|
240
|
-
6 => {
|
241
|
-
NOTE: 'D'
|
242
|
-
}
|
275
|
+
1 => { NOTE: 'D' },
|
276
|
+
2 => { NOTE: ['A#', 'Bb'] },
|
277
|
+
3 => { NOTE: 'G' },
|
278
|
+
4 => { NOTE: 'D' },
|
279
|
+
5 => { NOTE: 'G' },
|
280
|
+
6 => { NOTE: 'D' }
|
243
281
|
}
|
244
282
|
},
|
245
283
|
|
246
|
-
|
284
|
+
DROP_G_SHARP: {
|
247
285
|
STRINGS: {
|
248
|
-
1 => {
|
249
|
-
|
250
|
-
},
|
251
|
-
|
252
|
-
|
253
|
-
}
|
254
|
-
3 => {
|
255
|
-
NOTE: 'G'
|
256
|
-
},
|
257
|
-
4 => {
|
258
|
-
NOTE: 'D'
|
259
|
-
},
|
260
|
-
5 => {
|
261
|
-
NOTE: 'A'
|
262
|
-
},
|
263
|
-
6 => {
|
264
|
-
NOTE: 'D'
|
265
|
-
}
|
286
|
+
1 => { NOTE: ['A#', 'Bb'] },
|
287
|
+
2 => { NOTE: 'F' },
|
288
|
+
3 => { NOTE: ['C#', 'Db'] },
|
289
|
+
4 => { NOTE: ['G#', 'Ab'] },
|
290
|
+
5 => { NOTE: ['D#', 'Eb'] },
|
291
|
+
6 => { NOTE: ['G#', 'Ab'] }
|
266
292
|
}
|
267
293
|
},
|
268
294
|
|
269
295
|
MODAL_G: {
|
270
296
|
STRINGS: {
|
271
|
-
1 => {
|
272
|
-
|
273
|
-
},
|
274
|
-
|
275
|
-
|
276
|
-
}
|
277
|
-
3 => {
|
278
|
-
NOTE: 'G'
|
279
|
-
},
|
280
|
-
4 => {
|
281
|
-
NOTE: 'D'
|
282
|
-
},
|
283
|
-
5 => {
|
284
|
-
NOTE: 'G'
|
285
|
-
},
|
286
|
-
6 => {
|
287
|
-
NOTE: 'D'
|
288
|
-
}
|
297
|
+
1 => { NOTE: 'D' },
|
298
|
+
2 => { NOTE: 'C' },
|
299
|
+
3 => { NOTE: 'G' },
|
300
|
+
4 => { NOTE: 'D' },
|
301
|
+
5 => { NOTE: 'G' },
|
302
|
+
6 => { NOTE: 'D' }
|
289
303
|
}
|
290
304
|
}
|
291
305
|
}.freeze
|
data/lib/fretboard/version.rb
CHANGED
data/lib/fretboard.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fretboard
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Anton Sokolov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-05-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: colorize
|
@@ -30,28 +30,28 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 3.0.1
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 3.0.1
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rubocop
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 1.29.1
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 1.29.1
|
55
55
|
description: Tools for working with the guitar fretboard
|
56
56
|
email:
|
57
57
|
- anton@sokolov.digital
|
@@ -62,6 +62,7 @@ extra_rdoc_files: []
|
|
62
62
|
files:
|
63
63
|
- LICENSE.md
|
64
64
|
- README.md
|
65
|
+
- RELEASE.md
|
65
66
|
- bin/fretboard
|
66
67
|
- fretboard.gemspec
|
67
68
|
- lib/fretboard.rb
|
@@ -92,7 +93,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
92
93
|
- !ruby/object:Gem::Version
|
93
94
|
version: '0'
|
94
95
|
requirements: []
|
95
|
-
rubygems_version: 3.1.
|
96
|
+
rubygems_version: 3.1.6
|
96
97
|
signing_key:
|
97
98
|
specification_version: 4
|
98
99
|
summary: Tools for working with the guitar fretboard
|