From cec8b744dea86fb84a361e9f5940a95620d98977 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Michelle?= Date: Fri, 20 Mar 2026 07:15:53 +0100 Subject: [PATCH] fixes 854 --- .../audio-unit/regions/RegionLoopDurationModifier.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/app/studio/src/ui/timeline/tracks/audio-unit/regions/RegionLoopDurationModifier.ts b/packages/app/studio/src/ui/timeline/tracks/audio-unit/regions/RegionLoopDurationModifier.ts index 965113f2..51041b59 100644 --- a/packages/app/studio/src/ui/timeline/tracks/audio-unit/regions/RegionLoopDurationModifier.ts +++ b/packages/app/studio/src/ui/timeline/tracks/audio-unit/regions/RegionLoopDurationModifier.ts @@ -1,5 +1,5 @@ import {RegionModifier} from "@/ui/timeline/tracks/audio-unit/regions/RegionModifier.ts" -import {Arrays, int, Option} from "@opendaw/lib-std" +import {Arrays, int, isNotNull, Option} from "@opendaw/lib-std" import {ppqn, PPQN, RegionCollection} from "@opendaw/lib-dsp" import { AnyLoopableRegionBoxAdapter, @@ -113,8 +113,11 @@ export class RegionLoopDurationModifier implements RegionModifier { approve(): void { const modifiedTracks: ReadonlyArray = - Arrays.removeDuplicates(this.#adapters.map(adapter => adapter.trackBoxAdapter.unwrap())) - const result = this.#adapters.map(region => + Arrays.removeDuplicates(this.#adapters + .map(adapter => adapter.trackBoxAdapter.unwrapOrNull()) + .filter(isNotNull)) + const adapters = this.#adapters.filter(({box}) => box.isAttached()) + const result = adapters.map(region => ({ region, duration: this.#selectedModifyStrategy.readDuration(region), @@ -134,7 +137,7 @@ export class RegionLoopDurationModifier implements RegionModifier { })), trackSnapshots }) - this.#project.overlapResolver.apply(modifiedTracks, this.#adapters, this, 0, (_trackResolver) => { + this.#project.overlapResolver.apply(modifiedTracks, adapters, this, 0, (_trackResolver) => { result.forEach(({region, duration, loopDuration}) => { region.duration = duration region.loopDuration = loopDuration