diff --git a/HelpSource/Classes/Spectrogram.schelp b/HelpSource/Classes/Spectrogram.schelp index 6f18a32..aea95ef 100644 --- a/HelpSource/Classes/Spectrogram.schelp +++ b/HelpSource/Classes/Spectrogram.schelp @@ -42,11 +42,22 @@ Specify the range of frequencies you want to visualise. DISCUSSION:: code:: s.boot; + +( // the spectrogram in a window w = Window.new("testing spectrogram", Rect(10,10, 600, 300)).front; -a = Spectrogram.new(w, Rect(10, 10, 580, 280)); -a.start; -{Saw.ar(LFNoise1.kr(1).range(20,2250))}.play; +a = Spectrogram.new(w, Rect(10, 10, 580, 280)) +) + +a.start + +a.isRunning + +{Saw.ar(LFNoise1.kr(1).range(20,2250))}.play + +a.stop + +a.isRunning :: @@ -62,6 +73,9 @@ Starts analysis and drawing. METHOD:: stop Stop analysis and drawing. +METHOD:: isRunning +A Boolean, true if the spectrogram is active or false if the spectrogram has been stopped. + METHOD:: setBufSize Set the buffer size of the fft window. diff --git a/Spectrogram.sc b/Spectrogram.sc index 85593ae..973f86c 100644 --- a/Spectrogram.sc +++ b/Spectrogram.sc @@ -41,7 +41,7 @@ Spectrogram { this.setUserView(window, bounds); window.onClose_({ image.free; - this.stopruntask; + if(this.isRunning) { this.stopruntask }; fftbuf.free; }).front; } @@ -216,6 +216,7 @@ Spectrogram { stop { this.stopruntask } + isRunning { ^running } } SpectrogramWindow : Spectrogram { @@ -371,7 +372,7 @@ SpectrogramWindow : Spectrogram { try{ fftSynth.free }; try{ fftbuf.free }; scopeOpen = false; - this.stopruntask; + if(this.isRunning) { this.stopruntask }; CmdPeriod.remove(cper); }).front; }