spessasynth_core 4.2.13 → 4.3.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
@@ -14,9 +14,10 @@ It allows you to:
14
14
  - Convert DLS to SF2! (and back!)
15
15
  - [and more!](#current-features)
16
16
 
17
- ### v4.2.0 The Effects Update is here!
17
+ ### v4.3.0 The General Update is here!
18
18
 
19
- Featuring Reverb, Chorus, Delay, Insertion effects and more!
19
+ Featuring robust MIDI analysis and editing, broadened MIDI exclusive support,
20
+ and reworked, more powerful API!
20
21
 
21
22
  > **Tip:**
22
23
  >
@@ -29,6 +30,7 @@ Featuring Reverb, Chorus, Delay, Insertion effects and more!
29
30
 
30
31
  - [SpessaSynth Online SF2/DLS MIDI Player](https://spessasus.github.io/SpessaSynth)
31
32
  - [SpessaFont Online SoundFont/DLS Editor](https://spessasus.github.io/SpessaFont)
33
+ - [signal - Online MIDI Editor](https://signalmidi.app/)
32
34
 
33
35
  ### [Documentation](https://spessasus.github.io/spessasynth_core)
34
36
 
@@ -134,10 +136,17 @@ Featuring Reverb, Chorus, Delay, Insertion effects and more!
134
136
  - **Automatic bank shifting and validation:** Every sound bank _just works!_
135
137
  - **Metadata support:** Add title, artist, album name and cover and more! And of course, read them too! _(In any
136
138
  encoding!)_
137
- - **Compatible with [Falcosoft Midi Player 6!](https://falcosoft.hu/softwares.html#midiplayer)**
139
+ - **Compatible with [Falcosoft MIDI Player 6!](https://falcosoft.hu/softwares.html#midiplayer)**
138
140
  - **Easy saving:**
139
141
  _[As simple as saving a MIDI file!](https://spessasus.github.io/spessasynth_core/writing-files/midi#writermidi)_
140
142
 
143
+ #### Read and play XMF files
144
+
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!
149
+
141
150
  #### Read and write SoundFont2 files
142
151
 
143
152
  - **Easy info access:** _Just
@@ -191,7 +200,7 @@ Featuring Reverb, Chorus, Delay, Insertion effects and more!
191
200
 
192
201
  - [FluidSynth](https://github.com/FluidSynth/fluidsynth) - for the source code that helped implement functionality and
193
202
  fixes
194
- - [Polyphone](https://www.polyphone-soundfonts.com/) - for the soundfont testing and editing tool
203
+ - [Polyphone](https://github.com/davy7125/polyphone/) - for the soundfont testing and editing tool
195
204
  - [Meltysynth](https://github.com/sinshu/meltysynth) - for the initial low-pass filter implementation
196
205
  - [RecordingBlogs](https://www.recordingblogs.com/) - for detailed explanations on MIDI messages
197
206
  - [stbvorbis.js](https://github.com/hajimehoshi/stbvorbis.js) - for the Vorbis decoder
@@ -209,11 +218,12 @@ Featuring Reverb, Chorus, Delay, Insertion effects and more!
209
218
  For use with node.js
210
219
 
211
220
  ```ts
212
- import * as fs from "fs/promises";
221
+ import * as fs from "node:fs/promises";
213
222
  import {
214
223
  audioToWav,
215
224
  BasicMIDI,
216
225
  SoundBankLoader,
226
+ SpessaLog,
217
227
  SpessaSynthProcessor,
218
228
  SpessaSynthSequencer
219
229
  } from "spessasynth_core";
@@ -234,14 +244,16 @@ const midi = BasicMIDI.fromArrayBuffer(mid.buffer);
234
244
  const soundBank = SoundBankLoader.fromArrayBuffer(sf.buffer);
235
245
 
236
246
  // Initialize the synthesizer
237
- const sampleRate = 48000;
247
+ const sampleRate = 48_000;
238
248
  const synth = new SpessaSynthProcessor(sampleRate, {
239
- enableEventSystem: false
249
+ eventsEnabled: false
240
250
  });
241
251
  synth.soundBankManager.addSoundBank(soundBank, "main");
242
252
  await synth.processorInitialized;
253
+ // Enable verbose information during render
254
+ SpessaLog.setLogLevel(true, true, true);
243
255
  // Enable uncapped voice count
244
- synth.setMasterParameter("autoAllocateVoices", true);
256
+ synth.setSystemParameter("autoAllocateVoices", true);
245
257
 
246
258
  // Initialize the sequencer
247
259
  const seq = new SpessaSynthSequencer(synth);