abcjs 6.0.0-beta.34 → 6.0.0-beta.38

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 (72) hide show
  1. package/LICENSE.md +1 -1
  2. package/README.md +15 -6
  3. package/RELEASE.md +67 -1
  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 +2587 -334
  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-dev-orig-no-babel.html +37 -0
  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 +2 -1
  20. package/plugin.js +23 -1
  21. package/src/api/abc_tablatures.js +144 -0
  22. package/src/api/abc_tunebook.js +10 -1
  23. package/src/api/abc_tunebook_svg.js +18 -6
  24. package/src/data/abc_tune.js +26 -24
  25. package/src/edit/abc_editor.js +29 -11
  26. package/src/parse/abc_parse.js +4 -2
  27. package/src/parse/abc_parse_directive.js +12 -6
  28. package/src/parse/tune-builder.js +1 -1
  29. package/src/synth/abc_midi_flattener.js +11 -2
  30. package/src/synth/abc_midi_sequencer.js +4 -1
  31. package/src/synth/create-synth.js +87 -30
  32. package/src/synth/load-note.js +34 -65
  33. package/src/synth/place-note.js +63 -59
  34. package/src/tablatures/instruments/guitar/guitar-fonts.js +19 -0
  35. package/src/tablatures/instruments/guitar/guitar-patterns.js +23 -0
  36. package/src/tablatures/instruments/guitar/tab-guitar.js +50 -0
  37. package/src/tablatures/instruments/string-patterns.js +277 -0
  38. package/src/tablatures/instruments/string-tablature.js +56 -0
  39. package/src/tablatures/instruments/tab-note.js +282 -0
  40. package/src/tablatures/instruments/tab-notes.js +41 -0
  41. package/src/tablatures/instruments/violin/tab-violin.js +47 -0
  42. package/src/tablatures/instruments/violin/violin-fonts.js +19 -0
  43. package/src/tablatures/instruments/violin/violin-patterns.js +23 -0
  44. package/src/tablatures/tab-absolute-elements.js +310 -0
  45. package/src/tablatures/tab-common.js +29 -0
  46. package/src/tablatures/tab-renderer.js +243 -0
  47. package/src/tablatures/transposer.js +110 -0
  48. package/src/test/abc_parser_lint.js +3 -0
  49. package/src/write/abc_absolute_element.js +2 -2
  50. package/src/write/abc_engraver_controller.js +19 -11
  51. package/src/write/abc_glyphs.js +2 -0
  52. package/src/write/abc_relative_element.js +5 -3
  53. package/src/write/abc_renderer.js +5 -1
  54. package/src/write/draw/absolute.js +5 -1
  55. package/src/write/draw/draw.js +5 -6
  56. package/src/write/draw/non-music.js +3 -1
  57. package/src/write/draw/print-line.js +24 -0
  58. package/src/write/draw/relative.js +14 -2
  59. package/src/write/draw/selectables.js +9 -6
  60. package/src/write/draw/staff-group.js +44 -8
  61. package/src/write/draw/staff-line.js +3 -19
  62. package/src/write/draw/staff.js +15 -2
  63. package/src/write/draw/tab-line.js +40 -0
  64. package/src/write/draw/text.js +3 -0
  65. package/src/write/draw/voice.js +9 -1
  66. package/src/write/format-jazz-chord.js +2 -2
  67. package/src/write/layout/staffGroup.js +23 -1
  68. package/src/write/layout/voice.js +2 -1
  69. package/src/write/svg.js +2 -1
  70. package/test.js +23 -0
  71. package/types/index.d.ts +73 -25
  72. package/version.js +1 -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,6 +8,10 @@ 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.
@@ -64,20 +68,25 @@ 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.
68
-
69
- I am going to try to release new beta versions regularly with a few improvements in each.
71
+ I'm getting close to taking version 6.0.0 out of beta.
70
72
 
71
73
  These are the changes that are planned:
72
- * Improve the API for controlling the synth. That is, make the parameters less confusing.
73
74
  * Test and improve the sound of the soundfont.
74
75
  * Add all the typescript definitions.
75
- * 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.)
76
- * Control the spacing of the elements on the line better: support equal size measures, and support allowing control of the spacing between notes.
77
76
  * Bug fixes.
78
77
 
79
78
  If you have a particular issue that is impeding your usage of this library, please mention it in the issue.
80
79
 
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:
81
+
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.
89
+
81
90
  Thanks, Paul
82
91
 
83
92
  ## Future breaking changes
package/RELEASE.md CHANGED
@@ -1,4 +1,70 @@
1
- # Version 6.0.0-beta.34
1
+ # Version 6.0.0-beta.38
2
+
3
+ ## Bugs
4
+
5
+ * Regression: Fix return of CreateSynth.init
6
+
7
+ * Don't do audio on tablature lines.
8
+
9
+ * Wait until all notes are loaded before continuing to build audio buffer. (Caused the beginning of the buffer to possibly be arpeggiated if there is a race condition.)
10
+
11
+ * Don't crash when there is a blank staff on the second line.
12
+
13
+ * The pan option now works if the actual number of tracks doesn't match the panned tracks.
14
+
15
+ * Don't add chord track if it is empty.
16
+
17
+ ## Documentation
18
+
19
+ * Get more detailed with the typescript declarations
20
+
21
+ # Version 6.0.0-beta.37
22
+
23
+ * Keep the correct line count when generating one svg per line. (Fixes analysis of the tune for playback and timing)
24
+
25
+ ## Features
26
+
27
+ * Change the default soundfont to the improved Fluid one; add the anticipations on the abcjs soundfont.
28
+
29
+ # Version 6.0.0-beta.36
30
+
31
+ ## Bugs
32
+
33
+ * Fix some typescript definitions.
34
+
35
+ * When stopping synth, return the position that it stopped at.
36
+
37
+ * Implement a fix for race conditions during note loading
38
+
39
+ * Don't call debugger when setting an annotation on an invisible note.
40
+
41
+ * Put try/catch in editor when creating music so there isn't an unhandled exception if there is an abcjs bug.
42
+
43
+ * Don't crash when creating audio and there is a suppressed blank line
44
+
45
+ * When suppressing blank lines, consider a line with only chords as not blank.
46
+
47
+ * Don't add too much spacing on chord symbols when placing them.
48
+
49
+ * Don't lose element's scrolling position when rendering music.
50
+
51
+ * Fix crash when creating timing array and there is a suppressed line because it is empty.
52
+
53
+ * Allow soundFontVolumeMultiplier to be set to zero.
54
+
55
+ ## Features
56
+
57
+ * Add string tablature
58
+
59
+ * Implement %%jazzchord directive
60
+
61
+ ## Documentation
62
+
63
+ * Add example page using multiple synths with program switcher
64
+
65
+ * Add jazzchords to example generator
66
+
67
+ # Version 6.0.0-beta.35
2
68
 
3
69
  ## Bugs
4
70