[CM] Multichannel height after update

Kjetil S. Matheussen k.s.matheussen at notam02.no
Tue Dec 30 10:05:02 PST 2008



On Tue, 30 Dec 2008, Carlos Pita wrote:

> Hi all,
>
> I'm very new to snd and I'm having an annoying ui problem that i'm not
> sure how to solve.
>
> I'm mainly using snd to analyse different outputs from csound, each
> with a number of channels. My workflow is: modify the instrument
> and/or orchestra, run csound, update the output file in snd, analyse
> it.
>
> To update the graph I press Home or execute update-sound at the
> listener, of course. Multichannel graphs are using the default
> 'combined' layout. After each update, the graph height is
> automatically reset to a very short default and I have to manually
> readjust it. This doesn't happen with one-channel graphs or
> multichannel ones for the 'separate' layout.
>
> Is there any workaround to avoid this quirky behavior?
>

Below is code from snd_conffile.scm for fixing this. It
usually works, but it's not perfect.


(let ((width 800)
       (height 600)
       (num-retries 0)
       (isretrying #f))


   (define (dotheretry)
     (if (> num-retries 0)
 	(begin
 	  (if (not (= (window-width) width))
 	      (set! (window-width) width))
 	  (if (not (= (window-height) height))
 	      (set! (window-height) height))
 	  (set! num-retries (1- num-retries))
 	  (in 2 dotheretry))
 	(set! isretrying #f)))

   (add-hook! open-hook
 	     (lambda (filename)
 	       (set! height (window-height))
 	       (set! width (window-width))
 	       (set! num-retries 250)))

   (add-hook! close-hook
 	     (lambda (snd)
 	       (set! height (window-height))
 	       (set! width (window-width))
 	       (set! num-retries 250)))

   (add-hook! graph-hook
 	     (lambda (snd chn y0 y1)
 	       (if (not isretrying)
 		   (begin
 		     (set! isretrying #t)
 		     (dotheretry))))))



More information about the Cmdist mailing list