spessasynth_lib 3.27.8 → 4.0.1

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 (34) hide show
  1. package/README.md +48 -47
  2. package/dist/index.d.ts +1328 -0
  3. package/dist/index.js +3212 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/spessasynth_processor.min.js +21 -0
  6. package/dist/spessasynth_processor.min.js.map +7 -0
  7. package/package.json +26 -14
  8. package/index.js +0 -29
  9. package/src/external_midi/README.md +0 -4
  10. package/src/external_midi/midi_handler.js +0 -130
  11. package/src/external_midi/web_midi_link.js +0 -43
  12. package/src/sequencer/README.md +0 -30
  13. package/src/sequencer/default_sequencer_options.js +0 -9
  14. package/src/sequencer/midi_data.js +0 -67
  15. package/src/sequencer/sequencer.js +0 -813
  16. package/src/sequencer/sequencer_message.js +0 -53
  17. package/src/synthetizer/README.md +0 -30
  18. package/src/synthetizer/audio_effects/effects_config.js +0 -25
  19. package/src/synthetizer/audio_effects/fancy_chorus.js +0 -166
  20. package/src/synthetizer/audio_effects/rb_compressed.min.js +0 -1
  21. package/src/synthetizer/audio_effects/reverb.js +0 -35
  22. package/src/synthetizer/audio_effects/reverb_as_binary.js +0 -18
  23. package/src/synthetizer/key_modifier_manager.js +0 -113
  24. package/src/synthetizer/sfman_message.js +0 -9
  25. package/src/synthetizer/synth_event_handler.js +0 -217
  26. package/src/synthetizer/synth_soundfont_manager.js +0 -115
  27. package/src/synthetizer/synthetizer.js +0 -1033
  28. package/src/synthetizer/worklet_message.js +0 -121
  29. package/src/synthetizer/worklet_processor.js +0 -654
  30. package/src/synthetizer/worklet_url.js +0 -18
  31. package/src/utils/buffer_to_wav.js +0 -40
  32. package/src/utils/fill_with_defaults.js +0 -21
  33. package/src/utils/other.js +0 -11
  34. package/synthetizer/worklet_processor.min.js +0 -22
