abcjs 6.1.9 → 6.2.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.
- package/RELEASE.md +42 -0
- package/dist/abcjs-basic-min.js +2 -2
- package/dist/abcjs-basic.js +4318 -4411
- package/dist/abcjs-basic.js.map +1 -1
- package/dist/abcjs-plugin-min.js +2 -2
- package/index.js +1 -1
- package/package.json +1 -1
- package/plugin.js +1 -1
- package/src/api/abc_timing_callbacks.js +7 -3
- package/src/api/abc_tunebook_svg.js +1 -2
- package/src/data/abc_tune.js +2 -2
- package/src/parse/abc_common.js +0 -47
- package/src/parse/abc_parse.js +16 -16
- package/src/parse/abc_parse_book.js +3 -3
- package/src/parse/abc_parse_directive.js +26 -7
- package/src/parse/abc_parse_header.js +11 -9
- package/src/parse/abc_parse_key_voice.js +17 -17
- package/src/parse/abc_parse_music.js +88 -105
- package/src/parse/abc_tokenizer.js +60 -60
- package/src/parse/tune-builder.js +19 -14
- package/src/synth/abc_midi_flattener.js +25 -9
- package/src/synth/create-synth.js +41 -0
- package/src/synth/note-to-midi.js +50 -0
- package/src/tablatures/instruments/guitar/tab-guitar.js +0 -2
- package/src/tablatures/instruments/string-patterns.js +46 -28
- package/src/tablatures/instruments/tab-note.js +26 -103
- package/src/tablatures/instruments/violin/tab-violin.js +0 -2
- package/src/tablatures/tab-absolute-elements.js +9 -31
- package/src/tablatures/tab-renderer.js +2 -2
- package/src/test/abc_parser_lint.js +7 -4
- package/src/write/README.md +31 -0
- package/src/write/creation/abstract-engraver.js +1036 -0
- package/src/write/creation/add-chord.js +102 -0
- package/src/write/{add-text-if.js → creation/add-text-if.js} +6 -6
- package/src/write/{calcHeight.js → creation/calc-height.js} +2 -2
- package/src/write/creation/create-clef.js +72 -0
- package/src/write/creation/create-key-signature.js +31 -0
- package/src/write/creation/create-note-head.js +107 -0
- package/src/write/creation/create-time-signature.js +55 -0
- package/src/write/creation/decoration.js +357 -0
- package/src/write/{abc_absolute_element.js → creation/elements/absolute-element.js} +14 -15
- package/src/write/creation/elements/beam-element.js +113 -0
- package/src/write/{bottom-text.js → creation/elements/bottom-text.js} +14 -15
- package/src/write/{abc_brace_element.js → creation/elements/brace-element.js} +5 -5
- package/src/write/creation/elements/free-text.js +41 -0
- package/src/write/{abc_relative_element.js → creation/elements/relative-element.js} +7 -7
- package/src/write/{separator.js → creation/elements/separator.js} +2 -2
- package/src/write/{abc_staff_group_element.js → creation/elements/staff-group-element.js} +4 -4
- package/src/write/{subtitle.js → creation/elements/subtitle.js} +3 -3
- package/src/write/creation/elements/tempo-element.js +63 -0
- package/src/write/{abc_tie_element.js → creation/elements/tie-element.js} +15 -11
- package/src/write/{top-text.js → creation/elements/top-text.js} +12 -12
- package/src/write/creation/elements/triplet-element.js +28 -0
- package/src/write/{abc_voice_element.js → creation/elements/voice-element.js} +3 -3
- package/src/write/creation/glyphs.js +226 -0
- package/src/write/creation/translate-chord.js +37 -0
- package/src/write/draw/absolute.js +5 -5
- package/src/write/draw/beam.js +8 -8
- package/src/write/draw/brace.js +33 -33
- package/src/write/draw/crescendo.js +4 -4
- package/src/write/draw/debug-box.js +1 -1
- package/src/write/draw/draw.js +7 -7
- package/src/write/draw/dynamics.js +2 -2
- package/src/write/draw/ending.js +6 -6
- package/src/write/draw/glissando.js +17 -17
- package/src/write/draw/group-elements.js +51 -51
- package/src/write/draw/horizontal-line.js +9 -9
- package/src/write/draw/non-music.js +1 -1
- package/src/write/draw/print-line.js +15 -16
- package/src/write/draw/print-stem.js +5 -5
- package/src/write/draw/print-symbol.js +12 -12
- package/src/write/draw/print-vertical-line.js +8 -8
- package/src/write/draw/relative.js +17 -16
- package/src/write/draw/selectables.js +5 -5
- package/src/write/draw/separator.js +4 -4
- package/src/write/draw/set-paper-size.js +2 -2
- package/src/write/draw/sprintf.js +31 -31
- package/src/write/draw/staff-group.js +36 -30
- package/src/write/draw/staff-line.js +2 -2
- package/src/write/draw/staff.js +4 -4
- package/src/write/draw/tab-line.js +26 -26
- package/src/write/draw/tempo.js +30 -30
- package/src/write/draw/text.js +5 -5
- package/src/write/draw/tie.js +18 -18
- package/src/write/draw/triplet.js +6 -6
- package/src/write/draw/voice.js +16 -17
- package/src/write/{abc_engraver_controller.js → engraver-controller.js} +58 -51
- package/src/write/{classes.js → helpers/classes.js} +6 -6
- package/src/write/{get-font-and-attr.js → helpers/get-font-and-attr.js} +9 -7
- package/src/write/{get-text-size.js → helpers/get-text-size.js} +5 -5
- package/src/write/{set-class.js → helpers/set-class.js} +1 -1
- package/src/write/{abc_spacing.js → helpers/spacing.js} +1 -1
- package/src/write/{highlight.js → interactive/highlight.js} +1 -1
- package/src/write/{selection.js → interactive/selection.js} +27 -27
- package/src/write/{unhighlight.js → interactive/unhighlight.js} +1 -1
- package/src/write/layout/beam.js +13 -13
- package/src/write/layout/get-left-edge-of-staff.js +4 -4
- package/src/write/layout/layout.js +74 -74
- package/src/write/layout/{setUpperAndLowerElements.js → set-upper-and-lower-elements.js} +8 -8
- package/src/write/layout/{staffGroup.js → staff-group.js} +32 -32
- package/src/write/layout/triplet.js +4 -4
- package/src/write/layout/{VoiceElements.js → voice-elements.js} +23 -23
- package/src/write/layout/voice.js +6 -6
- package/src/write/{abc_renderer.js → renderer.js} +35 -32
- package/src/write/svg.js +35 -35
- package/test.js +1 -1
- package/types/index.d.ts +36 -7
- package/version.js +1 -1
- package/src/tablatures/instruments/guitar/guitar-fonts.js +0 -19
- package/src/tablatures/instruments/violin/violin-fonts.js +0 -19
- package/src/tablatures/transposer.js +0 -110
- package/src/write/abc_abstract_engraver.js +0 -1026
- package/src/write/abc_beam_element.js +0 -113
- package/src/write/abc_create_clef.js +0 -72
- package/src/write/abc_create_key_signature.js +0 -33
- package/src/write/abc_create_note_head.js +0 -107
- package/src/write/abc_create_time_signature.js +0 -55
- package/src/write/abc_decoration.js +0 -357
- package/src/write/abc_glyphs.js +0 -224
- package/src/write/abc_tempo_element.js +0 -63
- package/src/write/abc_triplet_element.js +0 -28
- package/src/write/add-chord.js +0 -103
- package/src/write/format-jazz-chord.js +0 -15
- package/src/write/free-text.js +0 -41
- /package/src/write/{abc_crescendo_element.js → creation/elements/crescendo-element.js} +0 -0
- /package/src/write/{abc_dynamic_decoration.js → creation/elements/dynamic-decoration.js} +0 -0
- /package/src/write/{abc_ending_element.js → creation/elements/ending-element.js} +0 -0
- /package/src/write/{abc_glissando_element.js → creation/elements/glissando-element.js} +0 -0
- /package/src/write/layout/{getBarYAt.js → get-bar-y-at.js} +0 -0
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
/**
|
|
3
|
-
* Dedicated fonts for violin tabs
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Set here the fonts used by renderer/drawer
|
|
8
|
-
* for the violin plugin
|
|
9
|
-
* @param {} tune
|
|
10
|
-
*/
|
|
11
|
-
// eslint-disable-next-line no-unused-vars
|
|
12
|
-
function setGuitarFonts(tune) {
|
|
13
|
-
/* enhance or change instrument fonts here */
|
|
14
|
-
// tune.formatting.tabnumberfont = { face: "\"Times New Roman\"", size: 9, weight: "normal", style: "normal", decoration: "none" };
|
|
15
|
-
// tune.formatting.tabgracefont = { face: "\"Times New Roman\"", size: 7, weight: "normal", style: "normal", decoration: "none" };
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
module.exports = setGuitarFonts;
|
|
19
|
-
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
/**
|
|
3
|
-
* Dedicated fonts for violin tabs
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Set here the fonts used by renderer/drawer
|
|
8
|
-
* for the violin plugin
|
|
9
|
-
* @param {} tune
|
|
10
|
-
*/
|
|
11
|
-
// eslint-disable-next-line no-unused-vars
|
|
12
|
-
function setViolinFonts(tune) {
|
|
13
|
-
/* enhance or change instrument fonts here */
|
|
14
|
-
// tune.formatting.tabnumberfont = { face: "\"Times New Roman\"", size: 9, weight: "normal", style: "normal", decoration: "none" };
|
|
15
|
-
// tune.formatting.tabgracefont = { face: "\"Times New Roman\"", size: 7, weight: "normal", style: "normal", decoration: "none" };
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
module.exports = setViolinFonts;
|
|
19
|
-
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
* generic transposer
|
|
4
|
-
*
|
|
5
|
-
*/
|
|
6
|
-
var TabNote = require('./instruments/tab-note');
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
function buildAccEquiv(acc,note) {
|
|
11
|
-
var equiv = note.getAccidentalEquiv();
|
|
12
|
-
if (acc.note.toUpperCase() == equiv.name.toUpperCase()) {
|
|
13
|
-
equiv.isSharp = false;
|
|
14
|
-
equiv.isFlat = false;
|
|
15
|
-
return equiv;
|
|
16
|
-
}
|
|
17
|
-
return note;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
function adjustNoteToKey(acc, note) {
|
|
21
|
-
if (acc.acc == 'sharp') {
|
|
22
|
-
if (note.isFlat) {
|
|
23
|
-
return buildAccEquiv(acc, note);
|
|
24
|
-
} else if (note.isSharp) {
|
|
25
|
-
if (acc.note.toUpperCase() == note.name.toUpperCase()) {
|
|
26
|
-
note.isSharp = false;
|
|
27
|
-
note.isKeySharp = true;
|
|
28
|
-
} else {
|
|
29
|
-
if (acc.note.toUpperCase() == note.name.toUpperCase()) {
|
|
30
|
-
note.natural = true;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
} else if (acc.acc == 'flat') {
|
|
35
|
-
if (note.isSharp) {
|
|
36
|
-
return buildAccEquiv(acc, note);
|
|
37
|
-
} else if (note.isFlat) {
|
|
38
|
-
if (acc.note.toUpperCase() == note.name.toUpperCase()) {
|
|
39
|
-
note.isFlat = false;
|
|
40
|
-
note.isKeyFlat = true;
|
|
41
|
-
}
|
|
42
|
-
} else {
|
|
43
|
-
if (acc.note.toUpperCase() == note.name.toUpperCase()) {
|
|
44
|
-
note.natural = true;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
return note;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
function replaceNote(self, newNote, start, end) {
|
|
53
|
-
if (self.lastEnd) {
|
|
54
|
-
while (start > self.lastEnd) {
|
|
55
|
-
self.updatedSrc.push(self.abcSrc[self.lastEnd]);
|
|
56
|
-
self.lastEnd++;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
var nNote = newNote.split('');
|
|
60
|
-
for (var ii = 0; ii < nNote.length; ii++) {
|
|
61
|
-
self.updatedSrc.push(nNote[ii]);
|
|
62
|
-
}
|
|
63
|
-
var curPos = start + ii;
|
|
64
|
-
while (end >= curPos) {
|
|
65
|
-
self.updatedSrc.push(nNote[curPos]);
|
|
66
|
-
curPos++;
|
|
67
|
-
}
|
|
68
|
-
self.lastEnd = end;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
function checkKeys(self, note) {
|
|
73
|
-
var accs = self.transposedKey;
|
|
74
|
-
for (var ii = 0; ii < accs.length; ii++) {
|
|
75
|
-
note = adjustNoteToKey(accs[ii], note);
|
|
76
|
-
}
|
|
77
|
-
return note;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
Transposer.prototype.transposeNote = function (note) {
|
|
81
|
-
var returned = note;
|
|
82
|
-
var curNote = new TabNote.TabNote(returned.name);
|
|
83
|
-
if (this.transposeBy > 0) {
|
|
84
|
-
for (var ii = 0; ii < this.transposeBy; ii++) {
|
|
85
|
-
curNote = checkKeys(this,curNote.nextNote());
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
} else if ( this.transposeBy < 0) {
|
|
89
|
-
for (var jj = this.transposeBy; jj < 0; jj++) {
|
|
90
|
-
curNote = checkKeys(this,curNote.prevNote());
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
returned.name = curNote.emit();
|
|
94
|
-
return returned;
|
|
95
|
-
};
|
|
96
|
-
|
|
97
|
-
Transposer.prototype.upgradeSource = function (note, startChar, endChar ) {
|
|
98
|
-
var n = new TabNote.TabNote(note.name);
|
|
99
|
-
var newNote = n.emit();
|
|
100
|
-
replaceNote(this, newNote, startChar, endChar-1);
|
|
101
|
-
};
|
|
102
|
-
|
|
103
|
-
function Transposer(transposedKey , transposeBy ) {
|
|
104
|
-
this.transposeBy = transposeBy;
|
|
105
|
-
this.transposedKey = transposedKey;
|
|
106
|
-
this.lastEnd = this.kEnd+1;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
module.exports = Transposer;
|