From 8e0bd3c255db9cc70e90be94280ab4bf34253458 Mon Sep 17 00:00:00 2001 From: Spencer Russell Date: Mon, 28 Mar 2016 00:20:53 -0400 Subject: [PATCH] adds realtime spectrum plot using GR.jl --- examples/spectrum.jl | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 examples/spectrum.jl diff --git a/examples/spectrum.jl b/examples/spectrum.jl new file mode 100644 index 0000000..431673e --- /dev/null +++ b/examples/spectrum.jl @@ -0,0 +1,27 @@ +module SpectrumExample + +using GR, PortAudio, SampleTypes + +const N = 1024 +const stream = PortAudioStream(1, 1, bufsize=N) +const buf = read(stream, N) +const fmin = 0Hz +const fmax = 10000Hz +const fs = Float32[float(f) for f in domain(fft(buf)[fmin..fmax])] + +setwindow(fs[1], fs[end], 0, 100) +setviewport(0.05, 0.95, 0.05, 0.95) +setlinecolorind(218) +setfillintstyle(1) +setfillcolorind(208) +setscale(GR.OPTION_X_LOG) + +while true + read!(stream, buf) + clearws() + fillrect(fs[1], fs[end], 0, 100) + polyline(fs, abs(fft(buf)[fmin..fmax])) + updatews() +end + +end