abcjs 6.0.0-beta.32 → 6.0.0-beta.36

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 (97) hide show
  1. package/README.md +13 -7
  2. package/RELEASE.md +130 -0
  3. package/dist/abcjs-basic-min.js +2 -2
  4. package/dist/abcjs-basic.js +3763 -825
  5. package/dist/abcjs-basic.js.map +1 -1
  6. package/dist/abcjs-plugin-min.js +2 -2
  7. package/dist/report-basic.html +37 -0
  8. package/dist/report-before-glyph-compress.html +37 -0
  9. package/dist/report-brown-ts-target-es5.html +37 -0
  10. package/dist/report-dev-orig-no-babel.html +37 -0
  11. package/dist/report-synth.html +37 -0
  12. package/docker-build.sh +1 -0
  13. package/glyphs.json +1 -0
  14. package/package.json +9 -9
  15. package/src/api/abc_tablatures.js +144 -0
  16. package/src/api/abc_timing_callbacks.js +49 -26
  17. package/src/api/abc_tunebook.js +10 -1
  18. package/src/api/abc_tunebook_svg.js +16 -22
  19. package/src/data/abc_tune.js +90 -25
  20. package/src/data/deline-tune.js +199 -0
  21. package/src/edit/abc_editor.js +33 -11
  22. package/src/midi/abc_midi_create.js +6 -2
  23. package/src/parse/abc_parse.js +10 -6
  24. package/src/parse/abc_parse_directive.js +19 -12
  25. package/src/parse/abc_parse_header.js +12 -12
  26. package/src/parse/abc_parse_music.js +15 -5
  27. package/src/parse/tune-builder.js +23 -30
  28. package/src/parse/wrap_lines.js +13 -36
  29. package/src/synth/abc_midi_flattener.js +44 -29
  30. package/src/synth/abc_midi_sequencer.js +52 -13
  31. package/src/synth/create-synth.js +22 -7
  32. package/src/synth/load-note.js +31 -65
  33. package/src/synth/place-note.js +59 -60
  34. package/src/synth/register-audio-context.js +4 -1
  35. package/src/synth/supports-audio.js +9 -8
  36. package/src/synth/synth-controller.js +5 -3
  37. package/src/tablatures/instruments/guitar/guitar-fonts.js +19 -0
  38. package/src/tablatures/instruments/guitar/guitar-patterns.js +23 -0
  39. package/src/tablatures/instruments/guitar/tab-guitar.js +50 -0
  40. package/src/tablatures/instruments/string-patterns.js +277 -0
  41. package/src/tablatures/instruments/string-tablature.js +56 -0
  42. package/src/tablatures/instruments/tab-note.js +282 -0
  43. package/src/tablatures/instruments/tab-notes.js +41 -0
  44. package/src/tablatures/instruments/violin/tab-violin.js +47 -0
  45. package/src/tablatures/instruments/violin/violin-fonts.js +19 -0
  46. package/src/tablatures/instruments/violin/violin-patterns.js +23 -0
  47. package/src/tablatures/tab-absolute-elements.js +310 -0
  48. package/src/tablatures/tab-common.js +29 -0
  49. package/src/tablatures/tab-renderer.js +243 -0
  50. package/src/tablatures/transposer.js +110 -0
  51. package/src/test/abc_parser_lint.js +62 -6
  52. package/src/write/abc_absolute_element.js +2 -2
  53. package/src/write/abc_abstract_engraver.js +9 -7
  54. package/src/write/abc_create_key_signature.js +1 -0
  55. package/src/write/abc_create_note_head.js +1 -1
  56. package/src/write/abc_engraver_controller.js +22 -9
  57. package/src/write/abc_glyphs.js +5 -2
  58. package/src/write/abc_relative_element.js +11 -3
  59. package/src/write/abc_renderer.js +5 -1
  60. package/src/write/add-chord.js +5 -2
  61. package/src/write/add-text-if.js +33 -0
  62. package/src/write/bottom-text.js +8 -29
  63. package/src/write/draw/absolute.js +12 -14
  64. package/src/write/draw/brace.js +3 -3
  65. package/src/write/draw/crescendo.js +1 -1
  66. package/src/write/draw/draw.js +3 -4
  67. package/src/write/draw/dynamics.js +8 -1
  68. package/src/write/draw/ending.js +4 -3
  69. package/src/write/draw/group-elements.js +10 -8
  70. package/src/write/draw/non-music.js +11 -6
  71. package/src/write/draw/print-line.js +24 -0
  72. package/src/write/draw/print-stem.js +12 -11
  73. package/src/write/draw/print-symbol.js +11 -10
  74. package/src/write/draw/relative.js +33 -13
  75. package/src/write/draw/selectables.js +9 -6
  76. package/src/write/draw/staff-group.js +45 -9
  77. package/src/write/draw/staff-line.js +3 -17
  78. package/src/write/draw/staff.js +15 -2
  79. package/src/write/draw/tab-line.js +40 -0
  80. package/src/write/draw/tempo.js +7 -7
  81. package/src/write/draw/text.js +11 -4
  82. package/src/write/draw/tie.js +2 -2
  83. package/src/write/draw/triplet.js +3 -3
  84. package/src/write/draw/voice.js +10 -2
  85. package/src/write/format-jazz-chord.js +15 -0
  86. package/src/write/free-text.js +20 -12
  87. package/src/write/layout/VoiceElements.js +33 -1
  88. package/src/write/layout/beam.js +2 -0
  89. package/src/write/layout/staffGroup.js +37 -2
  90. package/src/write/layout/voice.js +2 -1
  91. package/src/write/selection.js +15 -5
  92. package/src/write/separator.js +1 -1
  93. package/src/write/subtitle.js +3 -3
  94. package/src/write/svg.js +41 -14
  95. package/src/write/top-text.js +19 -25
  96. package/types/index.d.ts +1007 -39
  97. package/version.js +1 -1
