instruments-chords 0.0.11 → 0.0.13

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.
@@ -0,0 +1,2 @@
1
+ import type { ChordDefinition } from '../types';
2
+ export declare const C: ChordDefinition;
@@ -0,0 +1,430 @@
1
+ export const C = {
2
+ major: {
3
+ default: '1',
4
+ variants: {
5
+ 1: {
6
+ 6: 'x',
7
+ 5: 3,
8
+ 4: 2,
9
+ 3: 0,
10
+ 2: 1,
11
+ 1: 0
12
+ },
13
+ 2: {
14
+ 6: 'x',
15
+ 5: 3,
16
+ 4: 5,
17
+ 3: 5,
18
+ 2: 5,
19
+ 1: 3
20
+ },
21
+ 3: {
22
+ 6: 8,
23
+ 5: 10,
24
+ 4: 10,
25
+ 3: 9,
26
+ 2: 8,
27
+ 1: 8
28
+ },
29
+ 4: {
30
+ 6: 'x',
31
+ 5: 10,
32
+ 4: 10,
33
+ 3: 9,
34
+ 2: 8,
35
+ 1: 'x'
36
+ },
37
+ 5: {
38
+ 6: 'x',
39
+ 5: 'x',
40
+ 4: 10,
41
+ 3: 9,
42
+ 2: 8,
43
+ 1: 8
44
+ },
45
+ 6: {
46
+ 6: 8,
47
+ 5: 10,
48
+ 4: 10,
49
+ 3: 9,
50
+ 2: 'x',
51
+ 1: 'x'
52
+ },
53
+ 7: {
54
+ 6: 'x',
55
+ 5: 'x',
56
+ 4: 10,
57
+ 3: 12,
58
+ 2: 13,
59
+ 1: 12
60
+ },
61
+ 8: {
62
+ 6: 'x',
63
+ 5: 3,
64
+ 4: 2,
65
+ 3: 5,
66
+ 2: 'x',
67
+ 1: 'x'
68
+ }
69
+ }
70
+ },
71
+ minor: {
72
+ default: '1',
73
+ variants: {
74
+ 1: {
75
+ 6: 'x',
76
+ 5: 3,
77
+ 4: 5,
78
+ 3: 5,
79
+ 2: 4,
80
+ 1: 3
81
+ },
82
+ 2: {
83
+ 6: 8,
84
+ 5: 10,
85
+ 4: 10,
86
+ 3: 8,
87
+ 2: 8,
88
+ 1: 8
89
+ },
90
+ 3: {
91
+ 6: 'x',
92
+ 5: 'x',
93
+ 4: 10,
94
+ 3: 12,
95
+ 2: 13,
96
+ 1: 11
97
+ },
98
+ 4: {
99
+ 6: 'x',
100
+ 5: 'x',
101
+ 4: 10,
102
+ 3: 8,
103
+ 2: 8,
104
+ 1: 8
105
+ }
106
+ }
107
+ },
108
+ 5: {
109
+ default: '1',
110
+ variants: {
111
+ 1: {
112
+ 6: 'x',
113
+ 5: 3,
114
+ 4: 5,
115
+ 3: 5,
116
+ 2: 'x',
117
+ 1: 'x'
118
+ },
119
+ 2: {
120
+ 6: 'x',
121
+ 5: 3,
122
+ 4: 5,
123
+ 3: 'x',
124
+ 2: 'x',
125
+ 1: 'x'
126
+ },
127
+ 3: {
128
+ 6: 8,
129
+ 5: 10,
130
+ 4: 10,
131
+ 3: 'x',
132
+ 2: 'x',
133
+ 1: 'x'
134
+ },
135
+ 4: {
136
+ 6: 8,
137
+ 5: 10,
138
+ 4: 'x',
139
+ 3: 'x',
140
+ 2: 'x',
141
+ 1: 'x'
142
+ },
143
+ 5: {
144
+ 6: 'x',
145
+ 5: 'x',
146
+ 4: 10,
147
+ 3: 12,
148
+ 2: 13,
149
+ 1: 'x'
150
+ },
151
+ 6: {
152
+ 6: 'x',
153
+ 5: 'x',
154
+ 4: 10,
155
+ 3: 12,
156
+ 2: 'x',
157
+ 1: 'x'
158
+ }
159
+ }
160
+ },
161
+ 7: {
162
+ default: '1',
163
+ variants: {
164
+ 1: {
165
+ 6: 'x',
166
+ 5: 3,
167
+ 4: 2,
168
+ 3: 3,
169
+ 2: 1,
170
+ 1: 'x'
171
+ },
172
+ 2: {
173
+ 6: 'x',
174
+ 5: 3,
175
+ 4: 5,
176
+ 3: 3,
177
+ 2: 5,
178
+ 1: 3
179
+ },
180
+ 3: {
181
+ 6: 8,
182
+ 5: 10,
183
+ 4: 8,
184
+ 3: 9,
185
+ 2: 8,
186
+ 1: 8
187
+ },
188
+ 4: {
189
+ 6: 'x',
190
+ 5: 'x',
191
+ 4: 10,
192
+ 3: 12,
193
+ 2: 11,
194
+ 1: 12
195
+ }
196
+ }
197
+ },
198
+ maj7: {
199
+ default: '1',
200
+ variants: {
201
+ 1: {
202
+ 6: 'x',
203
+ 5: 3,
204
+ 4: 2,
205
+ 3: 0,
206
+ 2: 0,
207
+ 1: 0
208
+ },
209
+ 2: {
210
+ 6: 'x',
211
+ 5: 3,
212
+ 4: 5,
213
+ 3: 4,
214
+ 2: 5,
215
+ 1: 3
216
+ },
217
+ 3: {
218
+ 6: 'x',
219
+ 5: 'x',
220
+ 4: 10,
221
+ 3: 9,
222
+ 2: 8,
223
+ 1: 7
224
+ },
225
+ 4: {
226
+ 6: 8,
227
+ 5: 10,
228
+ 4: 9,
229
+ 3: 9,
230
+ 2: 8,
231
+ 1: 'x'
232
+ },
233
+ 5: {
234
+ 6: 8,
235
+ 5: 'x',
236
+ 4: 9,
237
+ 3: 9,
238
+ 2: 8,
239
+ 1: 'x'
240
+ },
241
+ 8: {
242
+ 6: 'x',
243
+ 5: 'x',
244
+ 4: 10,
245
+ 3: 12,
246
+ 2: 12,
247
+ 1: 12
248
+ }
249
+ }
250
+ },
251
+ m7: {
252
+ default: '1',
253
+ variants: {
254
+ 1: {
255
+ 6: 'x',
256
+ 5: 3,
257
+ 4: 5,
258
+ 3: 3,
259
+ 2: 4,
260
+ 1: 3
261
+ },
262
+ 2: {
263
+ 6: 8,
264
+ 5: 10,
265
+ 4: 8,
266
+ 3: 8,
267
+ 2: 8,
268
+ 1: 8
269
+ },
270
+ 3: {
271
+ 6: 'x',
272
+ 5: 'x',
273
+ 4: 10,
274
+ 3: 12,
275
+ 2: 11,
276
+ 1: 11
277
+ }
278
+ }
279
+ },
280
+ sus4: {
281
+ default: '1',
282
+ variants: {
283
+ 1: {
284
+ 6: 'x',
285
+ 5: 3,
286
+ 4: 5,
287
+ 3: 5,
288
+ 2: 6,
289
+ 1: 3
290
+ },
291
+ 2: {
292
+ 6: 8,
293
+ 5: 10,
294
+ 4: 10,
295
+ 3: 10,
296
+ 2: 8,
297
+ 1: 8
298
+ },
299
+ 3: {
300
+ 6: 'x',
301
+ 5: 'x',
302
+ 4: 10,
303
+ 3: 12,
304
+ 2: 13,
305
+ 1: 13
306
+ }
307
+ }
308
+ },
309
+ add9: {
310
+ default: '1',
311
+ variants: {
312
+ 1: {
313
+ 6: 'x',
314
+ 5: 3,
315
+ 4: 2,
316
+ 3: 0,
317
+ 2: 3,
318
+ 1: 0
319
+ },
320
+ 2: {
321
+ 6: 'x',
322
+ 5: 'x',
323
+ 4: 10,
324
+ 3: 9,
325
+ 2: 8,
326
+ 1: 10
327
+ }
328
+ }
329
+ },
330
+ sus2: {
331
+ default: '1',
332
+ variants: {
333
+ 1: {
334
+ 6: 'x',
335
+ 5: 3,
336
+ 4: 5,
337
+ 3: 5,
338
+ 2: 3,
339
+ 1: 3
340
+ },
341
+ 2: {
342
+ 6: 'x',
343
+ 5: 'x',
344
+ 4: 10,
345
+ 3: 12,
346
+ 2: 13,
347
+ 1: 10
348
+ }
349
+ }
350
+ },
351
+ '7sus4': {
352
+ default: '1',
353
+ variants: {
354
+ 1: {
355
+ 6: 'x',
356
+ 5: 3,
357
+ 4: 5,
358
+ 3: 3,
359
+ 2: 6,
360
+ 1: 3
361
+ },
362
+ 2: {
363
+ 6: 8,
364
+ 5: 10,
365
+ 4: 8,
366
+ 3: 10,
367
+ 2: 8,
368
+ 1: 8
369
+ },
370
+ 3: {
371
+ 6: 'x',
372
+ 5: 'x',
373
+ 4: 10,
374
+ 3: 12,
375
+ 2: 11,
376
+ 1: 13
377
+ }
378
+ }
379
+ },
380
+ '7#9': {
381
+ default: '1',
382
+ variants: {
383
+ 1: {
384
+ 6: 'x',
385
+ 5: 3,
386
+ 4: 2,
387
+ 3: 3,
388
+ 2: 4,
389
+ 1: 'x'
390
+ },
391
+ 2: {
392
+ 6: 'x',
393
+ 5: 'x',
394
+ 4: 10,
395
+ 3: 9,
396
+ 2: 11,
397
+ 1: 11
398
+ }
399
+ }
400
+ },
401
+ 9: {
402
+ default: '1',
403
+ variants: {
404
+ 1: {
405
+ 6: 'x',
406
+ 5: 3,
407
+ 4: 2,
408
+ 3: 3,
409
+ 2: 3,
410
+ 1: 'x'
411
+ },
412
+ 2: {
413
+ 6: 'x',
414
+ 5: 3,
415
+ 4: 2,
416
+ 3: 3,
417
+ 2: 3,
418
+ 1: 3
419
+ },
420
+ 3: {
421
+ 6: 'x',
422
+ 5: 'x',
423
+ 4: 10,
424
+ 3: 9,
425
+ 2: 11,
426
+ 1: 10
427
+ }
428
+ }
429
+ }
430
+ };
@@ -0,0 +1,2 @@
1
+ import { ChordDefinition } from '../types';
2
+ export declare const Csharp: ChordDefinition;
@@ -0,0 +1,430 @@
1
+ export const Csharp = {
2
+ major: {
3
+ default: '1',
4
+ variants: {
5
+ 1: {
6
+ 6: 'x',
7
+ 5: 3,
8
+ 4: 3,
9
+ 3: 1,
10
+ 2: 2,
11
+ 1: 1
12
+ },
13
+ 2: {
14
+ 6: 'x',
15
+ 5: 3,
16
+ 4: 6,
17
+ 3: 6,
18
+ 2: 6,
19
+ 1: 4
20
+ },
21
+ 3: {
22
+ 6: 9,
23
+ 5: 11,
24
+ 4: 11,
25
+ 3: 10,
26
+ 2: 9,
27
+ 1: 9
28
+ },
29
+ 4: {
30
+ 6: 'x',
31
+ 5: 11,
32
+ 4: 11,
33
+ 3: 10,
34
+ 2: 9,
35
+ 1: 'x'
36
+ },
37
+ 5: {
38
+ 6: 'x',
39
+ 5: 'x',
40
+ 4: 11,
41
+ 3: 10,
42
+ 2: 9,
43
+ 1: 9
44
+ },
45
+ 6: {
46
+ 6: 9,
47
+ 5: 11,
48
+ 4: 11,
49
+ 3: 10,
50
+ 2: 'x',
51
+ 1: 'x'
52
+ },
53
+ 7: {
54
+ 6: 'x',
55
+ 5: 'x',
56
+ 4: 11,
57
+ 3: 13,
58
+ 2: 14,
59
+ 1: 13
60
+ },
61
+ 8: {
62
+ 6: 'x',
63
+ 5: 4,
64
+ 4: 3,
65
+ 3: 5,
66
+ 2: 'x',
67
+ 1: 'x'
68
+ }
69
+ }
70
+ },
71
+ minor: {
72
+ default: '1',
73
+ variants: {
74
+ 1: {
75
+ 6: 'x',
76
+ 5: 4,
77
+ 4: 6,
78
+ 3: 6,
79
+ 2: 5,
80
+ 1: 4
81
+ },
82
+ 2: {
83
+ 6: 9,
84
+ 5: 11,
85
+ 4: 11,
86
+ 3: 9,
87
+ 2: 9,
88
+ 1: 9
89
+ },
90
+ 3: {
91
+ 6: 'x',
92
+ 5: 'x',
93
+ 4: 11,
94
+ 3: 13,
95
+ 2: 14,
96
+ 1: 12
97
+ },
98
+ 4: {
99
+ 6: 'x',
100
+ 5: 'x',
101
+ 4: 11,
102
+ 3: 9,
103
+ 2: 9,
104
+ 1: 9
105
+ }
106
+ }
107
+ },
108
+ 5: {
109
+ default: '1',
110
+ variants: {
111
+ 1: {
112
+ 6: 'x',
113
+ 5: 3,
114
+ 4: 5,
115
+ 3: 5,
116
+ 2: 'x',
117
+ 1: 'x'
118
+ },
119
+ 2: {
120
+ 6: 'x',
121
+ 5: 3,
122
+ 4: 5,
123
+ 3: 'x',
124
+ 2: 'x',
125
+ 1: 'x'
126
+ },
127
+ 3: {
128
+ 6: 8,
129
+ 5: 10,
130
+ 4: 10,
131
+ 3: 'x',
132
+ 2: 'x',
133
+ 1: 'x'
134
+ },
135
+ 4: {
136
+ 6: 8,
137
+ 5: 10,
138
+ 4: 'x',
139
+ 3: 'x',
140
+ 2: 'x',
141
+ 1: 'x'
142
+ },
143
+ 5: {
144
+ 6: 'x',
145
+ 5: 'x',
146
+ 4: 10,
147
+ 3: 12,
148
+ 2: 13,
149
+ 1: 'x'
150
+ },
151
+ 6: {
152
+ 6: 'x',
153
+ 5: 'x',
154
+ 4: 10,
155
+ 3: 12,
156
+ 2: 'x',
157
+ 1: 'x'
158
+ }
159
+ }
160
+ },
161
+ 7: {
162
+ default: '1',
163
+ variants: {
164
+ 1: {
165
+ 6: 'x',
166
+ 5: 3,
167
+ 4: 2,
168
+ 3: 3,
169
+ 2: 1,
170
+ 1: 'x'
171
+ },
172
+ 2: {
173
+ 6: 'x',
174
+ 5: 3,
175
+ 4: 5,
176
+ 3: 3,
177
+ 2: 5,
178
+ 1: 3
179
+ },
180
+ 3: {
181
+ 6: 8,
182
+ 5: 10,
183
+ 4: 8,
184
+ 3: 9,
185
+ 2: 8,
186
+ 1: 8
187
+ },
188
+ 4: {
189
+ 6: 'x',
190
+ 5: 'x',
191
+ 4: 10,
192
+ 3: 12,
193
+ 2: 11,
194
+ 1: 12
195
+ }
196
+ }
197
+ },
198
+ maj7: {
199
+ default: '1',
200
+ variants: {
201
+ 1: {
202
+ 6: 'x',
203
+ 5: 3,
204
+ 4: 2,
205
+ 3: 0,
206
+ 2: 0,
207
+ 1: 0
208
+ },
209
+ 2: {
210
+ 6: 'x',
211
+ 5: 3,
212
+ 4: 5,
213
+ 3: 4,
214
+ 2: 5,
215
+ 1: 3
216
+ },
217
+ 3: {
218
+ 6: 'x',
219
+ 5: 'x',
220
+ 4: 10,
221
+ 3: 9,
222
+ 2: 8,
223
+ 1: 7
224
+ },
225
+ 4: {
226
+ 6: 8,
227
+ 5: 10,
228
+ 4: 9,
229
+ 3: 9,
230
+ 2: 8,
231
+ 1: 'x'
232
+ },
233
+ 5: {
234
+ 6: 8,
235
+ 5: 'x',
236
+ 4: 9,
237
+ 3: 9,
238
+ 2: 8,
239
+ 1: 'x'
240
+ },
241
+ 8: {
242
+ 6: 'x',
243
+ 5: 'x',
244
+ 4: 10,
245
+ 3: 12,
246
+ 2: 12,
247
+ 1: 12
248
+ }
249
+ }
250
+ },
251
+ m7: {
252
+ default: '1',
253
+ variants: {
254
+ 1: {
255
+ 6: 'x',
256
+ 5: 3,
257
+ 4: 5,
258
+ 3: 3,
259
+ 2: 4,
260
+ 1: 3
261
+ },
262
+ 2: {
263
+ 6: 8,
264
+ 5: 10,
265
+ 4: 8,
266
+ 3: 8,
267
+ 2: 8,
268
+ 1: 8
269
+ },
270
+ 3: {
271
+ 6: 'x',
272
+ 5: 'x',
273
+ 4: 10,
274
+ 3: 12,
275
+ 2: 11,
276
+ 1: 11
277
+ }
278
+ }
279
+ },
280
+ sus4: {
281
+ default: '1',
282
+ variants: {
283
+ 1: {
284
+ 6: 'x',
285
+ 5: 3,
286
+ 4: 5,
287
+ 3: 5,
288
+ 2: 6,
289
+ 1: 3
290
+ },
291
+ 2: {
292
+ 6: 8,
293
+ 5: 10,
294
+ 4: 10,
295
+ 3: 10,
296
+ 2: 8,
297
+ 1: 8
298
+ },
299
+ 3: {
300
+ 6: 'x',
301
+ 5: 'x',
302
+ 4: 10,
303
+ 3: 12,
304
+ 2: 13,
305
+ 1: 13
306
+ }
307
+ }
308
+ },
309
+ add9: {
310
+ default: '1',
311
+ variants: {
312
+ 1: {
313
+ 6: 'x',
314
+ 5: 3,
315
+ 4: 2,
316
+ 3: 0,
317
+ 2: 3,
318
+ 1: 0
319
+ },
320
+ 2: {
321
+ 6: 'x',
322
+ 5: 'x',
323
+ 4: 10,
324
+ 3: 9,
325
+ 2: 8,
326
+ 1: 10
327
+ }
328
+ }
329
+ },
330
+ sus2: {
331
+ default: '1',
332
+ variants: {
333
+ 1: {
334
+ 6: 'x',
335
+ 5: 3,
336
+ 4: 5,
337
+ 3: 5,
338
+ 2: 3,
339
+ 1: 3
340
+ },
341
+ 2: {
342
+ 6: 'x',
343
+ 5: 'x',
344
+ 4: 10,
345
+ 3: 12,
346
+ 2: 13,
347
+ 1: 10
348
+ }
349
+ }
350
+ },
351
+ '7sus4': {
352
+ default: '1',
353
+ variants: {
354
+ 1: {
355
+ 6: 'x',
356
+ 5: 3,
357
+ 4: 5,
358
+ 3: 3,
359
+ 2: 6,
360
+ 1: 3
361
+ },
362
+ 2: {
363
+ 6: 8,
364
+ 5: 10,
365
+ 4: 8,
366
+ 3: 10,
367
+ 2: 8,
368
+ 1: 8
369
+ },
370
+ 3: {
371
+ 6: 'x',
372
+ 5: 'x',
373
+ 4: 10,
374
+ 3: 12,
375
+ 2: 11,
376
+ 1: 13
377
+ }
378
+ }
379
+ },
380
+ '7#9': {
381
+ default: '1',
382
+ variants: {
383
+ 1: {
384
+ 6: 'x',
385
+ 5: 3,
386
+ 4: 2,
387
+ 3: 3,
388
+ 2: 4,
389
+ 1: 'x'
390
+ },
391
+ 2: {
392
+ 6: 'x',
393
+ 5: 'x',
394
+ 4: 10,
395
+ 3: 9,
396
+ 2: 11,
397
+ 1: 11
398
+ }
399
+ }
400
+ },
401
+ 9: {
402
+ default: '1',
403
+ variants: {
404
+ 1: {
405
+ 6: 'x',
406
+ 5: 3,
407
+ 4: 2,
408
+ 3: 3,
409
+ 2: 3,
410
+ 1: 'x'
411
+ },
412
+ 2: {
413
+ 6: 'x',
414
+ 5: 3,
415
+ 4: 2,
416
+ 3: 3,
417
+ 2: 3,
418
+ 1: 3
419
+ },
420
+ 3: {
421
+ 6: 'x',
422
+ 5: 'x',
423
+ 4: 10,
424
+ 3: 9,
425
+ 2: 11,
426
+ 1: 10
427
+ }
428
+ }
429
+ }
430
+ };
@@ -0,0 +1,2 @@
1
+ import { ChordDefinition } from '../types';
2
+ export declare const D: ChordDefinition;
@@ -0,0 +1,41 @@
1
+ export const D = {
2
+ major: {
3
+ default: '1',
4
+ variants: {
5
+ 1: {
6
+ 6: 'x',
7
+ 5: 'x',
8
+ 4: 0,
9
+ 3: 2,
10
+ 2: 3,
11
+ 1: 2
12
+ }
13
+ }
14
+ },
15
+ minor: {
16
+ default: '1',
17
+ variants: {
18
+ 1: {
19
+ 6: 'x',
20
+ 5: 'x',
21
+ 4: 0,
22
+ 3: 2,
23
+ 2: 3,
24
+ 1: 1
25
+ }
26
+ }
27
+ },
28
+ 7: {
29
+ default: '1',
30
+ variants: {
31
+ 1: {
32
+ 6: 'x',
33
+ 5: 'x',
34
+ 4: 0,
35
+ 3: 2,
36
+ 2: 3,
37
+ 1: 1
38
+ }
39
+ }
40
+ }
41
+ };
@@ -1 +1,2 @@
1
- export * from './chords';
1
+ import type { ChordsDictionary } from '../types';
2
+ export declare const chords: ChordsDictionary;
@@ -1 +1,8 @@
1
- export * from './chords';
1
+ import { C } from './C';
2
+ import { Csharp } from './Csharp';
3
+ import { D } from './D';
4
+ export const chords = {
5
+ C,
6
+ 'C#': Csharp,
7
+ D
8
+ };
@@ -1,2 +1,2 @@
1
- import type { ChordQuality, ChordShape, ChordVariantId } from './types';
2
- export declare function getChord(root: string, quality?: ChordQuality, variant?: ChordVariantId): ChordShape | null;
1
+ import type { ChordQuality, ChordShape, VariantId } from './types';
2
+ export declare function getChord(root: string, quality?: ChordQuality, variant?: VariantId): ChordShape | null;
package/dist/getChord.js CHANGED
@@ -1,4 +1,4 @@
1
- import { chords } from './chords/index';
1
+ import { chords } from './chords';
2
2
  export function getChord(root, quality = 'major', variant) {
3
3
  const chord = chords[root];
4
4
  if (chord === null)
@@ -1,2 +1,2 @@
1
- import type { ChordQuality, ChordVariantId } from './types';
2
- export declare function getChordSvg(root: string, quality: ChordQuality, variant?: ChordVariantId): string | null;
1
+ import type { ChordQuality, VariantId } from './types';
2
+ export declare function getChordSvg(root: string, quality: ChordQuality, variant?: VariantId): string | null;
@@ -1,2 +1,2 @@
1
- import { ChordQuality, ChordVariantId } from './types';
2
- export declare function getVariants(root: string, quality: ChordQuality): ChordVariantId[];
1
+ import { ChordQuality, VariantId } from './types';
2
+ export declare function getVariants(root: string, quality: ChordQuality): VariantId[];
package/dist/index.d.ts CHANGED
@@ -2,5 +2,5 @@ export { getChord } from './getChord';
2
2
  export { getChordSvg } from './getChordSvg';
3
3
  export { getVariants } from './getVariants';
4
4
  export { getQuality } from './getQuality';
5
- export { chords } from './chords/index';
5
+ export { chords } from './chords';
6
6
  export * from './types';
package/dist/index.js CHANGED
@@ -2,5 +2,5 @@ export { getChord } from './getChord';
2
2
  export { getChordSvg } from './getChordSvg';
3
3
  export { getVariants } from './getVariants';
4
4
  export { getQuality } from './getQuality';
5
- export { chords } from './chords/index';
5
+ export { chords } from './chords';
6
6
  export * from './types';
@@ -1,7 +1,19 @@
1
- import { getStringX, getFretY } from './utils';
1
+ import { FRET_SPACING, START_Y } from './constants';
2
+ import { getStringX, getFretY, getBaseFret } from './utils';
2
3
  const STRING_ORDER = ['6', '5', '4', '3', '2', '1'];
3
4
  export function renderMarkers(chord) {
4
5
  let svg = '';
6
+ const baseFret = getBaseFret(chord);
7
+ if (baseFret > 1) {
8
+ svg += `
9
+ <text
10
+ x="5"
11
+ y="${START_Y + FRET_SPACING}"
12
+ font-size="12"
13
+ fill="currentColor"
14
+ >${baseFret}</text>
15
+ `;
16
+ }
5
17
  for (const string of STRING_ORDER) {
6
18
  const fret = chord[string];
7
19
  const x = getStringX(Number(string));
@@ -28,7 +40,8 @@ export function renderMarkers(chord) {
28
40
  `;
29
41
  continue;
30
42
  }
31
- const y = getFretY(fret);
43
+ const visualFret = fret - baseFret + 1;
44
+ const y = getFretY(visualFret);
32
45
  svg += `
33
46
  <circle
34
47
  cx="${x}"
@@ -1,2 +1,4 @@
1
+ import { ChordShape } from '../types';
1
2
  export declare function getStringX(stringNumber: number): number;
2
3
  export declare function getFretY(fret: number): number;
4
+ export declare function getBaseFret(chord: ChordShape): number;
package/dist/svg/utils.js CHANGED
@@ -5,3 +5,9 @@ export function getStringX(stringNumber) {
5
5
  export function getFretY(fret) {
6
6
  return START_Y + fret * FRET_SPACING - FRET_SPACING / 2;
7
7
  }
8
+ export function getBaseFret(chord) {
9
+ const frets = Object.values(chord).filter((f) => typeof f === 'number' && f > 0);
10
+ if (frets.length === 0)
11
+ return 1;
12
+ return Math.min(...frets);
13
+ }
package/dist/types.d.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  export type StringNumber = '1' | '2' | '3' | '4' | '5' | '6';
2
2
  export type Fret = number | 'x';
3
3
  export type ChordShape = Record<StringNumber, Fret>;
4
- export type ChordQuality = 'major' | 'minor' | '5' | '7' | 'maj7' | 'm7' | 'sus4' | 'add9' | 'sus2' | '7sus4' | '7#9' | '9' | 'aug' | 'dim';
5
- export type ChordVariantId = string;
6
- export type ChordVariant = Record<ChordVariantId, ChordShape>;
4
+ export type VariantId = string;
7
5
  export interface ChordQualityDefinition {
8
- default: ChordVariantId;
9
- variants: ChordVariant;
6
+ default: VariantId;
7
+ variants: Record<VariantId, ChordShape>;
10
8
  }
11
- export type ChordsDictionary = Record<string, Partial<Record<ChordQuality, ChordQualityDefinition>>>;
9
+ export type ChordQuality = 'major' | 'minor' | '5' | '7' | 'maj7' | 'm7' | 'sus4' | 'add9' | 'sus2' | '7sus4' | '7#9' | '9' | 'aug' | 'dim';
10
+ export type ChordDefinition = Partial<Record<ChordQuality, ChordQualityDefinition>>;
11
+ export type ChordsDictionary = Record<string, ChordDefinition>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "instruments-chords",
3
- "version": "0.0.11",
3
+ "version": "0.0.13",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "description": "Guitar chords database for developers",
@@ -1,2 +0,0 @@
1
- import type { ChordsDictionary } from '../types';
2
- export declare const chords: ChordsDictionary;
@@ -1,209 +0,0 @@
1
- export const chords = {
2
- C: {
3
- major: {
4
- default: '1',
5
- variants: {
6
- 1: {
7
- 6: 'x',
8
- 5: 3,
9
- 4: 2,
10
- 3: 0,
11
- 2: 1,
12
- 1: 0
13
- },
14
- 2: {
15
- 6: 'x',
16
- 5: 3,
17
- 4: 2,
18
- 3: 5,
19
- 2: 'x',
20
- 1: 'x'
21
- }
22
- }
23
- },
24
- minor: {
25
- default: '1',
26
- variants: {
27
- 1: {
28
- 6: 'x',
29
- 5: 3,
30
- 4: 5,
31
- 3: 5,
32
- 2: 4,
33
- 1: 3
34
- }
35
- }
36
- },
37
- 5: {
38
- default: '1',
39
- variants: {
40
- 1: {
41
- 6: 'x',
42
- 5: 3,
43
- 4: 5,
44
- 3: 5,
45
- 2: 'x',
46
- 1: 'x'
47
- }
48
- }
49
- },
50
- 7: {
51
- default: '1',
52
- variants: {
53
- 1: {
54
- 6: 'x',
55
- 5: 3,
56
- 4: 2,
57
- 3: 3,
58
- 2: 1,
59
- 1: 'x'
60
- }
61
- }
62
- },
63
- maj7: {
64
- default: '1',
65
- variants: {
66
- 1: {
67
- 6: 'x',
68
- 5: 3,
69
- 4: 2,
70
- 3: 0,
71
- 2: 0,
72
- 1: 0
73
- }
74
- }
75
- },
76
- m7: {
77
- default: '1',
78
- variants: {
79
- 1: {
80
- 6: 'x',
81
- 5: 3,
82
- 4: 5,
83
- 3: 3,
84
- 2: 4,
85
- 1: 3
86
- }
87
- }
88
- },
89
- sus4: {
90
- default: '1',
91
- variants: {
92
- 1: {
93
- 6: 'x',
94
- 5: 3,
95
- 4: 5,
96
- 3: 5,
97
- 2: 6,
98
- 1: 3
99
- }
100
- }
101
- },
102
- add9: {
103
- default: '1',
104
- variants: {
105
- 1: {
106
- 6: 'x',
107
- 5: 3,
108
- 4: 2,
109
- 3: 0,
110
- 2: 3,
111
- 1: 0
112
- }
113
- }
114
- },
115
- sus2: {
116
- default: '1',
117
- variants: {
118
- 1: {
119
- 6: 'x',
120
- 5: 3,
121
- 4: 5,
122
- 3: 5,
123
- 2: 3,
124
- 1: 3
125
- }
126
- }
127
- },
128
- '7sus4': {
129
- default: '1',
130
- variants: {
131
- 1: {
132
- 6: 'x',
133
- 5: 3,
134
- 4: 5,
135
- 3: 3,
136
- 2: 6,
137
- 1: 3
138
- }
139
- }
140
- },
141
- '7#9': {
142
- default: '1',
143
- variants: {
144
- 1: {
145
- 6: 'x',
146
- 5: 3,
147
- 4: 2,
148
- 3: 3,
149
- 2: 4,
150
- 1: 'x'
151
- }
152
- }
153
- },
154
- 9: {
155
- default: '1',
156
- variants: {
157
- 1: {
158
- 6: 'x',
159
- 5: 3,
160
- 4: 2,
161
- 3: 3,
162
- 2: 3,
163
- 1: 'x'
164
- }
165
- }
166
- }
167
- },
168
- D: {
169
- major: {
170
- default: '1',
171
- variants: {
172
- 1: {
173
- 6: 'x',
174
- 5: 'x',
175
- 4: 0,
176
- 3: 2,
177
- 2: 3,
178
- 1: 2
179
- }
180
- }
181
- },
182
- minor: {
183
- default: '1',
184
- variants: {
185
- 1: {
186
- 6: 'x',
187
- 5: 'x',
188
- 4: 0,
189
- 3: 2,
190
- 2: 3,
191
- 1: 1
192
- }
193
- }
194
- },
195
- 7: {
196
- default: '1',
197
- variants: {
198
- 1: {
199
- 6: 'x',
200
- 5: 'x',
201
- 4: 0,
202
- 3: 2,
203
- 2: 3,
204
- 1: 1
205
- }
206
- }
207
- }
208
- }
209
- };