spessasynth_core 4.3.22 → 4.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.
package/README.md CHANGED
@@ -12,12 +12,13 @@ It allows you to:
12
12
  - Read and write MIDI files!
13
13
  - Read and write SF2/SF3 files!
14
14
  - Convert DLS to SF2! (and back!)
15
+ - Play tracker modules (MOD, XM, S3M) as MIDI files!
15
16
  - [and more!](#current-features)
16
17
 
17
- ### v4.3.0 The General Update is here!
18
+ ### v4.4.0 The XG Update is here!
18
19
 
19
- Featuring robust MIDI analysis and editing, broadened MIDI exclusive support,
20
- and reworked, more powerful API!
20
+ Featuring full Yamaha XG effects, tracker module playback,
21
+ a more capable MIDI editor, and a faster synthesis engine!
21
22
 
22
23
  > **Tip:**
23
24
  >
@@ -50,7 +51,7 @@ and reworked, more powerful API!
50
51
  - **Flexible:** _It's not just a MIDI player!_
51
52
  - **Easy to Use:** _Basic setup is
52
53
  just [two lines of code!](https://spessasus.github.io/spessasynth_core/getting-started#minimal-setup)_
53
- - **No external dependencies:** _Only vorbis decoder for SF3 support!_
54
+ - **Minimal dependencies:** _Only tiny `fflate` for XMF and `stb-vorbis` for SF3 support!_
54
55
  - **Full TypeScript definitions:** _Autocompletion in IDEs!_
55
56
 
56
57
  ### Powerful MIDI Synthesizer
@@ -77,11 +78,12 @@ and reworked, more powerful API!
77
78
  - **Sound bank manager:** Stack multiple sound banks!
78
79
  - **Unlimited channel count:** Your CPU is the limit!
79
80
  - **Built-in, configurable effects:**
81
+ - **Full Yamaha XG effects:** _Reverb, chorus, variation and insertion effects, accurately ported from S-YXG50!_
80
82
  - **Reverb:** _Multiple characters including delay and panning delay!_
81
83
  - **Chorus:** _Modulated delay lines with multiple presets!_
82
84
  - **Delay:** _Three delay lines for all of your delay needs!_
83
85
  - **Insertion Effects:** _The ultimate effects, they can give your sounds a completely different character! (limited support)_
84
- - **GS Compatible:** _MIDI files can configure the effects accurately!_
86
+ - **GS and XG Compatible:** _MIDI files can configure the effects accurately!_
85
87
  - **Replaceable:** _Effects not to your liking? You can replace them with your own!_
86
88
  - **Excellent MIDI Standards Support:**
87
89
  - **MIDI Controller Support:** Default supported
@@ -142,10 +144,19 @@ and reworked, more powerful API!
142
144
 
143
145
  #### Read and play XMF files
144
146
 
145
- - **Read the eXtensible Music Format files:** With embedded DLS sound banks!
146
- - **MXMF support:** Mobile XMF for old phone ringtones!
147
- - **Compression support:** Zlib compressed files can still be read!
148
- - **Seamless integration:** Read like RMIDI files!
147
+ - **Read the eXtensible Music Format files:** _With embedded DLS sound banks!_
148
+ - **MXMF support:** _Mobile XMF for old phone ringtones!_
149
+ - **Compression support:** _Zlib compressed files can still be read!_
150
+ - **Seamless integration:** _Read like RMIDI files!_
151
+
152
+ #### Read and play tracker modules
153
+
154
+ - **MOD, XM and S3M support:** _ProTracker, FastTracker 2 and Scream Tracker 3 modules load just like MIDI files!_
155
+ - **Converted to MIDI with an embedded sound bank:** Every sample becomes a preset, and the song can be saved as an RMIDI file!
156
+ - **Accurate playback:** _Effects, effect memory, instrument envelopes and auto-vibrato are converted to MIDI events!_
157
+ - **Sample offset support:** _Implemented with SoundFont modulators!_
158
+ - **Loop detection:** _Song loops and restart positions become loop points!_
159
+ - **Seamless integration:** _Read like any other MIDI file!_
149
160
 
150
161
  #### Read and write SoundFont2 files
151
162
 
@@ -193,7 +204,7 @@ and reworked, more powerful API!
193
204
 
194
205
  #### TODO
195
206
 
196
- - Improve the performance of the engine
207
+ - Improve the performance of the engine (it's already quite good, but there's always room for improvement)
197
208
  - Potentially port the system to Emscripten
198
209
 
199
210
  ### Special Thanks
@@ -208,6 +219,7 @@ and reworked, more powerful API!
208
219
  - [foo_midi](https://github.com/stuerp/foo_midi) - for useful resources on XMF file format
209
220
  - [Falcosoft](https://falcosoft.hu) - for help with the RMIDI format
210
221
  - [Christian Collins](https://schristiancollins.com) - for various bug reports regarding the synthesizer
222
+ - [OpenMPT](https://openmpt.org/) - for useful resources on the tracker formats
211
223
  - **And You!** - for checking out this project. I hope you like it :)
212
224
 
213
225
  **If you like this project, consider giving it a star. It really helps out!**
@@ -248,7 +260,7 @@ const synth = new SpessaSynthProcessor(sampleRate, {
248
260
  eventsEnabled: false
249
261
  });
250
262
  synth.soundBankManager.addSoundBank(soundBank, "main");
251
- await synth.processorInitialized;
263
+ await synth.ready;
252
264
  // Enable verbose information during render
253
265
  SpessaLog.setLogLevel(true, true, true);
254
266
  // Enable uncapped voice count
@@ -311,6 +323,10 @@ npm run build
311
323
 
312
324
  The files will be placed in the `dist` folder.
313
325
 
326
+ #### Test Suite
327
+
328
+ This library has a comprehensive MIDI testing suite. For more information, please read the [tests `README`](tests/README.md).
329
+
314
330
  ## License
315
331
 
316
332
  Copyright © 2026 Spessasus