Weekly Development Update: 11/5/2025 - 11/12/2025
November 12, 2025
Quick Update
- MIDI playback received a boost with improved track properties and Tempo solution documentation added.
- The AudioEngine integration is underway, with core files and types implemented to enhance audio playback.
- SequencerPanel updates and new AudioWaveform component are now part of the mix, refining user experience.
- Several important fixes were made for MIDI loading and Tone.js compatibility, ensuring smoother functionality.
This week's development activity from 11/5/2025 - 11/12/2025.
Recent Commits
- [kurasao] Update MIDI playback and track properties, add tempo solution documentation
- [kurasao] fix: Remove duplicate audio- check in SequencerPanel delete handler
- [kurasao] chore: Remove backup file
- [kurasao] feat: Merge audio engine improvements with MIDI support
- [kurasao] feat: Merge SequencerPanel changes from feature branch (Step 4)
- [kurasao] feat: Add AudioWaveform component from feature branch
- [kurasao] feat: Merge AudioPlayback refactor to use AudioEngine (Step 3 of merge)
- [kurasao] feat: Add AudioEngine types and hook (Step 2 of merge)
- [kurasao] feat: Add AudioEngine core files (Step 1 of merge)
- [kurasao] docs: Update MIDI documentation to reflect Phases 1-5 implementation
- [kurasao] fix: Use blob URL approach for loading MIDI from ArrayBuffer
- [kurasao] fix: Use type assertion for ticksPerQuarter property on MIDI header
- [kurasao] fix: Wrap case block in braces to fix ESLint no-case-declarations error
- [kurasao] fix: Ensure SoundFont format is 'sf2' or 'sfz' before passing to createSamplerFromSoundFont
- [kurasao] fix: Convert Map.values() iterators to arrays for TypeScript compatibility
- [kurasao] fix: Use correct Param type for Tone.js Volume.volume property
- [kurasao] fix: Correct Tone.js Volume API usage - use volume.volume.value
- [kurasao] fix: Remove invalid .connected property checks on ToneAudioNode
- [kurasao] fix: Change baseUrl from let to const in midi-instruments.ts
- [kurasao] feat: Implement MIDI support with Tone.js
- [kurasao] Add final review checklist for MIDI production plan - approved for implementation
- [kurasao] Fix async instrument creation in MIDI playback component
- [kurasao] Fix MIDI production plan: complete removeMidiTrackFromSequence implementation and fix async instrument creation
- [kurasao] Add comprehensive MIDI support production plan with Tone.js
- [kurasao] Fix TypeScript error: correct MIDITrackPlayer context type
- [kurasao] Fix TypeScript error: remove invalid Tone.Transport.lookAhead assignment
- [kurasao] Fix TypeScript error: correct Tone.js context type
- [kurasao] Fix TypeScript error: convert Set to array before iteration
- [kurasao] Fix TypeScript error: check HTMLElement before accessing isContentEditable
- [kurasao] Fix ESLint build errors: remove react-hooks/exhaustive-deps disable comments
- [kurasao] Refactor audio track expansion to match object binding pattern
- [kurasao] Fix audio engine pause/stop and optimize track checking
- [kurasao] Fix audio track bar rendering and add max range persistence
- [kurasao] Refactor timeline view range controls: separate max range (inputs) from visible range (slider)
- [kurasao] Improve audio engine and sequencer timeline features
- [kurasao] Fix audio engine initialization and add debugging
- [kurasao] Integrate AudioEngine with sequencer
- [kurasao] Phase 1: Audio Engine Foundation
- [kurasao] Add comprehensive audio engine design document
- [kurasao] Improve editor layout and component positioning
- [kurasao] Fix bottom panel layout to span from left edge to right sidebar
- [kurasao] Improve audio playback: reduce choppiness and add buffering checks
- [kurasao] Fix object type mapping in sequence migration
- [kurasao] Fix TypeScript error: pass objectId string instead of SceneObject to addObjectToSequence
- [kurasao] Fix TypeScript error: use 'linear' instead of 'none' for default easing
- [kurasao] Fix TypeScript iteration error in AudioPlayback
- [kurasao] Fix TypeScript error: add null check for e.currentTarget
- [kurasao] Fix: import generateKeyframeId from same module to avoid await in non-async callback
- [kurasao] Fix TypeScript error: create Keyframe objects before passing to addKeyframeToTrack
- [kurasao] Fix TypeScript error: update onSeek prop signature to accept options
- [kurasao] Fix TypeScript error: properly create tracks before adding to binding
- [kurasao] Add audio track support to sequencer
- [kurasao] Fix camera view ghosting during timeline playback
- [kurasao] Add asset import functionality to Content Browser
- [kurasao] Remove old animation panel in favor of level sequencer
- [kurasao] Fix sequencer keyframe dragging and restore camera button functionality
- [kurasao] Fix sequencer timeline and restore sequence playback
- [kurasao] Fix TypeScript errors and enhance sequencer panel UI
- [kurasao] Fix: Make bottom panel (Content Browser/Sequencer) push content up instead of overlaying
- [kurasao] Fix TypeScript error: Add type annotation for row parameter in map callbacks
- [kurasao] Fix TypeScript errors: Add type assertions for sequences table in sequence-storage
- [kurasao] Fix TypeScript error: Convert Map.keys() iterator to Array before iteration
- [kurasao] Fix TypeScript error: Convert Set to Array before iteration in sequence-evaluator
- [kurasao] Fix TypeScript error: Update migrateSceneData to use SceneData type for proper type checking
- [kurasao] Fix TypeScript error: Update ClientSequenceStorage constructor to accept any Supabase client type
- [kurasao] Merge feature/sequencer-system into main
- [kurasao] Fix TypeScript error: Remove invalid light.range property descriptor
- [kurasao] Fix TypeScript error: Remove name property access from SceneObject in AddObjectDialog
- [kurasao] Fix TypeScript error: Remove frameCount check from PerformanceMonitor stats comparison
- [kurasao] Fix TypeScript error: Add null check for renderTargetRef.current before accessing texture
- [kurasao] Fix additional TypeScript error: Add null check for materialRef.current before accessing uniforms
- [kurasao] Fix TypeScript error: Add null check for materialRef.current before accessing uniforms
- [kurasao] Fix TypeScript error: Add null check for renderTargetRef.current before accessing properties
- [kurasao] Fix remaining TypeScript errors: Add type checks for lastDebugLogRef in SSAO debug logging
- [kurasao] Fix TypeScript error: Add type check for lastLog before arithmetic operation (lastDebugLogRef can be string or number)
- [kurasao] Fix TypeScript error: Use local variable for lastDebugLogRef.current to avoid null check issues
- [kurasao] Fix TypeScript error: Add null check for lastDebugLogRef.current before arithmetic operation
- [kurasao] Fix TypeScript error: Add null check for materialRef.current before accessing uniforms
- [kurasao] Fix TypeScript error: Remove needsUpdate from uniforms - needsUpdate is a property on Material, not on IUniform - Changed to material.needsUpdate = true instead
- [kurasao] Fix TypeScript error: Use kebab-case for directional light shadow camera props - Change shadowCameraLeft/Right/Top/Bottom/Near/Far to shadow-camera-left/right/top/bottom/near/far - Matches R3F prop naming convention
- [kurasao] Fix TypeScript error: Use kebab-case shadow props for React Three Fiber lights - Change shadowBias/shadowRadius/shadowMapSize to shadow-bias/shadow-radius/shadow-mapSize - Matches R3F prop naming convention
- [kurasao] Fix TypeScript error: Convert Map iterators to arrays using Array.from() - Fixes downlevelIteration compilation error in toggleSubGroup function
- [kurasao] Fix TypeScript error: Add explicit type annotation to obj parameter in find callback
- [kurasao] Fix whiteBalance property access in Enhanced3DScene - Change from whiteBalance.temperature/tint to colorGrading.whiteBalanceTemperature/Tint - Matches PostProcessVolumeSettings type definition
- [kurasao] Fix TypeScript errors for sequence_data property access - Add type assertions to all sequence_data property accesses - Fixes build error on Vercel
- [kurasao] Fix all remaining TypeScript errors for sequences table - Add type assertions to all .from('sequences') calls
- [kurasao] Fix TypeScript error for sequences table - Add type assertions for sequences table access - Supabase types don't include sequences table yet - Fixes build error on Vercel
- [kurasao] Increase keyframe column width and padding - Increased width from 60px to 90px - Added horizontal padding (px-2) - Increased gap between buttons (gap-1 to gap-2) - Updated all positioning calculations to account for new width
- [kurasao] Update keyframe navigation buttons with icons - Replace < with left triangle icon - Replace . with circle with + icon - Replace > with right triangle icon - Improved visual clarity and UX
- [kurasao] Fix subgroup toggle state update - Create completely new Map structure to ensure React detects state changes - Fixes issue where subgroups couldn't collapse/expand properly
- [kurasao] Add detailed debug logging for subgroup toggle state - Added comprehensive logging to track state changes - Helps diagnose why subgroup collapse/expand isn't working
- [kurasao] Add debug logging for subgroup toggle - Added console logging to diagnose subgroup collapse issue - Added preventDefault to button click handler
- [kurasao] Add missing toggleSubGroup function - Implemented toggleSubGroup callback for expanding/collapsing subgroups - Fixes ReferenceError when clicking subgroup caret buttons
- [kurasao] Fix missing subgroup rendering - Added rendering logic for Position, Rotation, Scale subgroups - Subgroups now display with expand/collapse caret buttons - Users can now twirl down to see X, Y, Z parameters
- [kurasao] Add debug logging for track name display - Added console warnings to help diagnose missing track names - Tracks should show names from property descriptors
- [kurasao] Fix keyframe rendering for subgroups - Added support for rendering keyframes when subgroup is collapsed - Keyframes now display correctly for Position, Rotation, Scale subgroups - Fixed missing keyframe display issue
- [kurasao] Fix undefined track rendering - Added null check to prevent rendering when track is undefined - Fixed keyframe column condition to properly check for track existence - Prevents errors when rendering property rows without valid track data
- [kurasao] Add debug logging and improve track name fallback - Added console warning for tracks missing name and property - Improved fallback logic to show property path or track ID - Helps identify why tracks show as Unknown
- [kurasao] Improve track name display and fix indentation - Tracks now show names from property descriptors when available - Falls back to extracting readable name from property path - Fixed indentation comment (triple indent for subgroups) - Prevents 'Unknown' from appearing for valid tracks
- [kurasao] Handle ungrouped Transform tracks - Transform tracks that don't match Position/Rotation/Scale are now grouped under 'Other' - Prevents 'unknown tracks' from appearing when Transform group is expanded
No pull requests in this period.
No issues in this period.