SequencerView

class SequencerView : UIView

View corresponding to sequencer collection view and note picker

  • Undocumented

    Declaration

    Swift

    @IBOutlet
    weak var collectionView: UICollectionView!
  • Undocumented

    Declaration

    Swift

    @IBOutlet
    weak var pickerCollectionView: UICollectionView!
  • Undocumented

    Declaration

    Swift

    @IBOutlet
    weak var pickerWidth: NSLayoutConstraint!
  • Undocumented

    Declaration

    Swift

    @IBOutlet
    weak var visualEffectContainerView: UIView!
  • Undocumented

    Declaration

    Swift

    fileprivate let pickerDelegate: PickerDelegate
  • Undocumented

    Declaration

    Swift

    fileprivate var timeDivision: TimeDivision { get set }
  • Undocumented

    Declaration

    Swift

    fileprivate var notes: [Note]
  • Undocumented

    Declaration

    Swift

    private var activeSelectingPath: IndexPath!
  • Undocumented

    Declaration

    Swift

    private var isAnimatingPicker: Bool
  • Undocumented

    Declaration

    Swift

    private var shouldUpdateMarker: Bool
  • Undocumented

    Declaration

    Swift

    private var markerIndex: Int { get set }
  • Timer for polling playhead UI positioning

    Declaration

    Swift

    private var currentBeatTimer: Timer
  • Indicate playing state. Will set beat timer for playhead

    Declaration

    Swift

    private var isPlaying: Bool { get set }
  • Undocumented

    Declaration

    Swift

    override func awakeFromNib()
  • Undocumented

    Declaration

    Swift

    override init(frame: CGRect)
  • Undocumented

    Declaration

    Swift

    required init?(coder aDecoder: NSCoder)
  • Undocumented

    Declaration

    Swift

    override func layoutSubviews()
  • Common initializer for sequencer view UI and initial state

    Declaration

    Swift

    func commonInit()
  • Pinch recognizer for changing the time division

    Declaration

    Swift

    @IBAction
    func didPinchOnCollectionView(_ sender: UIPinchGestureRecognizer)
  • Update UI for the sequencer playhead positioning

    Declaration

    Swift

    @objc
    func updateCurrentPositionMarker(clear: Bool = false)

    Parameters

    clear

    Optional bool to clear the playhead UI. Used when sequencer is stopped. Default value is false

  • Highlight row of collection view

    Declaration

    Swift

    func highlightRow(_ index: Int)

    Parameters

    index

    Integer for row in collection view to highlight

  • Unhighlight row of collection view

    Declaration

    Swift

    func unhighlightRow(_ index: Int)

    Parameters

    index

    Integer for row in collection view to unhighlight

  • Deselect row. Turns all sequencer cells UI to disabled state

    Declaration

    Swift

    func deselectRow(_ index: Int)

    Parameters

    index

    Integer for index of row to deselect

  • Deselects all the cells. Puts the cells in the disabled state.

    Declaration

    Swift

    func deselectCells()
  • Select cell by putting sequencer cell into ‘enabled’ state

    Declaration

    Swift

    func selectCell(_ indexPath: IndexPath)

    Parameters

    indexPath

    IndexPath of the collection view cell to enable

  • Deselect cell by putting sequencer cell into ‘disabled’ state

    Declaration

    Swift

    func deselectCell(_ indexPath: IndexPath)

    Parameters

    indexPath

    IndexPath of the collection view cell to disable

  • Partially fill cell. This creates a UI representation of a ‘partial’ event occuring in the sequencer cell. For example: an eighth note on a quarter note grid will partially fill the cell corresponding to the nearest quarter note.

    Declaration

    Swift

    func partialFillCell(_ indexPath: PartialIndexPath)

    Parameters

    indexPath

    The PartialIndexPath (an indexPath with double values for row and section) representing the cell to partially fill

  • Clear all partially filled cells

    Declaration

    Swift

    func clearPartialFillCells()
  • Show the sequencer note picker view according to the sender.

    Declaration

    Swift

    @objc
    func showPicker(sender: UILongPressGestureRecognizer)

    Parameters

    sender

    UILongPressGestureRecognizer corresponding to an active sequencer note visible on screen

  • Animates the sequencer cell while picking a new note

    Declaration

    Swift

    func animatePicker(cell: UICollectionViewCell)

    Parameters

    cell

    UICollectionViewCell view to animate scale

  • Hide note picker view

    Declaration

    Swift

    func hidePicker(indexPath: IndexPath? = nil)

    Parameters

    indexPath

    Optional IndexPath for hiding and selecting the new sequencer note for that row

  • Updates collection view event state. Used for transfering UI event state from one ‘timeDivision’ (i.e. quarter, eighth, etc..) to another denomination

    Declaration

    Swift

    private func updateCollectionViewEventState()
  • Clear the sequencer UI for the specified track or all tracks.

    Declaration

    Swift

    func clear(_ track: Int? = nil)

    Parameters

    clear

    Int for track UI to clear or all tracks if none specified

  • Undocumented

    Declaration

    Swift

    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int
  • Undocumented

    Declaration

    Swift

    func numberOfSections(in collectionView: UICollectionView) -> Int
  • Undocumented

    Declaration

    Swift

    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell