             collectiveNoteView.addSubview(singleNoteView)
         }
     }
- 
+
     //Move the playback cursor across the screen
     @objc func updateCursor() {
         let width = Double(self.frame.size.width)

        userInfo: nil,
        repeats: true)
    }
 
    public func populateViewNotes() {
     
        let noteDescriptor = midiTrackNoteMap
        let noteRange = (noteDescriptor?.noteRange)!
        let noteList = (noteDescriptor?.noteList)!
     
        let trackHeight = Double(self.frame.size.height)
     
        let noteHeight = Double(trackHeight / (noteRange))
        let maxHeight = Double(trackHeight - (noteHeight))
        
        let loNote = midiTrackNoteMap.loNote
        
        let zoomConstant = noteZoomConstant
     
        //Create invisible scroll view which moves all the notes
        let collectiveNoteViewRect = CGRect(x: 0, y: 0, width: trackLength * noteZoomConstant, height: trackHeight)
        collectiveNoteView = UIView(frame: collectiveNoteViewRect)

    var playbackCursorPosition: Double = 0.0
    var noteGroupPosition: Double = 0.0
    public var midiTrackNoteMap: AKMIDIFileTrackNoteMap!

    var trackLength: Double {
        return midiTrackNoteMap.endOfTrack
    }

    //How far the view is zoomed in
    public var noteZoomConstant: Double = 10000.0

    /// Initialize the Track View
    public convenience init(frame: CGRect, midiFile: AKMIDIFile, trackNumber: Int) {
        self.init(frame: frame)
