abcjs 6.0.0-beta.33 → 6.0.0-beta.37

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 (101) hide show
  1. package/LICENSE.md +1 -1
  2. package/README.md +20 -9
  3. package/RELEASE.md +108 -0
  4. package/dist/abcjs-basic-min.js +2 -2
  5. package/dist/abcjs-basic-min.js.LICENSE +2 -2
  6. package/dist/abcjs-basic.js +3493 -841
  7. package/dist/abcjs-basic.js.map +1 -1
  8. package/dist/abcjs-plugin-min.js +2 -2
  9. package/dist/abcjs-plugin-min.js.LICENSE +2 -2
  10. package/dist/report-basic.html +37 -0
  11. package/dist/report-before-glyph-compress.html +37 -0
  12. package/dist/report-brown-ts-target-es5.html +37 -0
  13. package/dist/{report.html → report-dev-orig-no-babel.html} +2 -2
  14. package/dist/report-synth.html +37 -0
  15. package/docker-build.sh +1 -0
  16. package/glyphs.json +1 -0
  17. package/index.js +23 -1
  18. package/license.js +1 -1
  19. package/package.json +9 -9
  20. package/plugin.js +23 -1
  21. package/src/api/abc_tablatures.js +144 -0
  22. package/src/api/abc_timing_callbacks.js +34 -31
  23. package/src/api/abc_tunebook.js +10 -1
  24. package/src/api/abc_tunebook_svg.js +23 -27
  25. package/src/data/abc_tune.js +68 -24
  26. package/src/edit/abc_editor.js +33 -11
  27. package/src/midi/abc_midi_create.js +6 -2
  28. package/src/parse/abc_parse.js +7 -6
  29. package/src/parse/abc_parse_directive.js +19 -12
  30. package/src/parse/abc_parse_header.js +12 -12
  31. package/src/parse/abc_parse_music.js +14 -4
  32. package/src/parse/tune-builder.js +22 -29
  33. package/src/synth/abc_midi_sequencer.js +10 -0
  34. package/src/synth/create-synth.js +56 -13
  35. package/src/synth/load-note.js +31 -65
  36. package/src/synth/place-note.js +59 -60
  37. package/src/synth/register-audio-context.js +4 -1
  38. package/src/synth/supports-audio.js +9 -8
  39. package/src/tablatures/instruments/guitar/guitar-fonts.js +19 -0
  40. package/src/tablatures/instruments/guitar/guitar-patterns.js +23 -0
  41. package/src/tablatures/instruments/guitar/tab-guitar.js +50 -0
  42. package/src/tablatures/instruments/string-patterns.js +277 -0
  43. package/src/tablatures/instruments/string-tablature.js +56 -0
  44. package/src/tablatures/instruments/tab-note.js +282 -0
  45. package/src/tablatures/instruments/tab-notes.js +41 -0
  46. package/src/tablatures/instruments/violin/tab-violin.js +47 -0
  47. package/src/tablatures/instruments/violin/violin-fonts.js +19 -0
  48. package/src/tablatures/instruments/violin/violin-patterns.js +23 -0
  49. package/src/tablatures/tab-absolute-elements.js +310 -0
  50. package/src/tablatures/tab-common.js +29 -0
  51. package/src/tablatures/tab-renderer.js +243 -0
  52. package/src/tablatures/transposer.js +110 -0
  53. package/src/test/abc_parser_lint.js +62 -6
  54. package/src/write/abc_absolute_element.js +2 -2
  55. package/src/write/abc_abstract_engraver.js +9 -7
  56. package/src/write/abc_create_key_signature.js +1 -0
  57. package/src/write/abc_create_note_head.js +1 -1
  58. package/src/write/abc_engraver_controller.js +26 -13
  59. package/src/write/abc_glyphs.js +5 -2
  60. package/src/write/abc_relative_element.js +11 -3
  61. package/src/write/abc_renderer.js +5 -1
  62. package/src/write/add-chord.js +5 -2
  63. package/src/write/add-text-if.js +33 -0
  64. package/src/write/bottom-text.js +8 -29
  65. package/src/write/draw/absolute.js +12 -14
  66. package/src/write/draw/brace.js +3 -3
  67. package/src/write/draw/crescendo.js +1 -1
  68. package/src/write/draw/draw.js +5 -6
  69. package/src/write/draw/dynamics.js +8 -1
  70. package/src/write/draw/ending.js +4 -3
  71. package/src/write/draw/group-elements.js +10 -8
  72. package/src/write/draw/non-music.js +11 -6
  73. package/src/write/draw/print-line.js +24 -0
  74. package/src/write/draw/print-stem.js +12 -11
  75. package/src/write/draw/print-symbol.js +11 -10
  76. package/src/write/draw/relative.js +33 -13
  77. package/src/write/draw/selectables.js +9 -6
  78. package/src/write/draw/staff-group.js +45 -9
  79. package/src/write/draw/staff-line.js +3 -17
  80. package/src/write/draw/staff.js +15 -2
  81. package/src/write/draw/tab-line.js +40 -0
  82. package/src/write/draw/tempo.js +7 -7
  83. package/src/write/draw/text.js +11 -4
  84. package/src/write/draw/tie.js +2 -2
  85. package/src/write/draw/triplet.js +3 -3
  86. package/src/write/draw/voice.js +10 -2
  87. package/src/write/format-jazz-chord.js +15 -0
  88. package/src/write/free-text.js +20 -12
  89. package/src/write/layout/VoiceElements.js +33 -1
  90. package/src/write/layout/beam.js +2 -0
  91. package/src/write/layout/staffGroup.js +37 -2
  92. package/src/write/layout/voice.js +2 -1
  93. package/src/write/selection.js +15 -5
  94. package/src/write/separator.js +1 -1
  95. package/src/write/subtitle.js +3 -3
  96. package/src/write/svg.js +41 -14
  97. package/src/write/top-text.js +19 -25
  98. package/test.js +23 -0
  99. package/types/index.d.ts +1007 -39
  100. package/version.js +1 -1
  101. package/docker-start.sh +0 -1
