spessasynth_core 4.2.12 → 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 +20 -8
- package/dist/index.d.ts +2159 -2661
- package/dist/index.js +5616 -5018
- package/dist/index.js.map +1 -1
- package/package.json +9 -8
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.
|
|
17
|
+
### v4.3.0 The General Update is here!
|
|
18
18
|
|
|
19
|
-
Featuring
|
|
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
|
|
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://
|
|
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 =
|
|
247
|
+
const sampleRate = 48_000;
|
|
238
248
|
const synth = new SpessaSynthProcessor(sampleRate, {
|
|
239
|
-
|
|
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.
|
|
256
|
+
synth.setSystemParameter("autoAllocateVoices", true);
|
|
245
257
|
|
|
246
258
|
// Initialize the sequencer
|
|
247
259
|
const seq = new SpessaSynthSequencer(synth);
|