diff --git a/components/automation/AutomationHeader.tsx b/components/automation/AutomationHeader.tsx index 000113b..8d20f03 100644 --- a/components/automation/AutomationHeader.tsx +++ b/components/automation/AutomationHeader.tsx @@ -69,10 +69,13 @@ export function AutomationHeader({ return (
+ {/* Automation label - always visible */} + Automation + {/* Color indicator */} {color && (
{ if (!containerRef.current) return 0; const width = containerRef.current.clientWidth; - return (time / duration) * width * zoom; + return (time / duration) * width; }, - [duration, zoom] + [duration] ); // Convert value (0-1) to Y pixel position (inverted: 0 at bottom, 1 at top) @@ -58,9 +58,9 @@ export function AutomationLane({ (x: number): number => { if (!containerRef.current) return 0; const width = containerRef.current.clientWidth; - return (x / (width * zoom)) * duration; + return (x / width) * duration; }, - [duration, zoom] + [duration] ); // Convert Y pixel position to value (0-1) @@ -209,7 +209,7 @@ export function AutomationLane({ const width = rect.width; // Calculate new time and value - const timePerPixel = duration / (width * zoom); + const timePerPixel = duration / width; const valuePerPixel = 1 / lane.height; const newTime = Math.max(0, Math.min(duration, point.time + deltaX * timePerPixel)); @@ -217,7 +217,7 @@ export function AutomationLane({ onUpdatePoint(pointId, { time: newTime, value: newValue }); }, - [lane.points, lane.height, duration, zoom, onUpdatePoint] + [lane.points, lane.height, duration, onUpdatePoint] ); const handlePointDragEnd = React.useCallback(() => { diff --git a/components/editor/AudioEditor.tsx b/components/editor/AudioEditor.tsx index ec98a52..1b7d871 100644 --- a/components/editor/AudioEditor.tsx +++ b/components/editor/AudioEditor.tsx @@ -1569,7 +1569,7 @@ export function AudioEditor() { {/* Right Sidebar - Master Controls & Analyzers */} -