 
     /// Initialize with a single node or with no node at all
     /// You must provide a target node for the sequencer to drive or it will not run at all
+    /// - Parameter targetNode: Required node
     public convenience init(targetNode: AKNode) {
         self.init(targetNodes: [targetNode])
     }
 
-    /// Initialize with target nodes
-    /// This will create a track for each node
+    /// Initialize with target nodes. This will create a track for each node
+    /// - Parameter targetNodes: Array of nodes to target for each track
     public required init(targetNodes: [AKNode]? = nil) {
         if let targetNodes = targetNodes {
             tracks = targetNodes.enumerated().map({ AKSequencerTrack(targetNode: $0.element) })

        tracks[trackIndex].add(event: event, position: position)
    }

    open func clear() {
        for track in tracks {
            track.clear()
        }
    }

    open func seek(to position: Double) {
        tracks.forEach({ $0.seek(to: position) })
    }

    open func pause() {
        stop()
    }

    open func getTrackFor(node: AKNode) -> AKSequencerTrack? {
        return tracks.first(where: { $0.targetNode == node })
    }

    open func addTrack(for node: AKNode) -> AKSequencerTrack {
        let track = AKSequencerTrack(targetNode: node)
        tracks.append(track)

    }

    /// Add a MIDI note to the track
    /// - Parameters:
    ///   - noteNumber: MIDI Note number to add
    ///   - velocity: Velocity of the note
    ///   - channel: Channel to place the note on
    ///   - position: Location in beats of the new note
    ///   - duration: Duration in beats of the new note
    ///   - trackIndex: Which track to add the note to
    open func add(noteNumber: MIDINoteNumber,
                  velocity: MIDIVelocity = 127,
                  channel: MIDIChannel = 0,