package/README.md CHANGED
@@ -8,13 +8,17 @@ This library makes it easy to incorporate **sheet music** into your **websites**
8
8
 
9
9
  Full documentation is here: [abcjs documentation](https://paulrosen.github.io/abcjs/)
10
10
 
11
+ ## Major New Feature! 6.0.0-beta.36
12
+
13
+ String tablature is now available by adding an option to the `renderAbc` parameters. See [tablature documentation](https://paulrosen.github.io/abcjs/visual/tablature.html)
14
+
11
15
  ## Fix to audio in octave clefs 6.0.0-beta.31
12
16
 
13
17
  If you are using an octave clef (for instance `K:C clef=treble-8`) it will now sound an octave different. The octave calculation was happening twice.
14
18
 
15
19
  ## Last version supporting midi.js is 6.0.0-beta.28
16
20
 
17
- The file [abcjs version supporting midi.js](https://raw.github.io/paulrosen/abcjs/main/bin/abcjs_midi-min.js) is the last version of the old style of sound production that will receive updates.
21
+ The file [abcjs version supporting midi.js](https://github.com/paulrosen/historical-abcjs-versions/blob/main/version-6/abcjs_midi-min.js) is the last version of the old style of sound production that will receive updates.
18
22
 
19
23
  ## Rename the default branch to `main`
20
24
 
@@ -68,11 +72,13 @@ I'm trying to get all the issues that will create breaking changes done before r
68
72
 
69
73
  I am going to try to release new beta versions regularly with a few improvements in each.
70
74
 
71
- The two changes that are coming soon that might affect your code are:
72
- 1) Break apart the paths in the SVG so that parts of the note can be targeted. (For instance, just the flag, or one note in a chord.)
73
- 2) Be able to set the minimum spacing for notes when there are lots of notes on a line.
74
-
75
- There will also be a number of the open issues considered for each beta version.
75
+ These are the changes that are planned:
76
+ * Improve the API for controlling the synth. That is, make the parameters less confusing.
77
+ * Test and improve the sound of the soundfont.
78
+ * Add all the typescript definitions.
79
+ * Break apart the paths in the SVG so that parts of the note can be targeted. (For instance, just the flag, or one note in a chord.)
80
+ * Control the spacing of the elements on the line better: support equal size measures, and support allowing control of the spacing between notes.
81
+ * Bug fixes.
76
82
 
77
83
  If you have a particular issue that is impeding your usage of this library, please mention it in the issue.
78
84
 
@@ -94,4 +100,4 @@ And I would love some help on this project, including documentation, bug fixes,
94
100
  ## Supported by BrowserStack
95
101
  If you aren't using the same browser and machine that I use, you can thank [BrowserStack](https://browserstack.com/) for their support of this open-source project.
96
102
 
97
- ![BrowserStack](https://cdn.rawgit.com/paulrosen/abcjs/main/docs/.vuepress/public/img/browserstack-logo-600x315.png)
103
+ ![BrowserStack](https://paulrosen.github.io/abcjs/img/browserstack-logo-600x315.png)
package/RELEASE.md CHANGED
@@ -1,3 +1,133 @@
1
+ # Version 6.0.0-beta.36
2
+
3
+ ## Bugs
4
+
5
+ Fix some typescript definitions.
6
+
7
+ When stopping synth, return the position that it stopped at.
8
+
9
+ Implement a fix for race conditions during note loading
10
+
11
+ Don't call debugger when setting an annotation on an invisible note.
12
+
13
+ Put try/catch in editor when creating music so there isn't an unhandled exception if there is an abcjs bug.
14
+
15
+ Don't crash when creating audio and there is a suppressed blank line
16
+
17
+ When suppressing blank lines, consider a line with only chords as not blank.
18
+
19
+ Don't add too much spacing on chord symbols when placing them.
20
+
21
+ Don't lose element's scrolling position when rendering music.
22
+
23
+ Fix crash when creating timing array and there is a suppressed line because it is empty.
24
+
25
+ Allow soundFontVolumeMultiplier to be set to zero.
26
+
27
+ ## Features
28
+
29
+ Add string tablature
30
+
31
+ Implement %%jazzchord directive
32
+
33
+ ## Documentation
34
+
35
+ Add example page using multiple synths with program switcher
36
+
37
+ Add jazzchords to example generator
38
+
39
+ # Version 6.0.0-beta.35
40
+
41
+ ## Bugs
42
+
43
+ * Fix regression on creating oneSvgPerLine
44
+
45
+ * Fix notes that are one step apart from colliding.
46
+
47
+ * Fix crash on bad notelength
48
+
49
+ * Fix note durations in triplets where p != r
50
+
51
+ * Don't crash if a browser doesn't contain AudioContext
52
+
53
+ * Don't swallow warning after wrapping.
54
+
55
+ * Fix some regressions with placing and styling text.
56
+
57
+ * Fix font on relatively positioned annotations.
58
+
59
+ * Protect the editor from crashing when synth is attempted and the browser doesn't support AudioContext.
60
+
61
+ ## Features
62
+
63
+ * Create parameter `jazzchords`
64
+
65
+ * Add many types to the typescript definitions.
66
+
67
+ * Add `units` to TimingCallback.start
68
+
69
+ * Add staccato to midi creation.
70
+
71
+ * Add classes to dynamics elements.
72
+
73
+ * Add more info to the click handler
74
+
75
+ * Limit the size of the warning message if there is a long string.
76
+
77
+ * Add initialClef option
78
+
79
+ * Keep and pass back current time from the timer callbacks.
80
+
81
+ ## Documentation
82
+
83
+ * Fix path for favicon in docs
84
+
85
+ * Tweak to printing example
86
+
87
+ * Move examples to github pages.
88
+
89
+ * Add MIDI download example.
90
+
91
+ * Fixes to doc building from the vuepress upgrade.
92
+
93
+ * Add mention of a CDN to load library from.
94
+
95
+ * Add a couple of errors to analysis demo to show the warning data.
96
+
97
+ * Option to only render the clef on the first line.
98
+
99
+ # Version 6.0.0-beta.33
100
+
101
+ ## Bugs
102
+
103
+ * Fix crash when there is a missing close bracket on an inline command.
104
+
105
+ * Fix the startChar position of chords
106
+
107
+ * Fix overriding the tempo.
108
+
109
+ * Fix passing qpm in.
110
+
111
+ * Fix stem direction bug on wrap.
112
+
113
+ * Fix bug in calculating the endpoint of the audio when there are multiple voices.
114
+
115
+ ## Features
116
+
117
+ * Add getBarLength() and getTotalTime() to the tune object;
118
+
119
+ * Add second parameter to seek() for the units percent, seconds, and beats.
120
+
121
+ * Add `detuneOctave` parameter
122
+
123
+ ## Documentation
124
+
125
+ * Example of controlling the tempo.
126
+
127
+ ## Build
128
+
129
+ * Remove bin folder
130
+
1
131
  # Version 6.0.0-beta.32
2
132
 
3
133
  ## Bugs