         }
         
         //number of pixels required to draw each "sample"
-        //line width = 1 + space between = 1
-        let pixelsPerSample = 2
+        let lineWidth: CGFloat = 1.0
+        let lineSpacing: CGFloat = 1.0
+        let pixelsPerSample = lineWidth + lineSpacing
         
         //Number of samples per pixel for decimation
-        let samplesPerPixel = samples.count / (Int(imageSize.width)/pixelsPerSample)
+        let samplesPerPixel = samples.count / Int(imageSize.width/pixelsPerSample)
 
         //decimate samples to correleate with number of pixels in width of image
         // this optimizes for the number of points we have to draw

            let center = imageMaxHeight.halved
            let path = UIBezierPath()
            for (index, sample) in samples.enumerated() {
                //ensure silence is drawn as well
                let amplitude = max(CGFloat(sample), 1.0)
                
                let x: CGFloat = CGFloat(index * pixelsPerSample)
                let y: CGFloat = center - amplitude.halved
                
                path.addVerticalLine(at: CGPoint(x: x, y: y), ofHeight: amplitude)
            }
            path.close()
            
            path.lineWidth = 1.0
            
            graphColor.setStroke()
            path.stroke()

                 noiseFloor: noiseFloor)
        
        if !displayInDB {
            //convert DB to gain/power and (re-)clip at the specified dynamic range
            samples = samples.map { pow(10.0, $0/20.0) }
            var floor: Float = 0.0
            var ceil: Float = abs(noiseFloor)
