spessasynth_lib 3.9.22 → 3.10.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/@types/index.d.ts +1 -1
- package/index.js +1 -0
- package/package.json +1 -1
- package/sequencer/worklet_sequencer/play.js +0 -5
- package/sequencer/worklet_sequencer/process_event.js +2 -8
- package/sequencer/worklet_sequencer/song_control.js +2 -0
- package/synthetizer/worklet_processor.min.js +6 -6
- package/synthetizer/worklet_system/main_processor.js +6 -0
- package/synthetizer/worklet_system/worklet_methods/controller_control.js +1 -0
- package/synthetizer/worklet_system/worklet_methods/data_entry.js +4 -0
- package/synthetizer/worklet_system/worklet_methods/program_control.js +1 -1
- package/synthetizer/worklet_system/worklet_methods/system_exclusive.js +101 -4
package/@types/index.d.ts
CHANGED
|
@@ -31,4 +31,4 @@ import { readBytesAsUintBigEndian } from './utils/byte_functions/big_endian.js';
|
|
|
31
31
|
import { NON_CC_INDEX_OFFSET } from './synthetizer/worklet_system/worklet_utilities/worklet_processor_channel.js';
|
|
32
32
|
import { ALL_CHANNELS_OR_DIFFERENT_ACTION } from './synthetizer/worklet_system/message_protocol/worklet_message.js';
|
|
33
33
|
import { WORKLET_URL_ABSOLUTE } from './synthetizer/worklet_url.js';
|
|
34
|
-
export { Sequencer, Synthetizer, DEFAULT_PERCUSSION, VOICE_CAP, SoundFont2, trimSoundfont, modulatorSources, MIDI, IndexedByteArray, writeMIDIFile, writeRMIDI, applySnapshotToMIDI, modifyMIDI, audioBufferToWav, SpessaSynthLogging, SpessaSynthGroup, SpessaSynthTable, SpessaSynthGroupEnd, SpessaSynthInfo, SpessaSynthWarn, SpessaSynthGroupCollapsed, midiControllers, messageTypes, MIDIDeviceHandler, WebMidiLinkHandler, arrayToHexString, consoleColors, formatTitle, formatTime, readBytesAsUintBigEndian, NON_CC_INDEX_OFFSET, ALL_CHANNELS_OR_DIFFERENT_ACTION, WORKLET_URL_ABSOLUTE };
|
|
34
|
+
export { Sequencer, Synthetizer, DEFAULT_PERCUSSION, VOICE_CAP, SoundFont2, trimSoundfont, modulatorSources, OggVorbisEncoder, MIDI, IndexedByteArray, writeMIDIFile, writeRMIDI, applySnapshotToMIDI, modifyMIDI, audioBufferToWav, SpessaSynthLogging, SpessaSynthGroup, SpessaSynthTable, SpessaSynthGroupEnd, SpessaSynthInfo, SpessaSynthWarn, SpessaSynthGroupCollapsed, midiControllers, messageTypes, MIDIDeviceHandler, WebMidiLinkHandler, arrayToHexString, consoleColors, formatTitle, formatTime, readBytesAsUintBigEndian, NON_CC_INDEX_OFFSET, ALL_CHANNELS_OR_DIFFERENT_ACTION, WORKLET_URL_ABSOLUTE };
|
package/index.js
CHANGED
package/package.json
CHANGED
|
@@ -139,11 +139,6 @@ export function _playTo(time, ticks = undefined)
|
|
|
139
139
|
let ccV = event.messageData[1];
|
|
140
140
|
if(controllerNumber === midiControllers.bankSelect)
|
|
141
141
|
{
|
|
142
|
-
if(this.midiData.embeddedSoundFont !== undefined)
|
|
143
|
-
{
|
|
144
|
-
// special case if the RMID is embedded: subtract 1 from bank. See wiki About-RMIDI
|
|
145
|
-
ccV--;
|
|
146
|
-
}
|
|
147
142
|
// add the bank to saved
|
|
148
143
|
programs[channel].bank = ccV;
|
|
149
144
|
break;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getEvent, messageTypes
|
|
1
|
+
import { getEvent, messageTypes } from '../../midi_parser/midi_message.js'
|
|
2
2
|
import { WorkletSequencerReturnMessageType } from './sequencer_message.js'
|
|
3
3
|
import { consoleColors } from '../../utils/other.js'
|
|
4
4
|
import { SpessaSynthWarn } from '../../utils/loggin.js'
|
|
@@ -67,13 +67,7 @@ export function _processEvent(event, trackIndex)
|
|
|
67
67
|
break;
|
|
68
68
|
|
|
69
69
|
case messageTypes.controllerChange:
|
|
70
|
-
|
|
71
|
-
let v = event.messageData[1];
|
|
72
|
-
if(this.midiData.embeddedSoundFont && event.messageData[0] === midiControllers.bankSelect)
|
|
73
|
-
{
|
|
74
|
-
v--;
|
|
75
|
-
}
|
|
76
|
-
this.synth.controllerChange(statusByteData.channel, event.messageData[0], v);
|
|
70
|
+
this.synth.controllerChange(statusByteData.channel, event.messageData[0], event.messageData[1]);
|
|
77
71
|
break;
|
|
78
72
|
|
|
79
73
|
case messageTypes.programChange:
|
|
@@ -57,6 +57,8 @@ export function loadNewSequence(parsedMidi)
|
|
|
57
57
|
if(this.midiData.embeddedSoundFont !== undefined)
|
|
58
58
|
{
|
|
59
59
|
this.synth.reloadSoundFont(this.midiData.embeddedSoundFont);
|
|
60
|
+
// set offet
|
|
61
|
+
this.synth.soundfontBankOffset = 1;
|
|
60
62
|
// preload all samples
|
|
61
63
|
this.synth.soundfont.samples.forEach(s => s.getAudioData());
|
|
62
64
|
}
|