+
+ {
+ const updatedChain = {
+ ...track.effectChain,
+ effects: track.effectChain.effects.map((e) =>
+ e.id === effectId ? { ...e, enabled: !e.enabled } : e
+ ),
+ };
+ onUpdateTrack(track.id, { effectChain: updatedChain });
}}
- onUpdatePoint={(pointId, updates) => {
- const updatedLanes = track.automation.lanes.map((l) =>
- l.id === lane.id
- ? {
- ...l,
- points: l.points.map((p) =>
- p.id === pointId ? { ...p, ...updates } : p
- ),
- }
- : l
- );
- onUpdateTrack(track.id, {
- automation: { ...track.automation, lanes: updatedLanes },
- });
+ onRemoveEffect={(effectId) => {
+ const updatedChain = {
+ ...track.effectChain,
+ effects: track.effectChain.effects.filter((e) => e.id !== effectId),
+ };
+ onUpdateTrack(track.id, { effectChain: updatedChain });
}}
- onRemovePoint={(pointId) => {
- const updatedLanes = track.automation.lanes.map((l) =>
- l.id === lane.id
- ? { ...l, points: l.points.filter((p) => p.id !== pointId) }
- : l
- );
- onUpdateTrack(track.id, {
- automation: { ...track.automation, lanes: updatedLanes },
- });
+ onUpdateEffect={(effectId, parameters) => {
+ const updatedChain = {
+ ...track.effectChain,
+ effects: track.effectChain.effects.map((e) =>
+ e.id === effectId ? { ...e, parameters } : e
+ ),
+ };
+ onUpdateTrack(track.id, { effectChain: updatedChain });
}}
- onUpdateLane={(updates) => {
- const updatedLanes = track.automation.lanes.map((l) =>
- l.id === lane.id ? { ...l, ...updates } : l
+ onAddEffect={(effectType) => {
+ const newEffect = createEffect(
+ effectType,
+ EFFECT_NAMES[effectType]
);
- onUpdateTrack(track.id, {
- automation: { ...track.automation, lanes: updatedLanes },
- });
+ const updatedChain = {
+ ...track.effectChain,
+ effects: [...track.effectChain.effects, newEffect],
+ };
+ onUpdateTrack(track.id, { effectChain: updatedChain });
}}
- onSeek={onSeek}
/>
- ))}
-
- )}
-
- {/* Effects Section */}
-
{
- const updatedChain = {
- ...track.effectChain,
- effects: track.effectChain.effects.map((e) =>
- e.id === effectId ? { ...e, enabled: !e.enabled } : e
- ),
- };
- onUpdateTrack(track.id, { effectChain: updatedChain });
- }}
- onRemoveEffect={(effectId) => {
- const updatedChain = {
- ...track.effectChain,
- effects: track.effectChain.effects.filter((e) => e.id !== effectId),
- };
- onUpdateTrack(track.id, { effectChain: updatedChain });
- }}
- onUpdateEffect={(effectId, parameters) => {
- const updatedChain = {
- ...track.effectChain,
- effects: track.effectChain.effects.map((e) =>
- e.id === effectId ? { ...e, parameters } : e
- ),
- };
- onUpdateTrack(track.id, { effectChain: updatedChain });
- }}
- onAddEffect={(effectType) => {
- const newEffect = createEffect(
- effectType,
- EFFECT_NAMES[effectType]
- );
- const updatedChain = {
- ...track.effectChain,
- effects: [...track.effectChain.effects, newEffect],
- };
- onUpdateTrack(track.id, { effectChain: updatedChain });
- }}
- />
+
+