@@ -1,121 +0,0 @@
1
- import { SynthesizerSnapshot } from "spessasynth_core";
2
-
3
- /**
4
- * @enum {number}
5
- * // NOTE: Every message needs a channel number (if not relevant or all, set to -1)
6
- * @property {number} midiMessage - 0 -> [messageData<Uint8Array>, channelOffset<number>, force<boolean>, options<SynthMethodOptions>]
7
- * @property {number} ccReset - 7 -> (no data) note: if channel is -1 then reset all channels
8
- * @property {number} setChannelVibrato - 8 -> {frequencyHz: number, depthCents: number, delaySeconds: number} note: if channel is -1 then stop all channels note 2: if rate is -1, it means locking
9
- * @property {number} soundFontManager - 9 -> [messageType<WorkletSoundfontManagerMessageType> messageData<any>] note: refer to sfman_message.js
10
- * @property {number} stopAll - 10 -> force<number> (0 false, 1 true) note: if channel is -1 then stop all channels
11
- * @property {number} killNotes - 11 -> amount<number>
12
- * @property {number} muteChannel - 12 -> isMuted<boolean>
13
- * @property {number} addNewChannel - 13 -> (no data)
14
- * @property {number} customCcChange - 14 -> [ccNumber<number>, ccValue<number>]
15
- * @property {number} debugMessage - 15 -> (no data)
16
- * @property {number} setMasterParameter - 17 -> [parameter<masterParameterType>, value<number>]
17
- * @property {number} setDrums - 18 -> isDrums<boolean>
18
- * @property {number} transpose - 19 -> [semitones<number>, force<boolean>] note: if channel is -1 then transpose all channels
19
- * @property {number} highPerformanceMode - 20 -> isOn<boolean>
20
- * @property {number} lockController - 21 -> [controllerNumber<number>, isLocked<boolean>]
21
- * @property {number} sequencerSpecific - 22 -> [messageType<SpessaSynthSequencerMessageType> messageData<any>] note: refer to sequencer_message.js
22
- * @property {number} requestSynthesizerSnapshot - 23 -> (no data)
23
- * @property {number} setLogLevel - 24 -> [enableInfo<boolean>, enableWarning<boolean>, enableGroup<boolean>, enableTable<boolean>]
24
- * @property {number} keyModifier - 25 -> [messageType<workletKeyModifierMessageType> messageData<any>]
25
- * @property {number} setEffectsGain - 26 -> [reverbGain<number>, chorusGain<number>]
26
- * @property {number} destroyWorklet - 27 -> (no data)
27
- */
28
- export const workletMessageType = {
29
- midiMessage: 0,
30
- // free 6 slots here, use when needed instead of adding new ones
31
- ccReset: 7,
32
- setChannelVibrato: 8,
33
- soundFontManager: 9,
34
- stopAll: 10,
35
- killNotes: 11,
36
- muteChannel: 12,
37
- addNewChannel: 13,
38
- customCcChange: 14,
39
- debugMessage: 15,
40
- // free slot here
41
- setMasterParameter: 17,
42
- setDrums: 18,
43
- transpose: 19,
44
- highPerformanceMode: 20,
45
- lockController: 21,
46
- sequencerSpecific: 22,
47
- requestSynthesizerSnapshot: 23,
48
- setLogLevel: 24,
49
- keyModifierManager: 25,
50
- setEffectsGain: 26,
51
- destroyWorklet: 27
52
- };
53
-
54
-
55
- /**
56
- * @typedef {{
57
- * channelNumber: number
58
- * messageType: (workletMessageType|number),
59
- * messageData: (
60
- * boolean|
61
- * (number|Uint8Array|object)[]
62
- * |undefined
63
- * |boolean[]
64
- * |boolean
65
- * |Voice[]
66
- * |number
67
- * |{rate: number, depth: number, delay: number}
68
- * |ArrayBuffer
69
- * |{messageType: SpessaSynthSequencerMessageType, messageData: any}
70
- * |{messageType: workletKeyModifierMessageType, messageData: any}
71
- * |Uint8Array
72
- * )
73
- * }} WorkletMessage
74
- */
75
-
76
- /**
77
- * @typedef {Object} ChannelProperty
78
- * @property {number} voicesAmount - the channel's current voice amount
79
- * @property {number} pitchBend - the channel's current pitch bend from -8192 do 8192
80
- * @property {number} pitchBendRangeSemitones - the pitch bend's range, in semitones
81
- * @property {boolean} isMuted - indicates whether the channel is muted
82
- * @property {boolean} isDrum - indicates whether the channel is a drum channel
83
- * @property {number} transposition - the channel's transposition, in semitones
84
- * @property {number} bank - the bank number of the current preset
85
- * @property {number} program - the MIDI program number of the current preset
86
- */
87
-
88
- /**
89
- * @typedef {Object} WorkletReturnMessage
90
- * @property {returnMessageType} messageType - the message's type
91
- * @property {{
92
- * eventName: string,
93
- * eventData: any
94
- * }|ChannelProperty
95
- * |{presetName: string, bank: number, program: number}[]
96
- * |string
97
- * |{messageType: SpessaSynthSequencerReturnMessageType, messageData: any}
98
- * |SynthesizerSnapshot
99
- * |[WorkletSoundfontManagerMessageType, any]} messageData - the message's data
100
- *
101
- * 0 - channel property change -> [channel<number>, property<ChannelProperty>] see message_sending.js line 29
102
- * 1 - event call -> {eventName<string>, eventData:<the event's data>}
103
- * 2 - master parameter change -> [parameter<masterParameterType>, value<string|number>]
104
- * 3 - sequencer specific -> [messageType<SpessaSynthSequencerReturnMessageType> messageData<any>] note: refer to sequencer_message.js
105
- * 4 - synthesizer snapshot -> snapshot<SynthesizerSnapshot> note: refer to synthesizer_snapshot.js
106
- * 5 - isFullyInitialized -> (no data)
107
- * 6 - soundfontError -> errorMessage<string>
108
- */
109
-
110
- /**
111
- * @enum {number}
112
- */
113
- export const returnMessageType = {
114
- channelPropertyChange: 0,
115
- eventCall: 1,
116
- masterParameterChange: 2,
117
- sequencerSpecific: 3,
118
- synthesizerSnapshot: 4,
119
- isFullyInitialized: 5,
120
- soundfontError: 6
121
- };