abcjs 6.2.3 → 6.4.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.
Files changed (75) hide show
  1. package/README.md +8 -0
  2. package/RELEASE.md +84 -1
  3. package/dist/abcjs-basic-min.js +2 -2
  4. package/dist/abcjs-basic.js +1775 -1034
  5. package/dist/abcjs-basic.js.map +1 -1
  6. package/dist/abcjs-plugin-min.js +2 -2
  7. package/index.js +3 -0
  8. package/package.json +1 -1
  9. package/plugin.js +1 -1
  10. package/src/api/abc_tablatures.js +48 -13
  11. package/src/api/tune-metrics.js +18 -0
  12. package/src/data/abc_tune.js +13 -2
  13. package/src/edit/abc_editarea.js +4 -1
  14. package/src/parse/abc_parse.js +2 -0
  15. package/src/parse/abc_parse_directive.js +23 -16
  16. package/src/parse/abc_parse_header.js +22 -19
  17. package/src/parse/abc_tokenizer.js +72 -7
  18. package/src/parse/tune-builder.js +60 -1
  19. package/src/synth/abc_midi_flattener.js +40 -462
  20. package/src/synth/abc_midi_sequencer.js +25 -10
  21. package/src/synth/chord-track.js +562 -0
  22. package/src/synth/create-note-map.js +2 -1
  23. package/src/synth/create-synth.js +91 -42
  24. package/src/synth/synth-controller.js +6 -2
  25. package/src/tablatures/instruments/string-patterns.js +11 -0
  26. package/src/tablatures/instruments/{violin/violin-patterns.js → tab-string-patterns.js} +6 -6
  27. package/src/tablatures/instruments/{violin/tab-violin.js → tab-string.js} +13 -11
  28. package/src/tablatures/tab-absolute-elements.js +16 -7
  29. package/src/tablatures/tab-renderer.js +22 -9
  30. package/src/test/abc_parser_lint.js +14 -12
  31. package/src/write/creation/abstract-engraver.js +6 -2
  32. package/src/write/creation/add-chord.js +102 -82
  33. package/src/write/creation/add-text-if.js +2 -2
  34. package/src/write/creation/decoration.js +16 -9
  35. package/src/write/creation/elements/bottom-text.js +62 -47
  36. package/src/write/creation/elements/rich-text.js +51 -0
  37. package/src/write/creation/elements/tie-element.js +23 -0
  38. package/src/write/creation/elements/top-text.js +37 -11
  39. package/src/write/creation/glyphs.js +1 -1
  40. package/src/write/draw/absolute.js +4 -1
  41. package/src/write/draw/draw.js +13 -4
  42. package/src/write/draw/non-music.js +3 -1
  43. package/src/write/draw/relative.js +1 -1
  44. package/src/write/draw/tempo.js +1 -1
  45. package/src/write/draw/text.js +10 -0
  46. package/src/write/engraver-controller.js +62 -17
  47. package/src/write/helpers/classes.js +1 -1
  48. package/src/write/helpers/get-font-and-attr.js +8 -1
  49. package/src/write/helpers/get-text-size.js +8 -1
  50. package/src/write/interactive/create-analysis.js +50 -0
  51. package/src/write/interactive/find-selectable-element.js +24 -0
  52. package/src/write/interactive/selection.js +5 -45
  53. package/src/write/layout/layout-in-grid.js +83 -0
  54. package/src/write/layout/layout.js +29 -24
  55. package/src/write/layout/set-upper-and-lower-elements.js +2 -0
  56. package/src/write/layout/staff-group.js +2 -2
  57. package/src/write/layout/voice-elements.js +1 -1
  58. package/src/write/layout/voice.js +1 -1
  59. package/src/write/renderer.js +3 -0
  60. package/src/write/svg.js +30 -0
  61. package/temp.txt +3 -0
  62. package/types/index.d.ts +142 -38
  63. package/version.js +1 -1
  64. package/.github/workflows/tests.yml +0 -29
  65. package/abc2xml_239/abc2xml.html +0 -769
  66. package/abc2xml_239/abc2xml.py +0 -2248
  67. package/abc2xml_239/abc2xml_changelog.html +0 -124
  68. package/abc2xml_239/lazy-river.abc +0 -26
  69. package/abc2xml_239/lazy-river.xml +0 -3698
  70. package/abc2xml_239/mean-to-me.abc +0 -22
  71. package/abc2xml_239/mean-to-me.xml +0 -2954
  72. package/abc2xml_239/pyparsing.py +0 -3672
  73. package/abc2xml_239/pyparsing.pyc +0 -0
  74. package/src/tablatures/instruments/guitar/guitar-patterns.js +0 -23
  75. package/src/tablatures/instruments/guitar/tab-guitar.js +0 -48
Binary file
@@ -1,23 +0,0 @@
1
- var StringPatterns = require('../string-patterns');
2
-
3
- function GuitarPatterns(plugin) {
4
- this.tuning = plugin._super.params.tuning;
5
- if (!this.tuning) {
6
- this.tuning = ['E,', 'A,', 'D', 'G' , 'B' , 'e'];
7
- }
8
- plugin.tuning = this.tuning;
9
- this.strings = new StringPatterns(plugin);
10
- }
11
-
12
- GuitarPatterns.prototype.notesToNumber = function (notes, graces) {
13
- var converter = this.strings;
14
- return converter.notesToNumber(notes, graces);
15
- };
16
-
17
- GuitarPatterns.prototype.stringToPitch = function (stringNumber) {
18
- var converter = this.strings;
19
- return converter.stringToPitch(stringNumber);
20
- };
21
-
22
-
23
- module.exports = GuitarPatterns;
@@ -1,48 +0,0 @@
1
- /*
2
- Emit tab for Guitar staff
3
- */
4
- var StringTablature = require('../string-tablature');
5
- var TabCommon = require('../../tab-common');
6
- var TabRenderer = require('../../tab-renderer');
7
- var GuitarPatterns = require('./guitar-patterns');
8
-
9
- /**
10
- * upon init mainly store provided instances for later usage
11
- * @param {*} abcTune the parsed tune AST tree
12
- * @param {*} tuneNumber the parsed tune AST tree
13
- * @param {*} params complementary args provided to Tablature Plugin
14
- */
15
- Plugin.prototype.init = function (abcTune, tuneNumber, params) {
16
- var _super = new TabCommon(abcTune, tuneNumber, params);
17
- this._super = _super;
18
- this.abcTune = abcTune;
19
- this.linePitch = 3;
20
- this.nbLines = 6;
21
- this.isTabBig = true;
22
- this.capo = params.capo;
23
- this.transpose = params.visualTranspose;
24
- this.tablature = new StringTablature(this.nbLines,
25
- this.linePitch);
26
-
27
- var semantics = new GuitarPatterns(this);
28
- this.semantics = semantics;
29
- };
30
-
31
- Plugin.prototype.render = function (renderer, line, staffIndex) {
32
- if (this._super.inError) return;
33
- if (this.tablature.bypass(line)) return;
34
- var rndrer = new TabRenderer(this, renderer, line, staffIndex);
35
- rndrer.doLayout();
36
- };
37
-
38
- function Plugin() {}
39
-
40
- //
41
- // Tablature plugin definition
42
- //
43
- var AbcGuitarTab = function () {
44
- return { name: 'GuitarTab', tablature: Plugin };
45
- };
46
-
47
-
48
- module.exports = AbcGuitarTab;