package/LICENSE.md CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2009-2021 Paul Rosen and Gregory Dyke
1
+ Copyright (c) 2009-2022 Paul Rosen and Gregory Dyke
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  of this software and associated documentation files (the "Software"), to deal
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
 
@@ -64,17 +68,24 @@ The last version in each major version number is still available in the active b
64
68
  In this beta the default soundfont was changed to https://paulrosen.github.io/midi-js-soundfonts/abcjs/ Hopefully you will find that sounds better. If you set the soundfont directly then you won't notice any change. If you prefer the old soundfont, use the `soundFontUrl: "https://paulrosen.github.io/midi-js-soundfonts/FluidR3_GM/"` option when calling the synth functions.
65
69
 
66
70
  ## Informal roadmap
67
- I'm trying to get all the issues that will create breaking changes done before releasing 6.0.0. There will still be a few beta versions to come.
71
+ I'm getting close to taking version 6.0.0 out of beta.
68
72
 
69
- I am going to try to release new beta versions regularly with a few improvements in each.
73
+ These are the changes that are planned:
74
+ * Test and improve the sound of the soundfont.
75
+ * Add all the typescript definitions.
76
+ * Bug fixes.
70
77
 
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.
78
+ If you have a particular issue that is impeding your usage of this library, please mention it in the issue.
74
79
 
75
- There will also be a number of the open issues considered for each beta version.
80
+ After the 6.0.0 release, I'll be working on some more architecture changes which will go in a 7.0.0 release:
76
81
 
77
- If you have a particular issue that is impeding your usage of this library, please mention it in the issue.
82
+ * Improve the API for controlling the synth. That is, make the parameters less confusing.
83
+ * Create a plugin architecture so that large features that are not widely used can be added without bloating this library.
84
+ * Change the build to use typescript while still maintaining legacy browser capability.
85
+ * Reduce the size of the library by optimizing code.
86
+ * Control the spacing of the elements on the line better: support equal size measures, and support allowing control of the spacing between notes.
87
+ * Improved documentation, particularly for synth.
88
+ * Bug fixes.
78
89
 
