@pepperhorn/chordl-core 0.6.0 → 0.6.2
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.
- package/dist/audio/midi-export.d.ts +7 -0
- package/dist/audio/midi-export.js +6 -4
- package/dist/audio/midi-export.js.map +1 -1
- package/dist/parser/natural-language.js +36 -2
- package/dist/parser/natural-language.js.map +1 -1
- package/dist/resolver/chord-resolver.js +76 -58
- package/dist/resolver/chord-resolver.js.map +1 -1
- package/dist/types.d.ts +4 -0
- package/package.json +1 -1
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
interface MidiChordOptions {
|
|
2
2
|
notes: string[];
|
|
3
|
+
/**
|
|
4
|
+
* Exact MIDI note numbers. When given (and no `lhNotes`), these are written
|
|
5
|
+
* as-is and `notes`/`octave` are ignored — for callers that already know the
|
|
6
|
+
* sounding pitches (a fretted shape's strings) and must not have them
|
|
7
|
+
* re-derived from note names.
|
|
8
|
+
*/
|
|
9
|
+
midiNotes?: number[];
|
|
3
10
|
/** Left-hand notes (bass clef). Remaining notes go to right hand (treble clef). */
|
|
4
11
|
lhNotes?: string[];
|
|
5
12
|
octave?: number;
|
|
@@ -72,7 +72,7 @@ function buildTrackData(midiNotes, channel, velocity, durationTicks, trackName,
|
|
|
72
72
|
* (bass clef, octave 3) and RH on channel 1 (treble clef, octave 4).
|
|
73
73
|
*/
|
|
74
74
|
export function generateMidiFile(options) {
|
|
75
|
-
const { notes, lhNotes, octave = 4, lhOctave: lhOctaveOpt, durationTicks = 960, velocity = 90, tempo = 120, arpeggiated = false, arpDelayTicks = 120, } = options;
|
|
75
|
+
const { notes, midiNotes: exactMidi, lhNotes, octave = 4, lhOctave: lhOctaveOpt, durationTicks = 960, velocity = 90, tempo = 120, arpeggiated = false, arpDelayTicks = 120, } = options;
|
|
76
76
|
const ticksPerQuarter = 480;
|
|
77
77
|
const microsecondsPerBeat = Math.round(60000000 / tempo);
|
|
78
78
|
if (lhNotes && lhNotes.length > 0) {
|
|
@@ -126,9 +126,11 @@ export function generateMidiFile(options) {
|
|
|
126
126
|
return file;
|
|
127
127
|
}
|
|
128
128
|
// Single track (Format 0) — original behavior
|
|
129
|
-
const midiNotes =
|
|
130
|
-
.
|
|
131
|
-
|
|
129
|
+
const midiNotes = exactMidi
|
|
130
|
+
? exactMidi.filter((m) => Number.isInteger(m) && m >= 0 && m <= 127)
|
|
131
|
+
: notes
|
|
132
|
+
.map((n) => noteToMidi(n, octave))
|
|
133
|
+
.filter((m) => m != null);
|
|
132
134
|
if (midiNotes.length === 0)
|
|
133
135
|
return new Uint8Array(0);
|
|
134
136
|
const trackData = buildTrackData(midiNotes, 0, velocity, durationTicks, "Chord", { microsecondsPerBeat }, arpeggiated, arpDelayTicks);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"midi-export.js","sourceRoot":"","sources":["../../src/audio/midi-export.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAE7B;;;GAGG;AAEH,SAAS,QAAQ,CAAC,KAAa;IAC7B,IAAI,KAAK,GAAG,IAAI;QAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IAC5B,KAAK,KAAK,CAAC,CAAC;IACZ,OAAO,KAAK,GAAG,CAAC,EAAE,CAAC;QACjB,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QACrC,KAAK,KAAK,CAAC,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO;QACL,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI;QACpB,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI;QACpB,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI;QACnB,KAAK,GAAG,IAAI;KACb,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,gBAAwB,CAAC;IACzD,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,aAAa,EAAE,CAAC,CAAC;AAC9C,CAAC;
|
|
1
|
+
{"version":3,"file":"midi-export.js","sourceRoot":"","sources":["../../src/audio/midi-export.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,6 +40,20 @@ function stripArticles(text, input) {
|
|
|
40
40
|
return "";
|
|
41
41
|
});
|
|
42
42
|
}
|
|
43
|
+
// Multi-word bass instruments must be claimed before the bass-note regexes:
|
|
44
|
+
// otherwise the final "g bass" in "5-string bass" looks like a bass note.
|
|
45
|
+
const INSTRUMENT_RE = /\b([45][- ]string\s+bass|bass\s+guitar|bass[45]|ukulele|uke|guitar|gtr|violin|fiddle|piano|keys|keyboard)\b/gi;
|
|
46
|
+
const LEVEL_RE = /\b(beginner|easy|basic|emerging|intermediate|established|advanced)\b/gi;
|
|
47
|
+
const INSTRUMENT_WORDS = {
|
|
48
|
+
ukulele: "ukulele", uke: "ukulele", guitar: "guitar", gtr: "guitar",
|
|
49
|
+
bass4: "bass4", bass5: "bass5", "bass guitar": "bass4", violin: "violin", fiddle: "violin",
|
|
50
|
+
piano: "piano", keys: "piano", keyboard: "piano",
|
|
51
|
+
};
|
|
52
|
+
const LEVEL_WORDS = {
|
|
53
|
+
beginner: "beginner", easy: "beginner", basic: "beginner",
|
|
54
|
+
emerging: "emerging", intermediate: "emerging",
|
|
55
|
+
established: "established", advanced: "established",
|
|
56
|
+
};
|
|
43
57
|
const FORMAT_RE = /\b(compact|exact|full)\b/i;
|
|
44
58
|
const FORMAT_FULL_RE = /\bfull\s+(?:layout|height|size|keys?)\b/i;
|
|
45
59
|
// "size 80" / "size 80%" / "size 0.8" / "size xl" / "keys xl"
|
|
@@ -305,7 +319,7 @@ const QUALITY_WORDS = {
|
|
|
305
319
|
// let '/' bleed into the flat-symbol 'b', so only B/Bb bass notes round-tripped.
|
|
306
320
|
// `\/[0-9]+` stays in the quality group so "6/9"-style suffixes (slash
|
|
307
321
|
// followed by digits, not a bass letter) aren't mistaken for a slash bass.
|
|
308
|
-
const CHORD_RE = /([A-Ga-g][#b]?)\s*(maj|min|m|aug|dim|sus|add|dom|M|°|ø|\/[0-9]+|[0-9#b]
|
|
322
|
+
const CHORD_RE = /([A-Ga-g][#b]?)\s*(maj|min|m|aug|dim|sus|add|dom|M|°|ø|\/[0-9]+|[0-9#b]+|\((?:[#b](?:5|9|11|13)|add(?:9|11|13|b9|#9|b13|#11))(?:,(?:[#b](?:5|9|11|13)|add(?:9|11|13|b9|#9|b13|#11)))*\))*(\/[A-Ga-g][#b]?)?/i;
|
|
309
323
|
function capitalizeNote(note) {
|
|
310
324
|
return note.charAt(0).toUpperCase() + note.slice(1);
|
|
311
325
|
}
|
|
@@ -318,6 +332,26 @@ function capitalizeNote(note) {
|
|
|
318
332
|
*/
|
|
319
333
|
export function parseChordDescription(input) {
|
|
320
334
|
const result = { chordName: "" };
|
|
335
|
+
// Protect existing bass-note/clef/octave phrases and key-size requests. Mask
|
|
336
|
+
// explicit bass instruments first so their suffix cannot claim a bass note.
|
|
337
|
+
const phraseInput = input.replace(/\b(?:[45][- ]string\s+bass|bass\s+guitar|bass[45])\b/gi, (word) => " ".repeat(word.length));
|
|
338
|
+
const protectedRanges = [BASS_DEGREE_RE, BASS_NOTE_RE, OVER_BASS_NOTE_RE,
|
|
339
|
+
BASS_OCTAVE_RE, /\bbass\s+clef\b/i, SIZE_NAME_RE, SIZE_NUM_RE, PADDING_RE, FORMAT_FULL_RE,
|
|
340
|
+
NOTES_GROUP_RE, NOTES_GROUP_PREFIX_RE, HAND_PREFIX_BARE_RE, NOTES_BARE_HAND_RE]
|
|
341
|
+
.flatMap((re) => [...phraseInput.matchAll(new RegExp(re.source, "gi"))]
|
|
342
|
+
.map((m) => [m.index, m.index + m[0].length]));
|
|
343
|
+
input = input.replace(INSTRUMENT_RE, (word, _capture, offset) => {
|
|
344
|
+
if (protectedRanges.some(([start, end]) => offset >= start && offset < end))
|
|
345
|
+
return word;
|
|
346
|
+
const lower = word.toLowerCase();
|
|
347
|
+
result.instrument ?? (result.instrument = /^[45]/.test(lower)
|
|
348
|
+
? (lower[0] === "5" ? "bass5" : "bass4") : INSTRUMENT_WORDS[lower]);
|
|
349
|
+
return " ".repeat(word.length);
|
|
350
|
+
});
|
|
351
|
+
input = input.replace(LEVEL_RE, (word) => {
|
|
352
|
+
result.level ?? (result.level = LEVEL_WORDS[word.toLowerCase()]);
|
|
353
|
+
return " ".repeat(word.length);
|
|
354
|
+
});
|
|
321
355
|
// Extract format ("compact", "exact", "full", "full layout", "full height")
|
|
322
356
|
const formatFullMatch = input.match(FORMAT_FULL_RE);
|
|
323
357
|
const formatMatch = input.match(FORMAT_RE);
|
|
@@ -795,7 +829,7 @@ export function parseChordDescription(input) {
|
|
|
795
829
|
.replace(/\bcustom\b/gi, "")
|
|
796
830
|
.replace(/\band\b/gi, "")
|
|
797
831
|
.replace(FILLER_WORDS, "")
|
|
798
|
-
.replace(
|
|
832
|
+
.replace(/\([^)]*\)|,/g, (token) => token.startsWith("(") ? token : "")
|
|
799
833
|
.replace(/\blayout\b/gi, "")
|
|
800
834
|
.replace(/\bfull\b/gi, "")
|
|
801
835
|
.replace(/\bheight\b/gi, "")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"natural-language.js","sourceRoot":"","sources":["../../src/parser/natural-language.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"natural-language.js","sourceRoot":"","sources":["../../src/parser/natural-language.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Chord, Note } from "tonal";
|
|
1
|
+
import { Chord, Note, Interval } from "tonal";
|
|
2
2
|
/**
|
|
3
3
|
* Simplify a note name via Tonal without forcing sharp spelling.
|
|
4
4
|
* Tonal's simplify already respects musical context (e.g. Bb stays Bb).
|
|
@@ -26,59 +26,58 @@ const ALTERATION_TO_INTERVAL = {
|
|
|
26
26
|
"add#11": "4A",
|
|
27
27
|
"addb13": "6m",
|
|
28
28
|
};
|
|
29
|
-
//
|
|
30
|
-
//
|
|
31
|
-
function
|
|
32
|
-
// Extract root note
|
|
29
|
+
// Strip the whole alteration tail before consulting Tonal: e.g. 7b9b5 is
|
|
30
|
+
// otherwise interpreted as 7b9#11, retaining the natural fifth.
|
|
31
|
+
function splitAlterations(chordName) {
|
|
33
32
|
const rootMatch = chordName.match(/^([A-G][#b]?)/);
|
|
34
33
|
if (!rootMatch)
|
|
35
34
|
return null;
|
|
36
35
|
const root = rootMatch[1];
|
|
37
36
|
let suffix = chordName.slice(root.length);
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
return {
|
|
74
|
-
notes,
|
|
75
|
-
root: simplifyNote(root),
|
|
76
|
-
type: chord.type + " (extended)",
|
|
77
|
-
intervals,
|
|
78
|
-
};
|
|
37
|
+
const tokens = [];
|
|
38
|
+
let match;
|
|
39
|
+
while ((match = suffix.match(ALTERATION_RE))) {
|
|
40
|
+
tokens.unshift(match[1]);
|
|
41
|
+
suffix = suffix.slice(0, -match[1].length);
|
|
42
|
+
}
|
|
43
|
+
return { root, suffix, tokens };
|
|
44
|
+
}
|
|
45
|
+
function resolveWithFallback(chordName) {
|
|
46
|
+
const parts = splitAlterations(chordName);
|
|
47
|
+
if (!parts || !parts.tokens.length)
|
|
48
|
+
return null;
|
|
49
|
+
const { root, suffix, tokens } = parts;
|
|
50
|
+
const chord = Chord.get(root + suffix);
|
|
51
|
+
if (chord.empty)
|
|
52
|
+
return null;
|
|
53
|
+
const notes = chord.notes.map(simplifyNote);
|
|
54
|
+
const intervals = [...chord.intervals];
|
|
55
|
+
for (const token of tokens) {
|
|
56
|
+
const ivl = ALTERATION_TO_INTERVAL[token];
|
|
57
|
+
const note = simplifyNote(Note.transpose(root, ivl));
|
|
58
|
+
// Alterations replace that degree; additions keep existing chord tones.
|
|
59
|
+
// Match interval degrees, never chroma: b5 and #11 share a sound but
|
|
60
|
+
// describe different chord tones.
|
|
61
|
+
const index = token.startsWith("add") ? -1 : intervals.findIndex((existing) => Interval.get(existing).simple === Interval.get(ivl).simple);
|
|
62
|
+
if (index >= 0) {
|
|
63
|
+
notes[index] = note;
|
|
64
|
+
intervals[index] = ivl;
|
|
65
|
+
}
|
|
66
|
+
else if (!notes.includes(note)) {
|
|
67
|
+
notes.push(note);
|
|
68
|
+
intervals.push(ivl);
|
|
79
69
|
}
|
|
80
70
|
}
|
|
81
|
-
return
|
|
71
|
+
return {
|
|
72
|
+
notes, root: simplifyNote(root),
|
|
73
|
+
// A quality such as m7b5 or 7#11 owns its first alteration too.
|
|
74
|
+
type: (() => {
|
|
75
|
+
const quality = Chord.get(root + suffix + tokens[0]);
|
|
76
|
+
const base = quality.empty ? chord : quality;
|
|
77
|
+
return (base.type || base.aliases?.[0] || suffix) + " (extended)";
|
|
78
|
+
})(),
|
|
79
|
+
intervals,
|
|
80
|
+
};
|
|
82
81
|
}
|
|
83
82
|
// Normalize chord symbols that Tonal doesn't recognize into equivalents
|
|
84
83
|
function normalizeChordName(name) {
|
|
@@ -88,6 +87,16 @@ function normalizeChordName(name) {
|
|
|
88
87
|
return name;
|
|
89
88
|
const root = rootMatch[1];
|
|
90
89
|
let suffix = name.slice(root.length);
|
|
90
|
+
// Tonal's major/minor thirteenths omit the catalogue's natural eleventh.
|
|
91
|
+
// Do not turn these previously unsupported bracketed spellings into a
|
|
92
|
+
// silently incomplete chord. #11 variants explicitly supply their eleventh.
|
|
93
|
+
if (/^(?:maj13\(#5\)|m13\([b#]5\))$/.test(suffix)) {
|
|
94
|
+
throw new Error(`Unknown chord: "${name}"`);
|
|
95
|
+
}
|
|
96
|
+
// Catalogue extensions such as m7b5(b9) and 7(b9,#5) use brackets.
|
|
97
|
+
// Unwrap only alteration lists; other parentheses retain their meaning.
|
|
98
|
+
suffix = suffix.replace(/\(((?:[#b](?:5|9|11|13)|add(?:9|11|13|b9|#9|b13|#11))(?:,(?:[#b](?:5|9|11|13)|add(?:9|11|13|b9|#9|b13|#11)))*)\)/g, (group, alterations, offset) => offset === 0 && /^[#b]/.test(alterations)
|
|
99
|
+
? group : alterations.replace(/,/g, ""));
|
|
91
100
|
// m7sus is special — handled by buildSpecialChord, don't normalize it away
|
|
92
101
|
// Cmaug → Cm#5 (minor augmented)
|
|
93
102
|
suffix = suffix.replace(/^maug$/i, "m#5");
|
|
@@ -150,7 +159,10 @@ function buildSpecialChord(name) {
|
|
|
150
159
|
return null;
|
|
151
160
|
}
|
|
152
161
|
export function resolveChord(chordName, inversion) {
|
|
153
|
-
|
|
162
|
+
// Only a terminal note is a slash bass; m6/9 remains a quality.
|
|
163
|
+
const slash = chordName.match(/\/([A-G][#b]?)$/);
|
|
164
|
+
const upperName = normalizeChordName(slash ? chordName.slice(0, slash.index) : chordName);
|
|
165
|
+
chordName = upperName + (slash ? slash[0] : "");
|
|
154
166
|
const chord = Chord.get(chordName);
|
|
155
167
|
let notes;
|
|
156
168
|
let root;
|
|
@@ -158,13 +170,27 @@ export function resolveChord(chordName, inversion) {
|
|
|
158
170
|
let intervals;
|
|
159
171
|
// Try special chord builders first (omit3, m6/9, etc.)
|
|
160
172
|
const special = buildSpecialChord(chordName);
|
|
173
|
+
const alterations = splitAlterations(upperName)?.tokens ?? [];
|
|
174
|
+
const alteredFifth = alterations.length > 1 && alterations.some((t) => t === "b5" || t === "#5");
|
|
175
|
+
const fallback = chord.empty || alteredFifth ? resolveWithFallback(upperName) : null;
|
|
161
176
|
if (special) {
|
|
162
177
|
notes = special.notes;
|
|
163
178
|
root = special.root;
|
|
164
179
|
type = special.type;
|
|
165
180
|
intervals = special.intervals;
|
|
166
181
|
}
|
|
167
|
-
else if (
|
|
182
|
+
else if (fallback) {
|
|
183
|
+
({ notes, root, type, intervals } = fallback);
|
|
184
|
+
if (slash) {
|
|
185
|
+
const bass = simplifyNote(slash[1]);
|
|
186
|
+
const bassIndex = notes.findIndex((note) => Note.chroma(note) === Note.chroma(bass));
|
|
187
|
+
// Chord tones rotate into the bass; an external pedal is added below
|
|
188
|
+
// the upper chord. Intervals continue to describe the upper quality.
|
|
189
|
+
notes = bassIndex < 0 ? [bass, ...notes]
|
|
190
|
+
: [bass, ...notes.slice(bassIndex + 1), ...notes.slice(0, bassIndex)];
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
else if (!chord.empty && !alteredFifth) {
|
|
168
194
|
notes = chord.notes.map(simplifyNote);
|
|
169
195
|
root = simplifyNote(chord.tonic ?? notes[0]);
|
|
170
196
|
// tonal names most of its chord types but not all: `Cadd9`, `CM7b5` and
|
|
@@ -178,15 +204,7 @@ export function resolveChord(chordName, inversion) {
|
|
|
178
204
|
intervals = chord.intervals;
|
|
179
205
|
}
|
|
180
206
|
else {
|
|
181
|
-
|
|
182
|
-
const fallback = resolveWithFallback(chordName);
|
|
183
|
-
if (!fallback) {
|
|
184
|
-
throw new Error(`Unknown chord: "${chordName}"`);
|
|
185
|
-
}
|
|
186
|
-
notes = fallback.notes;
|
|
187
|
-
root = fallback.root;
|
|
188
|
-
type = fallback.type;
|
|
189
|
-
intervals = fallback.intervals;
|
|
207
|
+
throw new Error(`Unknown chord: "${chordName}"`);
|
|
190
208
|
}
|
|
191
209
|
// Apply inversion: rotate notes array
|
|
192
210
|
if (inversion && inversion > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chord-resolver.js","sourceRoot":"","sources":["../../src/resolver/chord-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"chord-resolver.js","sourceRoot":"","sources":["../../src/resolver/chord-resolver.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -12,6 +12,10 @@ export interface ColorTheme {
|
|
|
12
12
|
blackKey: (note: string, highlighted: boolean) => string;
|
|
13
13
|
}
|
|
14
14
|
export interface ParsedChordRequest {
|
|
15
|
+
/** Requested frame instrument or piano display; core has no guitar dependency. */
|
|
16
|
+
instrument?: "guitar" | "ukulele" | "guitar-top3" | "bass4" | "bass5" | "violin" | "piano";
|
|
17
|
+
/** Requested experience level. */
|
|
18
|
+
level?: "beginner" | "emerging" | "established";
|
|
15
19
|
chordName: string;
|
|
16
20
|
inversion?: number;
|
|
17
21
|
/** When true, show all inversions side by side (root, 1st, 2nd, etc.) */
|