27 lines
566 B
Julia
27 lines
566 B
Julia
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
|