[CM] With-sound question

Fernando Pablo Lopez-Lezcano nando@ccrma.Stanford.EDU
Mon, 21 Oct 2002 20:57:41 -0700 (PDT)


> I have a macro that writes calls to an instrument:
> 
> (write-ins my-instrument-gen)
> > (my-instrument 0 4 440)  ;;this might ba an simp-type instrument that
>                            ;;   implements a simple oscilator.
> 
> If i place a call to this macro in the spot where a normal instrument call
> would be in a with-sound:
> 
> (with-sound () (write-ins my-instrument-gen))
> 
> The results are rather odd.  No error is returned, but the output
> soundifle is only 1 sample in length.

Things work fine here:
  start cmucl
  (compile-file "v.ins")
  (load "v.cmucl")
  
- load this macro:

(defmacro twov (start dur f1 f2 amp)
  `(progn
     (fm-violin ,start ,dur ,f1 ,amp)
     (fm-violin ,start ,dur ,f2 ,amp)))

- execute this with-sound call:

(with-sound()(twov 0 1 440 450 0.1)

It creates a soundfile with two violin notes with 440 and 450Hz
frequencies For something like this obviously a macro is overkill, a
simple function would suffice:

(defun twovfun (start dur f1 f2 amp)
  (fm-violin start dur f1 amp)
  (fm-violin start dur f2 amp))

-- Fernando