           h (.getHeight bi)]
       (dotimes [x w]
         (dotimes [y h]
-          (.setRGB bi (int x) (- (dec h) (int y)) (unchecked-int (colour (.get M (int y) (int x)) ))))))
+          (.setRGB bi (int x) (- (dec h) (int y)) (unchecked-int (spec/heatmap (* 0.01 (.get M (int y) (int x))) ))))))
     bi))
 
 (def M (fft-matrix arr))
 
-(img/show (render M))+(defn demo-code []
+  
+  (img/show (render M)))

(defn fft-matrix [^doubles arr]
  (let [n (count arr)
        length 1024
        half-length (quot length 2)
        fft (mikera.matrixx.algo.FFT. (int length))
        tarr (double-array (* 2 length))
        stride 50
        ts (quot (- n length) stride)
        result-array (double-array (* half-length ts))]
    (dotimes [i ts]
      (System/arraycopy arr (* i stride) tarr 0 length)
      (.realForward fft tarr)
      (dotimes [j half-length]
        (aset result-array (+ i (* j ts)) 
              (mag (aget tarr (* j 2)) (aget tarr (inc (* j 2)))))))
    (Matrix/wrap half-length ts result-array)))

(defn colour ^long [^double val]
  (let [lval (* (inc (Math/log val)) 0.9)]

  (Thread/sleep 1000)
  (stop))

(def arr (into-array Double/TYPE (buffer-read samp-buf)))

(defn mag 
  (^double [^double a ^double b]
