Build Information
Successful build of Keyboard with Swift 6.0 for macOS (SPM).
Swift 6 data race errors: 8
Build Command
env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Build Log
========================================
RunAll
========================================
Builder version: 4.40.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/AudioKit/Keyboard.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/AudioKit/Keyboard
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at 989c0d7 Sign to run locally
Cloned https://github.com/AudioKit/Keyboard.git
Revision (git rev-parse @):
989c0d7c402107e512ec5092a2a6d819f48466c9
SPI manifest file found: $workDir/.spi.yml
SUCCESS checkout https://github.com/AudioKit/Keyboard.git at main
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.0
Building package at path: $workDir
https://github.com/AudioKit/Keyboard.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Building for debugging...
[0/4] Write sources
[2/4] Copying Tonic.docc
[3/4] Write swift-version-6F35C1178C84523A.txt
[5/24] Emitting module Tonic
[6/26] Compiling Tonic NoteClass.swift
[7/26] Compiling Tonic NoteSet.swift
[8/26] Compiling Tonic ChordType.swift
[9/26] Compiling Tonic Interval.swift
[10/26] Compiling Tonic Octave.swift
[11/26] Compiling Tonic Pitch.swift
[12/26] Compiling Tonic Chord.swift
[13/26] Compiling Tonic ChordTable.swift
[14/26] Compiling Tonic Scale.swift
[15/26] Compiling Tonic resource_bundle_accessor.swift
[16/26] Compiling Tonic Letter.swift
[17/26] Compiling Tonic Note+Shortcuts.swift
[18/26] Compiling Tonic PitchColor.swift
[19/26] Compiling Tonic Scale+Shortcuts.swift
[20/26] Compiling Tonic Note.swift
[21/26] Compiling Tonic NoteClass+Shortcuts.swift
[22/26] Compiling Tonic Accidental.swift
[23/26] Compiling Tonic BitSet.swift
[24/26] Compiling Tonic Chord+Shortcuts.swift
[25/26] Compiling Tonic Key+Shortcuts.swift
[26/26] Compiling Tonic Key.swift
[27/40] Compiling Keyboard VerticalPiano.swift
[28/41] Compiling Keyboard VerticalIsomorphic.swift
[29/41] Compiling Keyboard MultitouchView.swift
[30/41] Compiling Keyboard PianoSpacer.swift
/Users/admin/builder/spi-builder-workspace/Sources/Keyboard/Layouts/PianoSpacer.swift:7:23: warning: static property 'defaultInitialSpacerRatio' is not concurrency-safe because non-'Sendable' type '[Letter : CGFloat]' may have shared mutable state; this is an error in the Swift 6 language mode
5 |
6 | public struct PianoSpacer {
7 | public static let defaultInitialSpacerRatio: [Letter: CGFloat] = [
| `- warning: static property 'defaultInitialSpacerRatio' is not concurrency-safe because non-'Sendable' type '[Letter : CGFloat]' may have shared mutable state; this is an error in the Swift 6 language mode
8 | .C: 0.0,
9 | .D: 3.0 / 16.0,
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Tonic/Sources/Tonic/Letter.swift:9:13: note: enum 'Letter' does not conform to the 'Sendable' protocol
7 | /// These letters can be modified by adding an ``Accidental`` to describe any ``NoteClass``.
8 | /// And by specificying an octave, you can create any ``Note``.
9 | public enum Letter: Int, CaseIterable, Equatable, Hashable, Codable {
| `- note: enum 'Letter' does not conform to the 'Sendable' protocol
10 | case C, D, E, F, G, A, B
11 |
/Users/admin/builder/spi-builder-workspace/Sources/Keyboard/Layouts/PianoSpacer.swift:4:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Tonic'
2 |
3 | import SwiftUI
4 | import Tonic
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Tonic'
5 |
6 | public struct PianoSpacer {
7 | public static let defaultInitialSpacerRatio: [Letter: CGFloat] = [
| |- note: annotate 'defaultInitialSpacerRatio' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
8 | .C: 0.0,
9 | .D: 3.0 / 16.0,
/Users/admin/builder/spi-builder-workspace/Sources/Keyboard/Layouts/PianoSpacer.swift:16:23: warning: static property 'defaultSpacerRatio' is not concurrency-safe because non-'Sendable' type '[Letter : CGFloat]' may have shared mutable state; this is an error in the Swift 6 language mode
14 | .B: 6.0 / 16.0
15 | ]
16 | public static let defaultSpacerRatio: [Letter: CGFloat] = [
| |- warning: static property 'defaultSpacerRatio' is not concurrency-safe because non-'Sendable' type '[Letter : CGFloat]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'defaultSpacerRatio' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 | .C: 10.0 / 16.0,
18 | .D: 10.0 / 16.0,
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Tonic/Sources/Tonic/Letter.swift:9:13: note: enum 'Letter' does not conform to the 'Sendable' protocol
7 | /// These letters can be modified by adding an ``Accidental`` to describe any ``NoteClass``.
8 | /// And by specificying an octave, you can create any ``Note``.
9 | public enum Letter: Int, CaseIterable, Equatable, Hashable, Codable {
| `- note: enum 'Letter' does not conform to the 'Sendable' protocol
10 | case C, D, E, F, G, A, B
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Tonic/Sources/Tonic/Key+Shortcuts.swift:34:16: warning: static property 'C' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
32 |
33 | /// C Major
34 | static let C = Key(root: NoteClass(.C), scale: .major)
| |- warning: static property 'C' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'C' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
35 |
36 | /// G Major
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Tonic/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
6 | ///
7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
8 | public struct Key: Equatable {
| `- note: consider making struct 'Key' conform to the 'Sendable' protocol
9 | /// The primary note class of the key, also known as the tonic
10 | public let root: NoteClass
[31/41] Compiling Keyboard KeyboardLayout.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Tonic/Sources/Tonic/NoteClass+Shortcuts.swift:9:16: warning: static property 'C' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
7 | static var Cb = NoteClass(.C, accidental: .flat)
8 | /// C
9 | static var C = NoteClass(.C)
| |- warning: static property 'C' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'C' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'C' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
10 | /// C♯
11 | static var Cs = NoteClass(.C, accidental: .sharp)
/Users/admin/builder/spi-builder-workspace/Sources/Keyboard/Layouts/KeyboardLayout.swift:13:40: warning: reference to static property 'C' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
11 | /// All notes linearly right after one another
12 | case isomorphic(pitchRange: ClosedRange<Pitch>,
13 | root: NoteClass = .C,
| `- warning: reference to static property 'C' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
14 | scale: Scale = .chromatic)
15 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Tonic/Sources/Tonic/NoteClass+Shortcuts.swift:9:16: note: static property declared here
7 | static var Cb = NoteClass(.C, accidental: .flat)
8 | /// C
9 | static var C = NoteClass(.C)
| `- note: static property declared here
10 | /// C♯
11 | static var Cs = NoteClass(.C, accidental: .sharp)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Tonic/Sources/Tonic/Scale+Shortcuts.swift:66:16: warning: static property 'chromatic' is not concurrency-safe because non-'Sendable' type 'Scale' may have shared mutable state; this is an error in the Swift 6 language mode
64 |
65 | /// Chromatic scale
66 | static let chromatic = Scale(intervals: [.P1, .m2, .M2, .m3, .M3, .P4, .d5, .P5, .m6, .M6, .m7, .M7], description: "Chromatic")
| |- warning: static property 'chromatic' is not concurrency-safe because non-'Sendable' type 'Scale' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'chromatic' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
67 |
68 | /// Roumanian minor scale
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Tonic/Sources/Tonic/Scale.swift:6:15: note: consider making struct 'Scale' conform to the 'Sendable' protocol
4 |
5 | /// A set of intervals from the root (tonic).
6 | public struct Scale: OptionSet, Hashable {
| `- note: consider making struct 'Scale' conform to the 'Sendable' protocol
7 | public let rawValue: Int
8 |
/Users/admin/builder/spi-builder-workspace/Sources/Keyboard/Layouts/PianoSpacer.swift:7:23: warning: static property 'defaultInitialSpacerRatio' is not concurrency-safe because non-'Sendable' type '[Letter : CGFloat]' may have shared mutable state; this is an error in the Swift 6 language mode
5 |
6 | public struct PianoSpacer {
7 | public static let defaultInitialSpacerRatio: [Letter: CGFloat] = [
| `- warning: static property 'defaultInitialSpacerRatio' is not concurrency-safe because non-'Sendable' type '[Letter : CGFloat]' may have shared mutable state; this is an error in the Swift 6 language mode
8 | .C: 0.0,
9 | .D: 3.0 / 16.0,
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Tonic/Sources/Tonic/Letter.swift:9:13: note: enum 'Letter' does not conform to the 'Sendable' protocol
7 | /// These letters can be modified by adding an ``Accidental`` to describe any ``NoteClass``.
8 | /// And by specificying an octave, you can create any ``Note``.
9 | public enum Letter: Int, CaseIterable, Equatable, Hashable, Codable {
| `- note: enum 'Letter' does not conform to the 'Sendable' protocol
10 | case C, D, E, F, G, A, B
11 |
/Users/admin/builder/spi-builder-workspace/Sources/Keyboard/Layouts/PianoSpacer.swift:4:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Tonic'
2 |
3 | import SwiftUI
4 | import Tonic
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Tonic'
5 |
6 | public struct PianoSpacer {
7 | public static let defaultInitialSpacerRatio: [Letter: CGFloat] = [
| |- note: annotate 'defaultInitialSpacerRatio' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
8 | .C: 0.0,
9 | .D: 3.0 / 16.0,
/Users/admin/builder/spi-builder-workspace/Sources/Keyboard/Layouts/PianoSpacer.swift:16:23: warning: static property 'defaultSpacerRatio' is not concurrency-safe because non-'Sendable' type '[Letter : CGFloat]' may have shared mutable state; this is an error in the Swift 6 language mode
14 | .B: 6.0 / 16.0
15 | ]
16 | public static let defaultSpacerRatio: [Letter: CGFloat] = [
| |- warning: static property 'defaultSpacerRatio' is not concurrency-safe because non-'Sendable' type '[Letter : CGFloat]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'defaultSpacerRatio' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 | .C: 10.0 / 16.0,
18 | .D: 10.0 / 16.0,
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Tonic/Sources/Tonic/Letter.swift:9:13: note: enum 'Letter' does not conform to the 'Sendable' protocol
7 | /// These letters can be modified by adding an ``Accidental`` to describe any ``NoteClass``.
8 | /// And by specificying an octave, you can create any ``Note``.
9 | public enum Letter: Int, CaseIterable, Equatable, Hashable, Codable {
| `- note: enum 'Letter' does not conform to the 'Sendable' protocol
10 | case C, D, E, F, G, A, B
11 |
/Users/admin/builder/spi-builder-workspace/Sources/Keyboard/Layouts/KeyboardLayout.swift:25:48: warning: reference to static property 'C' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
23 | /// For piano roll, jam strip type views
24 | case verticalIsomorphic(pitchRange: ClosedRange<Pitch>,
25 | root: NoteClass = .C,
| `- warning: reference to static property 'C' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
26 | scale: Scale = .chromatic)
27 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Tonic/Sources/Tonic/NoteClass+Shortcuts.swift:9:16: note: static property declared here
7 | static var Cb = NoteClass(.C, accidental: .flat)
8 | /// C
9 | static var C = NoteClass(.C)
| `- note: static property declared here
10 | /// C♯
11 | static var Cs = NoteClass(.C, accidental: .sharp)
[32/41] Compiling Keyboard Piano.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Tonic/Sources/Tonic/NoteClass+Shortcuts.swift:9:16: warning: static property 'C' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
7 | static var Cb = NoteClass(.C, accidental: .flat)
8 | /// C
9 | static var C = NoteClass(.C)
| |- warning: static property 'C' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'C' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'C' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
10 | /// C♯
11 | static var Cs = NoteClass(.C, accidental: .sharp)
/Users/admin/builder/spi-builder-workspace/Sources/Keyboard/Layouts/KeyboardLayout.swift:13:40: warning: reference to static property 'C' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
11 | /// All notes linearly right after one another
12 | case isomorphic(pitchRange: ClosedRange<Pitch>,
13 | root: NoteClass = .C,
| `- warning: reference to static property 'C' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
14 | scale: Scale = .chromatic)
15 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Tonic/Sources/Tonic/NoteClass+Shortcuts.swift:9:16: note: static property declared here
7 | static var Cb = NoteClass(.C, accidental: .flat)
8 | /// C
9 | static var C = NoteClass(.C)
| `- note: static property declared here
10 | /// C♯
11 | static var Cs = NoteClass(.C, accidental: .sharp)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Tonic/Sources/Tonic/Scale+Shortcuts.swift:66:16: warning: static property 'chromatic' is not concurrency-safe because non-'Sendable' type 'Scale' may have shared mutable state; this is an error in the Swift 6 language mode
64 |
65 | /// Chromatic scale
66 | static let chromatic = Scale(intervals: [.P1, .m2, .M2, .m3, .M3, .P4, .d5, .P5, .m6, .M6, .m7, .M7], description: "Chromatic")
| |- warning: static property 'chromatic' is not concurrency-safe because non-'Sendable' type 'Scale' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'chromatic' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
67 |
68 | /// Roumanian minor scale
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Tonic/Sources/Tonic/Scale.swift:6:15: note: consider making struct 'Scale' conform to the 'Sendable' protocol
4 |
5 | /// A set of intervals from the root (tonic).
6 | public struct Scale: OptionSet, Hashable {
| `- note: consider making struct 'Scale' conform to the 'Sendable' protocol
7 | public let rawValue: Int
8 |
/Users/admin/builder/spi-builder-workspace/Sources/Keyboard/Layouts/PianoSpacer.swift:7:23: warning: static property 'defaultInitialSpacerRatio' is not concurrency-safe because non-'Sendable' type '[Letter : CGFloat]' may have shared mutable state; this is an error in the Swift 6 language mode
5 |
6 | public struct PianoSpacer {
7 | public static let defaultInitialSpacerRatio: [Letter: CGFloat] = [
| `- warning: static property 'defaultInitialSpacerRatio' is not concurrency-safe because non-'Sendable' type '[Letter : CGFloat]' may have shared mutable state; this is an error in the Swift 6 language mode
8 | .C: 0.0,
9 | .D: 3.0 / 16.0,
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Tonic/Sources/Tonic/Letter.swift:9:13: note: enum 'Letter' does not conform to the 'Sendable' protocol
7 | /// These letters can be modified by adding an ``Accidental`` to describe any ``NoteClass``.
8 | /// And by specificying an octave, you can create any ``Note``.
9 | public enum Letter: Int, CaseIterable, Equatable, Hashable, Codable {
| `- note: enum 'Letter' does not conform to the 'Sendable' protocol
10 | case C, D, E, F, G, A, B
11 |
/Users/admin/builder/spi-builder-workspace/Sources/Keyboard/Layouts/PianoSpacer.swift:4:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Tonic'
2 |
3 | import SwiftUI
4 | import Tonic
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Tonic'
5 |
6 | public struct PianoSpacer {
7 | public static let defaultInitialSpacerRatio: [Letter: CGFloat] = [
| |- note: annotate 'defaultInitialSpacerRatio' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
8 | .C: 0.0,
9 | .D: 3.0 / 16.0,
/Users/admin/builder/spi-builder-workspace/Sources/Keyboard/Layouts/PianoSpacer.swift:16:23: warning: static property 'defaultSpacerRatio' is not concurrency-safe because non-'Sendable' type '[Letter : CGFloat]' may have shared mutable state; this is an error in the Swift 6 language mode
14 | .B: 6.0 / 16.0
15 | ]
16 | public static let defaultSpacerRatio: [Letter: CGFloat] = [
| |- warning: static property 'defaultSpacerRatio' is not concurrency-safe because non-'Sendable' type '[Letter : CGFloat]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'defaultSpacerRatio' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 | .C: 10.0 / 16.0,
18 | .D: 10.0 / 16.0,
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Tonic/Sources/Tonic/Letter.swift:9:13: note: enum 'Letter' does not conform to the 'Sendable' protocol
7 | /// These letters can be modified by adding an ``Accidental`` to describe any ``NoteClass``.
8 | /// And by specificying an octave, you can create any ``Note``.
9 | public enum Letter: Int, CaseIterable, Equatable, Hashable, Codable {
| `- note: enum 'Letter' does not conform to the 'Sendable' protocol
10 | case C, D, E, F, G, A, B
11 |
/Users/admin/builder/spi-builder-workspace/Sources/Keyboard/Layouts/KeyboardLayout.swift:25:48: warning: reference to static property 'C' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
23 | /// For piano roll, jam strip type views
24 | case verticalIsomorphic(pitchRange: ClosedRange<Pitch>,
25 | root: NoteClass = .C,
| `- warning: reference to static property 'C' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
26 | scale: Scale = .chromatic)
27 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Tonic/Sources/Tonic/NoteClass+Shortcuts.swift:9:16: note: static property declared here
7 | static var Cb = NoteClass(.C, accidental: .flat)
8 | /// C
9 | static var C = NoteClass(.C)
| `- note: static property declared here
10 | /// C♯
11 | static var Cs = NoteClass(.C, accidental: .sharp)
[33/41] Compiling Keyboard Guitar.swift
[34/41] Compiling Keyboard Isomorphic.swift
[35/41] Emitting module Keyboard
/Users/admin/builder/spi-builder-workspace/Sources/Keyboard/Layouts/PianoSpacer.swift:7:23: warning: static property 'defaultInitialSpacerRatio' is not concurrency-safe because non-'Sendable' type '[Letter : CGFloat]' may have shared mutable state; this is an error in the Swift 6 language mode
5 |
6 | public struct PianoSpacer {
7 | public static let defaultInitialSpacerRatio: [Letter: CGFloat] = [
| `- warning: static property 'defaultInitialSpacerRatio' is not concurrency-safe because non-'Sendable' type '[Letter : CGFloat]' may have shared mutable state; this is an error in the Swift 6 language mode
8 | .C: 0.0,
9 | .D: 3.0 / 16.0,
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Tonic/Sources/Tonic/Letter.swift:9:13: note: enum 'Letter' does not conform to the 'Sendable' protocol
7 | /// These letters can be modified by adding an ``Accidental`` to describe any ``NoteClass``.
8 | /// And by specificying an octave, you can create any ``Note``.
9 | public enum Letter: Int, CaseIterable, Equatable, Hashable, Codable {
| `- note: enum 'Letter' does not conform to the 'Sendable' protocol
10 | case C, D, E, F, G, A, B
11 |
/Users/admin/builder/spi-builder-workspace/Sources/Keyboard/Layouts/PianoSpacer.swift:4:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Tonic'
2 |
3 | import SwiftUI
4 | import Tonic
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Tonic'
5 |
6 | public struct PianoSpacer {
7 | public static let defaultInitialSpacerRatio: [Letter: CGFloat] = [
| |- note: annotate 'defaultInitialSpacerRatio' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
8 | .C: 0.0,
9 | .D: 3.0 / 16.0,
/Users/admin/builder/spi-builder-workspace/Sources/Keyboard/Layouts/PianoSpacer.swift:16:23: warning: static property 'defaultSpacerRatio' is not concurrency-safe because non-'Sendable' type '[Letter : CGFloat]' may have shared mutable state; this is an error in the Swift 6 language mode
14 | .B: 6.0 / 16.0
15 | ]
16 | public static let defaultSpacerRatio: [Letter: CGFloat] = [
| |- warning: static property 'defaultSpacerRatio' is not concurrency-safe because non-'Sendable' type '[Letter : CGFloat]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'defaultSpacerRatio' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 | .C: 10.0 / 16.0,
18 | .D: 10.0 / 16.0,
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Tonic/Sources/Tonic/Letter.swift:9:13: note: enum 'Letter' does not conform to the 'Sendable' protocol
7 | /// These letters can be modified by adding an ``Accidental`` to describe any ``NoteClass``.
8 | /// And by specificying an octave, you can create any ``Note``.
9 | public enum Letter: Int, CaseIterable, Equatable, Hashable, Codable {
| `- note: enum 'Letter' does not conform to the 'Sendable' protocol
10 | case C, D, E, F, G, A, B
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Tonic/Sources/Tonic/NoteClass+Shortcuts.swift:9:16: warning: static property 'C' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
7 | static var Cb = NoteClass(.C, accidental: .flat)
8 | /// C
9 | static var C = NoteClass(.C)
| |- warning: static property 'C' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'C' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'C' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
10 | /// C♯
11 | static var Cs = NoteClass(.C, accidental: .sharp)
/Users/admin/builder/spi-builder-workspace/Sources/Keyboard/Layouts/KeyboardLayout.swift:13:40: warning: reference to static property 'C' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
11 | /// All notes linearly right after one another
12 | case isomorphic(pitchRange: ClosedRange<Pitch>,
13 | root: NoteClass = .C,
| `- warning: reference to static property 'C' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
14 | scale: Scale = .chromatic)
15 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Tonic/Sources/Tonic/NoteClass+Shortcuts.swift:9:16: note: static property declared here
7 | static var Cb = NoteClass(.C, accidental: .flat)
8 | /// C
9 | static var C = NoteClass(.C)
| `- note: static property declared here
10 | /// C♯
11 | static var Cs = NoteClass(.C, accidental: .sharp)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Tonic/Sources/Tonic/Scale+Shortcuts.swift:66:16: warning: static property 'chromatic' is not concurrency-safe because non-'Sendable' type 'Scale' may have shared mutable state; this is an error in the Swift 6 language mode
64 |
65 | /// Chromatic scale
66 | static let chromatic = Scale(intervals: [.P1, .m2, .M2, .m3, .M3, .P4, .d5, .P5, .m6, .M6, .m7, .M7], description: "Chromatic")
| |- warning: static property 'chromatic' is not concurrency-safe because non-'Sendable' type 'Scale' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'chromatic' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
67 |
68 | /// Roumanian minor scale
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Tonic/Sources/Tonic/Scale.swift:6:15: note: consider making struct 'Scale' conform to the 'Sendable' protocol
4 |
5 | /// A set of intervals from the root (tonic).
6 | public struct Scale: OptionSet, Hashable {
| `- note: consider making struct 'Scale' conform to the 'Sendable' protocol
7 | public let rawValue: Int
8 |
/Users/admin/builder/spi-builder-workspace/Sources/Keyboard/Layouts/KeyboardLayout.swift:25:48: warning: reference to static property 'C' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
23 | /// For piano roll, jam strip type views
24 | case verticalIsomorphic(pitchRange: ClosedRange<Pitch>,
25 | root: NoteClass = .C,
| `- warning: reference to static property 'C' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
26 | scale: Scale = .chromatic)
27 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Tonic/Sources/Tonic/NoteClass+Shortcuts.swift:9:16: note: static property declared here
7 | static var Cb = NoteClass(.C, accidental: .flat)
8 | /// C
9 | static var C = NoteClass(.C)
| `- note: static property declared here
10 | /// C♯
11 | static var Cs = NoteClass(.C, accidental: .sharp)
/Users/admin/builder/spi-builder-workspace/Sources/Keyboard/MIDIMonitorKeyboard.swift:92:5: warning: var 'p' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
90 | }
91 |
92 | var p = PitchSet(pitches: [Pitch(65), Pitch(68), Pitch(71), Pitch(74)])
| |- warning: var 'p' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'p' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'p' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
93 |
94 | // Removing Preview macro until Xcode 15 is released
/Users/admin/builder/spi-builder-workspace/Sources/Keyboard/PreferenceKeys.swift:8:16: warning: static property 'defaultValue' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
6 | /// For accumulating key rects.
7 | struct KeyRectsKey: PreferenceKey {
8 | static var defaultValue: [KeyRectInfo] = []
| |- warning: static property 'defaultValue' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'defaultValue' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
9 |
10 | static func reduce(value: inout [KeyRectInfo], nextValue: () -> [KeyRectInfo]) {
[36/41] Compiling Keyboard MIDIMonitorKeyboard.swift
/Users/admin/builder/spi-builder-workspace/Sources/Keyboard/Layouts/PianoSpacer.swift:7:23: warning: static property 'defaultInitialSpacerRatio' is not concurrency-safe because non-'Sendable' type '[Letter : CGFloat]' may have shared mutable state; this is an error in the Swift 6 language mode
5 |
6 | public struct PianoSpacer {
7 | public static let defaultInitialSpacerRatio: [Letter: CGFloat] = [
| `- warning: static property 'defaultInitialSpacerRatio' is not concurrency-safe because non-'Sendable' type '[Letter : CGFloat]' may have shared mutable state; this is an error in the Swift 6 language mode
8 | .C: 0.0,
9 | .D: 3.0 / 16.0,
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Tonic/Sources/Tonic/Letter.swift:9:13: note: enum 'Letter' does not conform to the 'Sendable' protocol
7 | /// These letters can be modified by adding an ``Accidental`` to describe any ``NoteClass``.
8 | /// And by specificying an octave, you can create any ``Note``.
9 | public enum Letter: Int, CaseIterable, Equatable, Hashable, Codable {
| `- note: enum 'Letter' does not conform to the 'Sendable' protocol
10 | case C, D, E, F, G, A, B
11 |
/Users/admin/builder/spi-builder-workspace/Sources/Keyboard/Layouts/PianoSpacer.swift:4:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Tonic'
2 |
3 | import SwiftUI
4 | import Tonic
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Tonic'
5 |
6 | public struct PianoSpacer {
7 | public static let defaultInitialSpacerRatio: [Letter: CGFloat] = [
| |- note: annotate 'defaultInitialSpacerRatio' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
8 | .C: 0.0,
9 | .D: 3.0 / 16.0,
/Users/admin/builder/spi-builder-workspace/Sources/Keyboard/Layouts/PianoSpacer.swift:16:23: warning: static property 'defaultSpacerRatio' is not concurrency-safe because non-'Sendable' type '[Letter : CGFloat]' may have shared mutable state; this is an error in the Swift 6 language mode
14 | .B: 6.0 / 16.0
15 | ]
16 | public static let defaultSpacerRatio: [Letter: CGFloat] = [
| |- warning: static property 'defaultSpacerRatio' is not concurrency-safe because non-'Sendable' type '[Letter : CGFloat]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'defaultSpacerRatio' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 | .C: 10.0 / 16.0,
18 | .D: 10.0 / 16.0,
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Tonic/Sources/Tonic/Letter.swift:9:13: note: enum 'Letter' does not conform to the 'Sendable' protocol
7 | /// These letters can be modified by adding an ``Accidental`` to describe any ``NoteClass``.
8 | /// And by specificying an octave, you can create any ``Note``.
9 | public enum Letter: Int, CaseIterable, Equatable, Hashable, Codable {
| `- note: enum 'Letter' does not conform to the 'Sendable' protocol
10 | case C, D, E, F, G, A, B
11 |
/Users/admin/builder/spi-builder-workspace/Sources/Keyboard/MIDIMonitorKeyboard.swift:92:5: warning: var 'p' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
90 | }
91 |
92 | var p = PitchSet(pitches: [Pitch(65), Pitch(68), Pitch(71), Pitch(74)])
| |- warning: var 'p' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'p' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'p' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
93 |
94 | // Removing Preview macro until Xcode 15 is released
[37/41] Compiling Keyboard KeyContainer.swift
/Users/admin/builder/spi-builder-workspace/Sources/Keyboard/Layouts/PianoSpacer.swift:7:23: warning: static property 'defaultInitialSpacerRatio' is not concurrency-safe because non-'Sendable' type '[Letter : CGFloat]' may have shared mutable state; this is an error in the Swift 6 language mode
5 |
6 | public struct PianoSpacer {
7 | public static let defaultInitialSpacerRatio: [Letter: CGFloat] = [
| `- warning: static property 'defaultInitialSpacerRatio' is not concurrency-safe because non-'Sendable' type '[Letter : CGFloat]' may have shared mutable state; this is an error in the Swift 6 language mode
8 | .C: 0.0,
9 | .D: 3.0 / 16.0,
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Tonic/Sources/Tonic/Letter.swift:9:13: note: enum 'Letter' does not conform to the 'Sendable' protocol
7 | /// These letters can be modified by adding an ``Accidental`` to describe any ``NoteClass``.
8 | /// And by specificying an octave, you can create any ``Note``.
9 | public enum Letter: Int, CaseIterable, Equatable, Hashable, Codable {
| `- note: enum 'Letter' does not conform to the 'Sendable' protocol
10 | case C, D, E, F, G, A, B
11 |
/Users/admin/builder/spi-builder-workspace/Sources/Keyboard/Layouts/PianoSpacer.swift:4:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Tonic'
2 |
3 | import SwiftUI
4 | import Tonic
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Tonic'
5 |
6 | public struct PianoSpacer {
7 | public static let defaultInitialSpacerRatio: [Letter: CGFloat] = [
| |- note: annotate 'defaultInitialSpacerRatio' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
8 | .C: 0.0,
9 | .D: 3.0 / 16.0,
/Users/admin/builder/spi-builder-workspace/Sources/Keyboard/Layouts/PianoSpacer.swift:16:23: warning: static property 'defaultSpacerRatio' is not concurrency-safe because non-'Sendable' type '[Letter : CGFloat]' may have shared mutable state; this is an error in the Swift 6 language mode
14 | .B: 6.0 / 16.0
15 | ]
16 | public static let defaultSpacerRatio: [Letter: CGFloat] = [
| |- warning: static property 'defaultSpacerRatio' is not concurrency-safe because non-'Sendable' type '[Letter : CGFloat]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'defaultSpacerRatio' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 | .C: 10.0 / 16.0,
18 | .D: 10.0 / 16.0,
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Tonic/Sources/Tonic/Letter.swift:9:13: note: enum 'Letter' does not conform to the 'Sendable' protocol
7 | /// These letters can be modified by adding an ``Accidental`` to describe any ``NoteClass``.
8 | /// And by specificying an octave, you can create any ``Note``.
9 | public enum Letter: Int, CaseIterable, Equatable, Hashable, Codable {
| `- note: enum 'Letter' does not conform to the 'Sendable' protocol
10 | case C, D, E, F, G, A, B
11 |
[38/41] Compiling Keyboard Keyboard.swift
/Users/admin/builder/spi-builder-workspace/Sources/Keyboard/Layouts/PianoSpacer.swift:7:23: warning: static property 'defaultInitialSpacerRatio' is not concurrency-safe because non-'Sendable' type '[Letter : CGFloat]' may have shared mutable state; this is an error in the Swift 6 language mode
5 |
6 | public struct PianoSpacer {
7 | public static let defaultInitialSpacerRatio: [Letter: CGFloat] = [
| `- warning: static property 'defaultInitialSpacerRatio' is not concurrency-safe because non-'Sendable' type '[Letter : CGFloat]' may have shared mutable state; this is an error in the Swift 6 language mode
8 | .C: 0.0,
9 | .D: 3.0 / 16.0,
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Tonic/Sources/Tonic/Letter.swift:9:13: note: enum 'Letter' does not conform to the 'Sendable' protocol
7 | /// These letters can be modified by adding an ``Accidental`` to describe any ``NoteClass``.
8 | /// And by specificying an octave, you can create any ``Note``.
9 | public enum Letter: Int, CaseIterable, Equatable, Hashable, Codable {
| `- note: enum 'Letter' does not conform to the 'Sendable' protocol
10 | case C, D, E, F, G, A, B
11 |
/Users/admin/builder/spi-builder-workspace/Sources/Keyboard/Layouts/PianoSpacer.swift:4:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Tonic'
2 |
3 | import SwiftUI
4 | import Tonic
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Tonic'
5 |
6 | public struct PianoSpacer {
7 | public static let defaultInitialSpacerRatio: [Letter: CGFloat] = [
| |- note: annotate 'defaultInitialSpacerRatio' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
8 | .C: 0.0,
9 | .D: 3.0 / 16.0,
/Users/admin/builder/spi-builder-workspace/Sources/Keyboard/Layouts/PianoSpacer.swift:16:23: warning: static property 'defaultSpacerRatio' is not concurrency-safe because non-'Sendable' type '[Letter : CGFloat]' may have shared mutable state; this is an error in the Swift 6 language mode
14 | .B: 6.0 / 16.0
15 | ]
16 | public static let defaultSpacerRatio: [Letter: CGFloat] = [
| |- warning: static property 'defaultSpacerRatio' is not concurrency-safe because non-'Sendable' type '[Letter : CGFloat]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'defaultSpacerRatio' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 | .C: 10.0 / 16.0,
18 | .D: 10.0 / 16.0,
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Tonic/Sources/Tonic/Letter.swift:9:13: note: enum 'Letter' does not conform to the 'Sendable' protocol
7 | /// These letters can be modified by adding an ``Accidental`` to describe any ``NoteClass``.
8 | /// And by specificying an octave, you can create any ``Note``.
9 | public enum Letter: Int, CaseIterable, Equatable, Hashable, Codable {
| `- note: enum 'Letter' does not conform to the 'Sendable' protocol
10 | case C, D, E, F, G, A, B
11 |
[39/41] Compiling Keyboard KeyboardKey.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Tonic/Sources/Tonic/Key+Shortcuts.swift:34:16: warning: static property 'C' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
32 |
33 | /// C Major
34 | static let C = Key(root: NoteClass(.C), scale: .major)
| |- warning: static property 'C' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'C' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
35 |
36 | /// G Major
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Tonic/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
6 | ///
7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
8 | public struct Key: Equatable {
| `- note: consider making struct 'Key' conform to the 'Sendable' protocol
9 | /// The primary note class of the key, also known as the tonic
10 | public let root: NoteClass
[40/41] Compiling Keyboard KeyboardModel.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Tonic/Sources/Tonic/Key+Shortcuts.swift:34:16: warning: static property 'C' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
32 |
33 | /// C Major
34 | static let C = Key(root: NoteClass(.C), scale: .major)
| |- warning: static property 'C' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'C' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
35 |
36 | /// G Major
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Tonic/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
6 | ///
7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
8 | public struct Key: Equatable {
| `- note: consider making struct 'Key' conform to the 'Sendable' protocol
9 | /// The primary note class of the key, also known as the tonic
10 | public let root: NoteClass
[41/41] Compiling Keyboard PreferenceKeys.swift
/Users/admin/builder/spi-builder-workspace/Sources/Keyboard/PreferenceKeys.swift:8:16: warning: static property 'defaultValue' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
6 | /// For accumulating key rects.
7 | struct KeyRectsKey: PreferenceKey {
8 | static var defaultValue: [KeyRectInfo] = []
| |- warning: static property 'defaultValue' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'defaultValue' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
9 |
10 | static func reduce(value: inout [KeyRectInfo], nextValue: () -> [KeyRectInfo]) {
Build complete! (48.24s)
Fetching https://github.com/AudioKit/Tonic.git
[1/3625] Fetching tonic
Fetched https://github.com/AudioKit/Tonic.git from cache (1.25s)
Computing version for https://github.com/AudioKit/Tonic.git
Computed https://github.com/AudioKit/Tonic.git at 1.4.0 (1.29s)
Creating working copy for https://github.com/AudioKit/Tonic.git
Working copy of https://github.com/AudioKit/Tonic.git resolved at 1.4.0
Build complete.
{
"dependencies" : [
{
"identity" : "tonic",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.6",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/AudioKit/Tonic.git"
}
],
"manifest_display_name" : "Keyboard",
"name" : "Keyboard",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "12.0"
},
{
"name" : "ios",
"version" : "16.0"
},
{
"name" : "visionos",
"version" : "1.0"
}
],
"products" : [
{
"name" : "Keyboard",
"targets" : [
"Keyboard"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "KeyboardTests",
"module_type" : "SwiftTarget",
"name" : "KeyboardTests",
"path" : "Tests/KeyboardTests",
"sources" : [
"KeyboardTests.swift"
],
"target_dependencies" : [
"Keyboard"
],
"type" : "test"
},
{
"c99name" : "Keyboard",
"module_type" : "SwiftTarget",
"name" : "Keyboard",
"path" : "Sources/Keyboard",
"product_dependencies" : [
"Tonic"
],
"product_memberships" : [
"Keyboard"
],
"sources" : [
"KeyContainer.swift",
"Keyboard.swift",
"KeyboardKey.swift",
"KeyboardModel.swift",
"Layouts/Guitar.swift",
"Layouts/Isomorphic.swift",
"Layouts/KeyboardLayout.swift",
"Layouts/Piano.swift",
"Layouts/PianoSpacer.swift",
"Layouts/VerticalIsomorphic.swift",
"Layouts/VerticalPiano.swift",
"MIDIMonitorKeyboard.swift",
"MultitouchView.swift",
"PreferenceKeys.swift"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
Done.