fix: unit test errors and TS type errors

This commit is contained in:
Xiaohan-Tian
2026-05-01 18:33:25 -07:00
parent 83034455cc
commit b7926300e1
3 changed files with 13 additions and 6 deletions
@@ -41,10 +41,10 @@ describe('upgradeToV7', () => {
}); });
it('clamps values that exceed MAX_TRACK_VOLUME_DB', () => { it('clamps values that exceed MAX_TRACK_VOLUME_DB', () => {
// linear > 1.0 would give positive dB; cap at +6 // linear > 1.0 gives positive dB but 2.0 is still below the +12 dB ceiling
const project = makeProject([2.0]); const project = makeProject([2.0]);
upgradeToV7(project); upgradeToV7(project);
expect(project.getTracks()[0].getVolume()).toBe(AUDIO_INTERFACE_CONSTANTS.MAX_TRACK_VOLUME_DB); expect(project.getTracks()[0].getVolume()).toBeCloseTo(20 * Math.log10(2.0), 5);
}); });
it('bumps project structure version to 7', () => { it('bumps project structure version to 7', () => {
+2 -2
View File
@@ -348,7 +348,7 @@ describe('KGMidiTrack', () => {
// Volume outside valid dB range is clamped // Volume outside valid dB range is clamped
track.setVolume(10); track.setVolume(10);
expect(track.getVolume()).toBe(6); expect(track.getVolume()).toBe(10);
track.setVolume(-100); track.setVolume(-100);
expect(track.getVolume()).toBe(-60); expect(track.getVolume()).toBe(-60);
@@ -401,4 +401,4 @@ describe('KGMidiTrack', () => {
}); });
}); });
}); });
}); });
+9 -2
View File
@@ -1,5 +1,12 @@
import FFT from 'fft.js'; import FFT from 'fft.js';
type WorkerScopeLike = typeof globalThis & {
onmessage: ((event: MessageEvent<SpectrogramRequest>) => void) | null;
postMessage: (message: SpectrogramResult, transfer: Transferable[]) => void;
};
const workerScope = self as WorkerScopeLike;
export interface SpectrogramRequest { export interface SpectrogramRequest {
pcm: Float32Array; pcm: Float32Array;
sampleRate: number; sampleRate: number;
@@ -25,7 +32,7 @@ function hannWindow(size: number): Float32Array {
return w; return w;
} }
self.onmessage = (e: MessageEvent<SpectrogramRequest>) => { workerScope.onmessage = (e: MessageEvent<SpectrogramRequest>) => {
const { pcm, sampleRate, clipStartOffsetSeconds, regionDurationSeconds } = e.data; const { pcm, sampleRate, clipStartOffsetSeconds, regionDurationSeconds } = e.data;
const startSample = Math.floor(clipStartOffsetSeconds * sampleRate); const startSample = Math.floor(clipStartOffsetSeconds * sampleRate);
@@ -92,5 +99,5 @@ self.onmessage = (e: MessageEvent<SpectrogramRequest>) => {
} }
const response: SpectrogramResult = { data: result, timeSteps: totalHops }; const response: SpectrogramResult = { data: result, timeSteps: totalHops };
self.postMessage(response, [result.buffer]); workerScope.postMessage(response, [result.buffer]);
}; };