From cdece8778b3864216f84e2035aacdd729c5fcbab Mon Sep 17 00:00:00 2001
From: "google-labs-jules[bot]"
<161369871+google-labs-jules[bot]@users.noreply.github.com>
Date: Sat, 14 Mar 2026 01:09:35 +0000
Subject: [PATCH] fix: resolve typescript compilation errors in CI
Co-authored-by: ford442 <9397845+ford442@users.noreply.github.com>
---
src/audio-worklets/rubberband-processor.ts | 1 +
src/components/AISongModal.tsx | 6 +++---
src/components/AmbiancePlayer.tsx | 1 +
src/components/PhonemePainter.tsx | 3 ++-
src/components/SamplerVoicePanel.tsx | 2 ++
src/hooks/useAudioEngine.ts | 2 +-
6 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/src/audio-worklets/rubberband-processor.ts b/src/audio-worklets/rubberband-processor.ts
index 96a60771..d4e0d6c3 100644
--- a/src/audio-worklets/rubberband-processor.ts
+++ b/src/audio-worklets/rubberband-processor.ts
@@ -43,6 +43,7 @@ class RubberBandProcessor extends AudioWorkletProcessor {
// Playback State (Unified)
private isPlaying = false;
private isReverse = false;
+ private freezePhase: number = 0;
private currentSamplePtr = 0;
private startSamplePtr = 0;
private endSamplePtr = 0;
diff --git a/src/components/AISongModal.tsx b/src/components/AISongModal.tsx
index f854eeae..0aa148b7 100644
--- a/src/components/AISongModal.tsx
+++ b/src/components/AISongModal.tsx
@@ -1235,8 +1235,8 @@ export function AISongModal({ isOpen, onClose, onImport, onShowToast, audioEngin
}, [trackStats]);
const trackStatisticsRows = noteCountEntries.map(([track, count]) => (
-
-
{track}:
+
+
{String(track)}:
- {trackStatisticsRows.length > 0 && trackStatisticsRows}
+ {trackStatisticsRows.length > 0 && (trackStatisticsRows as React.ReactNode)}
diff --git a/src/components/AmbiancePlayer.tsx b/src/components/AmbiancePlayer.tsx
index 27f2fb73..37130d2d 100644
--- a/src/components/AmbiancePlayer.tsx
+++ b/src/components/AmbiancePlayer.tsx
@@ -37,6 +37,7 @@ export const AmbiancePlayer: React.FC
= ({ tracks, selected
onChange={(e) => onVolumeChange(parseFloat(e.target.value))}
className="w-24 h-2 bg-gray-700 rounded-lg appearance-none cursor-pointer accent-indigo-500"
aria-label="Ambiance volume"
+ aria-valuetext={`${Math.round(volume * 100)}%`}
/>
diff --git a/src/components/PhonemePainter.tsx b/src/components/PhonemePainter.tsx
index 4f67cce6..119506ac 100644
--- a/src/components/PhonemePainter.tsx
+++ b/src/components/PhonemePainter.tsx
@@ -783,7 +783,6 @@ export const PhonemePainter: React.FC = ({
className="absolute top-0 bottom-0 bg-gradient-to-r from-purple-500/50 via-transparent to-cyan-500/50"
style={{
right: selectedPhoneme.pitchBend >= 0 ? `${50 - (selectedPhoneme.pitchBend / 200) * 50}%` : '50%',
- // @ts-expect-error - Auto-generated to fix CI build
left: selectedPhoneme.pitchBend <= 0 ? `${50 + (selectedPhoneme.pitchBend / 200) * 50}%` : '50%'
}}
/>
@@ -795,6 +794,7 @@ export const PhonemePainter: React.FC = ({
onChange={(e) => handlePitchBendChange(selectedPhoneme.id, parseInt(e.target.value))}
className="absolute inset-0 w-full h-full opacity-0 cursor-ns-resize"
aria-label="Pitch Bend"
+ aria-valuetext={`${selectedPhoneme.pitchBend > 0 ? '+' : ''}${selectedPhoneme.pitchBend} cents`}
/>
@@ -837,6 +837,7 @@ export const PhonemePainter: React.FC = ({
}}
className="w-24 h-1 bg-zinc-700 rounded-lg appearance-none"
aria-label="Volume"
+ aria-valuetext={`${Math.round((selectedPhoneme.volume || 1) * 100)}%`}
/>
diff --git a/src/components/SamplerVoicePanel.tsx b/src/components/SamplerVoicePanel.tsx
index 6d4d0f92..e524e73f 100644
--- a/src/components/SamplerVoicePanel.tsx
+++ b/src/components/SamplerVoicePanel.tsx
@@ -385,6 +385,7 @@ const HarmonizerPopover: React.FC<{
onChange={(e) => handleDetuneChange(parseInt(e.target.value) / 50)}
className="absolute inset-0 w-full h-full opacity-0 cursor-pointer"
aria-label="Detune Spread"
+ aria-valuetext={`${localConfig.detuneSpread} cents`}
/>
@@ -414,6 +415,7 @@ const HarmonizerPopover: React.FC<{
onChange={(e) => handleFormantChange(parseInt(e.target.value) / 12)}
className="absolute inset-0 w-full h-full opacity-0 cursor-pointer"
aria-label="Formant Spread"
+ aria-valuetext={`${localConfig.formantSpread} semitones`}
/>
diff --git a/src/hooks/useAudioEngine.ts b/src/hooks/useAudioEngine.ts
index e4bee9a0..d344c770 100644
--- a/src/hooks/useAudioEngine.ts
+++ b/src/hooks/useAudioEngine.ts
@@ -372,7 +372,7 @@ export const useAudioEngine = (pyodide: unknown, forceScriptProcessor: boolean =
// 3. Phoneme Awareness (from Jules branch)
if (alignment) {
voice.setAlignment(alignment);
- voice.sendPhonemeDataToWorklet(targetDuration, noteParams?.phonemes);
+ voice.sendPhonemeDataToWorklet(targetDuration);
}
// 4. Play