             self.positiveSquareWave()
         case .zero:
             self.zero()
-        }
+        case .custom:
+            assertionFailure("Initializing a custom waveform via this method is unsupported. Please use init(content:phase:count:).")
+        }
+    }
+
+    /// Create table from an array of Element
+    @objc public init(_ content: [Element],
+                      phase: Float = 0) {
+        self.type = .custom
+        self.phase = phase
+        self.content = content
     }
 
     /// Create table from audio file


    // MARK: - Properties    /// Values stored in the table

    internal var content = [Element]()

    /// Phase of the table
    public var phase: Float {


    /// Zeros
    case zero

    /// Custom waveform
    case custom
}

/// A table of values accessible as a waveform or lookup mechanism