79
90
  Thanks, Paul
80
91
 
@@ -94,4 +105,4 @@ And I would love some help on this project, including documentation, bug fixes,
94
105
  ## Supported by BrowserStack
95
106
  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
107
 
97
- ![BrowserStack](https://cdn.rawgit.com/paulrosen/abcjs/main/docs/.vuepress/public/img/browserstack-logo-600x315.png)
108
+ ![BrowserStack](https://paulrosen.github.io/abcjs/img/browserstack-logo-600x315.png)
package/RELEASE.md CHANGED
@@ -1,3 +1,111 @@
1
+ # Version 6.0.0-beta.37
2
+
3
+ * Keep the correct line count when generating one svg per line. (Fixes analysis of the tune for playback and timing)
4
+
5
+ ## Features
6
+ *
7
+ * Change the default soundfont to the improved Fluid one; add the anticipations on the abcjs soundfont.
8
+
9
+ ## Bugs
10
+
11
+ # Version 6.0.0-beta.36
12
+
13
+ ## Bugs
14
+
15
+ * Fix some typescript definitions.
16
+
17
+ * When stopping synth, return the position that it stopped at.
18
+
19
+ * Implement a fix for race conditions during note loading
20
+
21
+ * Don't call debugger when setting an annotation on an invisible note.
22
+
23
+ * Put try/catch in editor when creating music so there isn't an unhandled exception if there is an abcjs bug.
24
+
25
+ * Don't crash when creating audio and there is a suppressed blank line
26
+
27
+ * When suppressing blank lines, consider a line with only chords as not blank.
28
+
29
+ * Don't add too much spacing on chord symbols when placing them.
30
+
31
+ * Don't lose element's scrolling position when rendering music.
32
+
33
+ * Fix crash when creating timing array and there is a suppressed line because it is empty.
34
+
35
+ * Allow soundFontVolumeMultiplier to be set to zero.
36
+
37
+ ## Features
38
+
39
+ * Add string tablature
40
+
41
+ * Implement %%jazzchord directive
42
+
43
+ ## Documentation
44
+
45
+ * Add example page using multiple synths with program switcher
46
+
47
+ * Add jazzchords to example generator
48
+
49
+ # Version 6.0.0-beta.35
50
+
51
+ ## Bugs
52
+
53
+ * Fix regression on creating oneSvgPerLine
54
+
55
+ * Fix notes that are one step apart from colliding.
56
+
57
+ * Fix crash on bad notelength
58
+
59
+ * Fix note durations in triplets where p != r
60
+
61
+ * Don't crash if a browser doesn't contain AudioContext
62
+
63
+ * Don't swallow warning after wrapping.
64
+
65
+ * Fix some regressions with placing and styling text.
66
+
67
+ * Fix font on relatively positioned annotations.
68
+
69
+ * Protect the editor from crashing when synth is attempted and the browser doesn't support AudioContext.
70
+
71
+ ## Features
72
+
73
+ * Create parameter `jazzchords`
74
+
75
+ * Add many types to the typescript definitions.
76
+
77
+ * Add `units` to TimingCallback.start
78
+
79
+ * Add staccato to midi creation.
80
+
81
+ * Add classes to dynamics elements.
82
+
83
+ * Add more info to the click handler
84
+
85
+ * Limit the size of the warning message if there is a long string.
86
+
87
+ * Add initialClef option
88
+
89
+ * Keep and pass back current time from the timer callbacks.
90
+
91
+ ## Documentation
92
+
93
+ * Fix path for favicon in docs
94
+
95
+ * Tweak to printing example
96
+
97
+ * Move examples to github pages.
98
+
99
+ * Add MIDI download example.
100
+
101
+ * Fixes to doc building from the vuepress upgrade.
102
+
103
+ * Add mention of a CDN to load library from.
104
+
105
+ * Add a couple of errors to analysis demo to show the warning data.
106
+
107
+ * Option to only render the clef on the first line.
108
+
1
109
  # Version 6.0.0-beta.33
2
110
 
3
111
  ## Bugs