Source formatting --check completed for 30 Swift files. Swift layout regression cases passed. Linting Swift files at paths ~/Developer/Projects/NeXTsound/App/Application/NeXTsoundApp.swift, ~/Developer/Projects/NeXTsound/App/Workbench/Package.swift, ~/Developer/Projects/NeXTsound/App/Workbench/Sources/NeXTsoundWorkbench/BandEditor.swift, ~/Developer/Projects/NeXTsound/App/Workbench/Sources/NeXTsoundWorkbench/EqualizerPlot.swift, ~/Developer/Projects/NeXTsound/App/Workbench/Sources/NeXTsoundWorkbench/ParameterControl.swift, ~/Developer/Projects/NeXTsound/App/Workbench/Sources/NeXTsoundWorkbench/ProfileDocument.swift, ~/Developer/Projects/NeXTsound/App/Workbench/Sources/NeXTsoundWorkbench/ProfileSidebar.swift, ~/Developer/Projects/NeXTsound/App/Workbench/Sources/NeXTsoundWorkbench/ResponseCurve.swift, ~/Developer/Projects/NeXTsound/App/Workbench/Sources/NeXTsoundWorkbench/ResponsePlotGeometry.swift, ~/Developer/Projects/NeXTsound/App/Workbench/Sources/NeXTsoundWorkbench/SignalChainInspector.swift, ~/Developer/Projects/NeXTsound/App/Workbench/Sources/NeXTsoundWorkbench/WorkbenchEditor.swift, ~/Developer/Projects/NeXTsound/App/Workbench/Sources/NeXTsoundWorkbench/WorkbenchLayout.swift, ~/Developer/Projects/NeXTsound/App/Workbench/Sources/NeXTsoundWorkbench/WorkbenchTheme.swift, ~/Developer/Projects/NeXTsound/App/Workbench/Sources/NeXTsoundWorkbench/WorkbenchView.swift, ~/Developer/Projects/NeXTsound/App/Workbench/Tests/NeXTsoundWorkbenchTests/PlotGeometryTests.swift, ~/Developer/Projects/NeXTsound/App/Workbench/Tests/NeXTsoundWorkbenchTests/ProfileDocumentTests.swift, ~/Developer/Projects/NeXTsound/App/Workbench/Tests/NeXTsoundWorkbenchTests/ResponseCurveTests.swift, ~/Developer/Projects/NeXTsound/App/Workbench/Tools/NeXTsoundWorkbenchRender/RenderWorkbench.swift, ~/Developer/Projects/NeXTsound/Scripts/swift-layout.swift, ~/Developer/Projects/NeXTsound/Shared/Package.swift, ~/Developer/Projects/NeXTsound/Shared/Sources/NeXTsoundCore/DSPSettings.swift, ~/Developer/Projects/NeXTsound/Shared/Sources/NeXTsoundCore/EQResponse.swift, ~/Developer/Projects/NeXTsound/Shared/Sources/NeXTsoundCore/FactoryPreset.swift, ~/Developer/Projects/NeXTsound/Shared/Sources/NeXTsoundCore/SoundProfile.swift, ~/Developer/Projects/NeXTsound/Shared/Sources/NeXTsoundCore/SpeakerEnclosure.swift, ~/Developer/Projects/NeXTsound/Shared/Sources/NeXTsoundCore/WireCodec.swift, ~/Developer/Projects/NeXTsound/Shared/Sources/NeXTsoundCore/WireModels.swift, ~/Developer/Projects/NeXTsound/Shared/Tests/NeXTsoundCoreTests/EQResponseTests.swift, ~/Developer/Projects/NeXTsound/Shared/Tests/NeXTsoundCoreTests/ProfileTests.swift, ~/Developer/Projects/NeXTsound/Shared/Tests/NeXTsoundCoreTests/WireCodecTests.swift Linting 'NeXTsoundApp.swift' (1/30) Linting 'ParameterControl.swift' (2/30) Linting 'BandEditor.swift' (3/30) Linting 'EqualizerPlot.swift' (4/30) Linting 'ResponseCurve.swift' (6/30) Linting 'ProfileSidebar.swift' (5/30) Linting 'ProfileDocument.swift' (7/30) Linting 'ResponsePlotGeometry.swift' (8/30) Linting 'WorkbenchEditor.swift' (9/30) Linting 'SignalChainInspector.swift' (10/30) Linting 'WorkbenchLayout.swift' (11/30) Linting 'WorkbenchTheme.swift' (12/30) Linting 'WorkbenchView.swift' (13/30) Linting 'PlotGeometryTests.swift' (14/30) Linting 'ProfileDocumentTests.swift' (15/30) Linting 'ResponseCurveTests.swift' (17/30) Linting 'swift-layout.swift' (16/30) Linting 'DSPSettings.swift' (18/30) Linting 'EQResponse.swift' (19/30) Linting 'FactoryPreset.swift' (20/30) Linting 'SoundProfile.swift' (21/30) Linting 'SpeakerEnclosure.swift' (22/30) Linting 'WireCodec.swift' (23/30) Linting 'WireModels.swift' (24/30) Linting 'ProfileTests.swift' (25/30) Linting 'WireCodecTests.swift' (26/30) Linting 'EQResponseTests.swift' (27/30) Linting 'RenderWorkbench.swift' (28/30) Linting 'App/Workbench/Package.swift' (29/30) Linting 'Shared/Package.swift' (30/30) Done linting! Found 0 violations, 0 serious in 30 files. Arm 15.3.1 and Pico SDK a1438dff1d38bd9c65dbd693f0e5db4b9ae91779 ready. PICO_SDK_PATH is ~/Developer/Projects/NeXTsound/.tools/pico-sdk Target board (PICO_BOARD) is 'waveshare_rp2350_zero'. Using board configuration from ~/Developer/Projects/NeXTsound/.tools/pico-sdk/src/boards/include/boards/waveshare_rp2350_zero.h Pico Platform (PICO_PLATFORM) is 'rp2350-arm-s'. Build type is Release Forcing fetch of picotool from git Downloading Picotool Using picotool from ~/Developer/Projects/NeXTsound/.tools/picotool/picotool/picotool TinyUSB available at ~/Developer/Projects/NeXTsound/.tools/pico-sdk/lib/tinyusb/hw/bsp/rp2040; enabling build support for USB. -- Configuring done (0.6s) -- Generating done (0.1s) -- Build files have been written to: ~/Developer/Projects/NeXTsound/.build/firmware [1/5] cd ~/Developer/Projects/NeXTsound/.build/firmware/pico-sdk/src/rp2350/boot_stage2 && /opt/homebrew/bin/cmake -E touch_nocreate ~/Developer/Projects/NeXTsound/Firmware/CMakeLists.txt [2/5] Performing build step for 'picotoolBuild' [1/3] Performing build step for 'enc_bootloader' ninja: no work to do. [2/3] No install step for 'enc_bootloader' [3/3] Completed 'enc_bootloader' [3/5] Performing install step for 'picotoolBuild' [1/4] Performing build step for 'enc_bootloader' ninja: no work to do. [2/4] No install step for 'enc_bootloader' [3/4] Completed 'enc_bootloader' [3/4] Install the project... -- Install configuration: "Release" [4/5] Performing test step for 'picotoolBuild' picotool v2.3.1 (Darwin, AppleClang-21.0.0.21000334, Release) This version of picotool was compiled without USB support. Some commands are not available. [5/5] Completed 'picotoolBuild' SRAM-only ELF: 2 load segments; entry 0x20000178 SRAM guard rejects the flash-linked negative control. Storage linker guard accepts the boundary and rejects a one-byte overlap. text data bss dec hex filename 67204 0 18772 85976 14fd8 ~/Developer/Projects/NeXTsound/.build/firmware/nxs_firmware.elf File ~/Developer/Projects/NeXTsound/.build/firmware/nxs_firmware.uf2 family ID 'rp2350-arm-s': Program Information name: NeXTsound development firmware version: 74c1c8ab-dirty description: USB audio and HID control mono I2S muted start binary start: 0x10000000 binary end: 0x1000ee84 target chip: RP2350 image type: ARM Secure Fixed Pin Information none Build Information sdk version: 2.2.0 pico_board: waveshare_rp2350_zero boot2_name: boot2_generic_03h build date: Oct 18 2026 build attributes: Release Metadata Block 1 address: 0x10000138 next block address: 0x1000ee70 block type: image def target chip: RP2350 image type: ARM Secure extra security: not enabled Metadata Block 2 address: 0x1000ee70 next block address: 0x10000138 block type: ignored -- Configuring done (0.1s) -- Generating done (0.0s) -- Build files have been written to: ~/Developer/Projects/NeXTsound/.build/c-protocol ninja: no work to do. Test project ~/Developer/Projects/NeXTsound/.build/c-protocol Start 1: protocol 1/18 Test #1: protocol ......................... Passed 0.02 sec Start 2: dsp 2/18 Test #2: dsp .............................. Passed 0.08 sec Start 3: device 3/18 Test #3: device ........................... Passed 0.01 sec Start 4: storage 4/18 Test #4: storage .......................... Passed 0.18 sec Start 5: flash_geometry 5/18 Test #5: flash_geometry ................... Passed 0.01 sec Start 6: audio 6/18 Test #6: audio ............................ Passed 0.01 sec Start 7: render 7/18 Test #7: render ........................... Passed 0.01 sec Start 8: pio 8/18 Test #8: pio .............................. Passed 0.01 sec Start 9: descriptor 9/18 Test #9: descriptor ....................... Passed 0.01 sec Start 10: reset 10/18 Test #10: reset ............................ Passed 0.01 sec Start 11: control 11/18 Test #11: control .......................... Passed 0.01 sec Start 12: control_mount 12/18 Test #12: control_mount .................... Passed 0.01 sec Start 13: control_packet 13/18 Test #13: control_packet ................... Passed 0.01 sec Start 14: control_short-read 14/18 Test #14: control_short-read ............... Passed 0.01 sec Start 15: control_inflight 15/18 Test #15: control_inflight ................. Passed 0.01 sec Start 16: control_storage-status 16/18 Test #16: control_storage-status ........... Passed 0.01 sec Start 17: control_storage-flow 17/18 Test #17: control_storage-flow ............. Passed 0.01 sec Start 18: control_reset-flow 18/18 Test #18: control_reset-flow ............... Passed 0.01 sec 100% tests passed out of 18 Total Test time (real) = 0.46 sec Building for debugging... [4 / 24] [9 / 26] [14 / 36] [22 / 36] NeXTsoundCore [24 / 34] NeXTsoundCore [27 / 33] NeXTsoundCoreTests-product [33 / 38] NeXTsoundCoreTests-product [35 / 38] NeXTsoundCoreTests-product [37 / 41] NeXTsoundCoreTests-product Build complete! (1,62 sec) Test Suite 'All tests' started at 2026-10-18 17:04:58.872. Test Suite 'All tests' passed at 2026-10-18 17:04:58.877. Executed 0 tests, with 0 failures (0 unexpected) in 0.000 (0.005) seconds 􀟈 Test run started. 􀄵 Testing Library Version: 2084 􀄵 Target Platform: arm64e-apple-macos14.0 􀟈 Suite EQResponseTests started. 􀟈 Suite WireCodecTests started. 􀟈 Suite ProfileTests started. 􀟈 Test highPassHasTheButterworthCutoffResponse() started. 􀟈 Test peakingResponseUsesTheFirmwareCoefficients() started. 􀟈 Test rejectsInvalidSettings() started. 􀟈 Test rejectsInvalidFrequencies(_:) started. 􀟈 Test previewExcludesMuteAttenuationAndNonlinearLimiting() started. 􀟈 Test rejectsIncorrectReportLengths(_:) started. 􀟈 Test runtimeStatusRoundTripPreservesDiagnostics() started. 􀟈 Test rejectsPersistenceWithoutVerifiedFlash() started. 􀟈 Test rejectsEmbeddedNullsInDeviceStrings() started. 􀟈 Test snapshotRoundTripPreservesIdentityAndParameters() started. 􀟈 Test rejectsOversizedPayloadAndInvalidRequestID() started. 􀟈 Test acknowledgementsRequireMatchingRequestAndOperation() started. 􀟈 Test capabilityRoundTripUsesTheSharedBounds() started. 􀟈 Test rejectsInvalidFrequencies(_:) started. 􀟈 Test case passing 1 argument frequency → 0.0 to rejectsInvalidFrequencies(_:) started. 􀟈 Test matchesTheSharedGoldenPacket() started. 􀟈 Test rejectsUnknownVersionsAndDirtyPadding() started. 􀟈 Test case passing 1 argument frequency → -1.0 to rejectsInvalidFrequencies(_:) started. 􀟈 Test case passing 1 argument frequency → 24000.0 to rejectsInvalidFrequencies(_:) started. 􀟈 Test rejectsTheWrongNumberOfBands() started. 􀟈 Test case passing 1 argument length → 0 to rejectsIncorrectReportLengths(_:) started. 􀟈 Test case passing 1 argument length → 19 to rejectsIncorrectReportLengths(_:) started. 􀟈 Test case passing 1 argument length → 1 to rejectsIncorrectReportLengths(_:) started. 􀟈 Test case passing 1 argument frequency → inf to rejectsInvalidFrequencies(_:) started. 􀟈 Test case passing 1 argument length → 20 to rejectsIncorrectReportLengths(_:) started. 􀟈 Test case passing 1 argument frequency → nan to rejectsInvalidFrequencies(_:) started. 􀟈 Test case passing 1 argument length → 119 to rejectsIncorrectReportLengths(_:) started. 􀟈 Test case passing 1 argument length → 255 to rejectsIncorrectReportLengths(_:) started. 􀟈 Test case passing 1 argument length → 257 to rejectsIncorrectReportLengths(_:) started. 􀟈 Test case passing 1 argument length → 512 to rejectsIncorrectReportLengths(_:) started. 􀟈 Test unknownSpeakerAndVolumeDataRemainAbsent() started. 􀟈 Test jsonDecoderAlsoRejectsInvalidProfileContents() started. 􀟈 Test catalogChangesDoNotAlterProfileSnapshots() started. 􀟈 Test rejectsAnEmptyProfileName() started. 􀟈 Test rejectsUnknownProfileVersionsBeforeDecodingTheirContents() started. 􀟈 Test invalidRevisionsCannotWrapOrBeSaved() started. 􀟈 Test invalidSpeakerValuesAreRejected(_:) started. 􀟈 Test directEncodersRejectInvalidProfiles() started. 􀟈 Test datasheetSpecificationsRequireASource() started. 􀟈 Test namedProfileRoundTripPreservesSpeakerAndEnclosure() started. 􀟈 Test factoryPresetsAreMutedListeningStartingPoints() started. 􀟈 Test case passing 1 argument frequency → nan to rejectsInvalidFrequencies(_:) started. 􀟈 Test case passing 1 argument frequency → inf to rejectsInvalidFrequencies(_:) started. 􀟈 Test case passing 1 argument frequency → -inf to rejectsInvalidFrequencies(_:) started. 􀟈 Test case passing 1 argument frequency → 0.0 to rejectsInvalidFrequencies(_:) started. 􀟈 Test invalidEnclosuresCannotBeSaved() started. 􀟈 Test case passing 1 argument frequency → 25000.0 to rejectsInvalidFrequencies(_:) started. 􁁛 Test peakingResponseUsesTheFirmwareCoefficients() passed after 0.001 seconds. 􁁛 Test highPassHasTheButterworthCutoffResponse() passed after 0.001 seconds. 􁁛 Test previewExcludesMuteAttenuationAndNonlinearLimiting() passed after 0.001 seconds. 􁁛 Test rejectsInvalidSettings() passed after 0.001 seconds. 􁁛 Test runtimeStatusRoundTripPreservesDiagnostics() passed after 0.001 seconds. 􁁛 Test rejectsInvalidFrequencies(_:) with 5 test cases passed after 0.001 seconds. 􁁛 Test rejectsEmbeddedNullsInDeviceStrings() passed after 0.001 seconds. 􀟈 Test case passing 1 argument impedance → 0.0 to invalidSpeakerValuesAreRejected(_:) started. 􀟈 Test case passing 1 argument impedance → -1.0 to invalidSpeakerValuesAreRejected(_:) started. 􁁛 Test rejectsPersistenceWithoutVerifiedFlash() passed after 0.001 seconds. 􀟈 Test case passing 1 argument impedance → inf to invalidSpeakerValuesAreRejected(_:) started. 􀟈 Test case passing 1 argument impedance → -inf to invalidSpeakerValuesAreRejected(_:) started. 􀟈 Test case passing 1 argument impedance → nan to invalidSpeakerValuesAreRejected(_:) started. 􁁛 Test snapshotRoundTripPreservesIdentityAndParameters() passed after 0.001 seconds. 􁁛 Test rejectsInvalidFrequencies(_:) with 5 test cases passed after 0.001 seconds. 􁁛 Test capabilityRoundTripUsesTheSharedBounds() passed after 0.001 seconds. 􁁛 Test rejectsTheWrongNumberOfBands() passed after 0.001 seconds. 􁁛 Test rejectsIncorrectReportLengths(_:) with 8 test cases passed after 0.002 seconds. 􁁛 Test acknowledgementsRequireMatchingRequestAndOperation() passed after 0.001 seconds. 􁁛 Test catalogChangesDoNotAlterProfileSnapshots() passed after 0.001 seconds. 􁁛 Test rejectsUnknownVersionsAndDirtyPadding() passed after 0.002 seconds. 􁁛 Test rejectsAnEmptyProfileName() passed after 0.001 seconds. 􁁛 Test datasheetSpecificationsRequireASource() passed after 0.001 seconds. 􁁛 Suite EQResponseTests passed after 0.002 seconds. 􁁛 Test invalidEnclosuresCannotBeSaved() passed after 0.001 seconds. 􁁛 Test rejectsUnknownProfileVersionsBeforeDecodingTheirContents() passed after 0.001 seconds. 􁁛 Test invalidSpeakerValuesAreRejected(_:) with 5 test cases passed after 0.001 seconds. 􁁛 Test unknownSpeakerAndVolumeDataRemainAbsent() passed after 0.001 seconds. 􁁛 Test factoryPresetsAreMutedListeningStartingPoints() passed after 0.001 seconds. 􁁛 Test rejectsOversizedPayloadAndInvalidRequestID() passed after 0.001 seconds. 􁁛 Test directEncodersRejectInvalidProfiles() passed after 0.001 seconds. 􁁛 Test invalidRevisionsCannotWrapOrBeSaved() passed after 0.001 seconds. 􁁛 Test jsonDecoderAlsoRejectsInvalidProfileContents() passed after 0.001 seconds. 􁁛 Test namedProfileRoundTripPreservesSpeakerAndEnclosure() passed after 0.001 seconds. 􁁛 Suite ProfileTests passed after 0.002 seconds. 􁁛 Test matchesTheSharedGoldenPacket() passed after 0.006 seconds. 􁁛 Suite WireCodecTests passed after 0.006 seconds. 􁁛 Test run with 29 tests in 3 suites passed after 0.007 seconds. Building for production... [4 / 17] [10 / 19] NeXTsoundCore [15 / 23] [16 / 23] NeXTsoundCore Build complete! (1,52 sec) Building for debugging... [1 / 19] [2 / 13] NeXTsoundWorkbench [4 / 17] [6 / 17] NeXTsoundWorkbench [14 / 20] NeXTsoundWorkbenchTests-product [19 / 25] NeXTsoundWorkbenchTests-product [23 / 27] NeXTsoundWorkbenchTests-product [25 / 27] NeXTsoundWorkbenchTests-product Build complete! (1,84 sec) Test Suite 'All tests' started at 2026-10-18 17:05:03.765. Test Suite 'All tests' passed at 2026-10-18 17:05:03.770. Executed 0 tests, with 0 failures (0 unexpected) in 0.000 (0.005) seconds 􀟈 Test run started. 􀄵 Testing Library Version: 2084 􀄵 Target Platform: arm64e-apple-macos14.0 􀟈 Suite ResponseCurveTests started. 􀟈 Suite ProfileDocumentTests started. 􀟈 Suite PlotGeometryTests started. 􀟈 Test logarithmicControlsHaveExactEndsAndRoundTrip() started. 􀟈 Test invalidResponseRequestsAreRejected() started. 􀟈 Test previewExcludesMuteAttenuationAndLimiter() started. 􀟈 Test nonfiniteDisplayCoordinatesCannotProduceNaNSliderValues() started. 􀟈 Test identityAndRevisionCannotBeReplacedByAnEdit() started. 􀟈 Test graphCoordinatesStayInsideTheirPlot() started. 􀟈 Test revisionExhaustionLeavesTheDocumentUnchanged() started. 􀟈 Test unchangedEditsDoNotAdvanceRevision() started. 􀟈 Test extremeGainClipsOnlyTheDisplayCoordinate() started. 􀟈 Test invalidLogarithmicBoundsAreRejected() started. 􀟈 Test presetsPreserveTheDocumentAndItsContext() started. 􀟈 Test unsupportedFormatsAreRejected() started. 􀟈 Test failedMutationsLeaveTheDocumentUnchanged() started. 􀟈 Test documentRoundTripPreservesCanonicalData() started. 􀟈 Test invalidSettingsLeaveTheDocumentUnchanged() started. 􀟈 Test sampledResponseUsesTheSharedAnalyticalResponse() started. 􀟈 Test directoriesAndMalformedFilesAreRejected() started. 􀟈 Test editsAdvanceRevisionWithoutReplacingIdentity() started. 􀟈 Test newDocumentsStartMutedWithUnknownContext() started. 􀟈 Test incompleteNamesCanBeEditedButNotSaved() started. 􁁛 Test nonfiniteDisplayCoordinatesCannotProduceNaNSliderValues() passed after 0.001 seconds. 􁁛 Test graphCoordinatesStayInsideTheirPlot() passed after 0.001 seconds. 􁁛 Test logarithmicControlsHaveExactEndsAndRoundTrip() passed after 0.001 seconds. 􁁛 Test invalidLogarithmicBoundsAreRejected() passed after 0.001 seconds. 􁁛 Test extremeGainClipsOnlyTheDisplayCoordinate() passed after 0.001 seconds. 􁁛 Test revisionExhaustionLeavesTheDocumentUnchanged() passed after 0.001 seconds. 􁁛 Test sampledResponseUsesTheSharedAnalyticalResponse() passed after 0.001 seconds. 􁁛 Test editsAdvanceRevisionWithoutReplacingIdentity() passed after 0.001 seconds. 􁁛 Test newDocumentsStartMutedWithUnknownContext() passed after 0.001 seconds. 􁁛 Test presetsPreserveTheDocumentAndItsContext() passed after 0.001 seconds. 􁁛 Test incompleteNamesCanBeEditedButNotSaved() passed after 0.001 seconds. 􁁛 Test unchangedEditsDoNotAdvanceRevision() passed after 0.001 seconds. 􁁛 Test previewExcludesMuteAttenuationAndLimiter() passed after 0.001 seconds. 􁁛 Suite PlotGeometryTests passed after 0.001 seconds. 􁁛 Test identityAndRevisionCannotBeReplacedByAnEdit() passed after 0.001 seconds. 􁁛 Test invalidSettingsLeaveTheDocumentUnchanged() passed after 0.001 seconds. 􁁛 Test invalidResponseRequestsAreRejected() passed after 0.001 seconds. 􁁛 Suite ResponseCurveTests passed after 0.001 seconds. 􁁛 Test unsupportedFormatsAreRejected() passed after 0.001 seconds. 􁁛 Test documentRoundTripPreservesCanonicalData() passed after 0.002 seconds. 􁁛 Test failedMutationsLeaveTheDocumentUnchanged() passed after 0.004 seconds. 􁁛 Test directoriesAndMalformedFilesAreRejected() passed after 0.005 seconds. 􁁛 Suite ProfileDocumentTests passed after 0.005 seconds. 􁁛 Test run with 20 tests in 3 suites passed after 0.005 seconds. Building for production... [5 / 20] [11 / 22] NeXTsoundCore [16 / 26] [17 / 26] NeXTsoundCore [20 / 28] NeXTsoundWorkbench [22 / 29] NeXTsoundWorkbench [28 / 31] NeXTsoundWorkbenchRender-product [29 / 32] NeXTsoundWorkbenchRender-product [31 / 32] NeXTsoundWorkbenchRender-product [32 / 32] NeXTsoundWorkbenchRender-product Build complete! (3,53 sec) Building for debugging... [8 / 24] NeXTsoundProtocol [14 / 35] NeXTsoundDSP [23 / 35] NeXTsoundCore [26 / 38] NeXTsoundCore [40 / 50] NeXTsoundWorkbench [43 / 48] NeXTsoundWorkbench [46 / 50] NeXTsoundWorkbenchRender-product [47 / 50] NeXTsoundWorkbenchRender-product [49 / 50] NeXTsoundWorkbenchRender-product Build complete! (1,71 sec) ⚙️ Generating plists... ⚙️ Generating project... ⚙️ Writing project... Created project at ~/Developer/Projects/NeXTsound/App/NeXTsound.xcodeproj Debug app: ~/Developer/Projects/NeXTsound/.build/macOS/Build/Products/Debug/NeXTsound.app Release app: ~/Developer/Projects/NeXTsound/.build/macOS/Build/Products/Release/NeXTsound.app