         NotificationCenter.default.post(name: .didFinishEditing, object: sting)
     }
     
+    override func viewDidLayoutSubviews() {
+        layoutWaveformOverlayViews()
+    }
+    
     func updateLabels() {
         navigationItem.title = sting.name ?? sting.songTitle
         titleLabel.text = sting.songTitle

        endPlayButton.isEnabled = previewLengthControl.selectedSegmentIndex > 0
    }
    
    @objc func updatePreviewButtonPositions() {
        if let startSample = waveformView.highlightedSamples?.lowerBound, let x = waveformView.position(of: startSample) {
            startPlayButtonHorizontalLayoutConstraint.constant = waveformView.position(of: startSample) ?? 0
            startMarkerHorizontalLayoutConstraint.constant = x

        // render the waveform
        waveformView.audioURL = sting.url
        
        NotificationCenter.default.addObserver(self, selector: #selector(layoutWaveformOverlayViews), name: .waveformViewDidUpdate, object: nil)
        
        startMarkerView.dragRecogniser.addTarget(self, action: #selector(startMarkerDragged(_:)))
        endMarkerView.dragRecogniser.addTarget(self, action: #selector(endMarkerDragged(_:)))
