anchor.diff:  ;; } mus_any_class;
   
   
  -;; typedef enum {MUS_INTERP_NONE, MUS_INTERP_LINEAR, MUS_INTERP_SINUSOIDAL, MUS_INTERP_ALL_PASS, 
  -;; 	      MUS_INTERP_LAGRANGE, MUS_INTERP_BEZIER, MUS_INTERP_HERMITE, MUS_NUM_INTERPS} mus_interp_t;
  +(defcenum mus-interp
  +    :none :linear :sinusoidal :all-pass 
  +    :lagrange :bezier :hermite :num-interps)
  +
   ;; typedef enum {MUS_ENV_LINEAR, MUS_ENV_EXPONENTIAL, MUS_ENV_STEP} mus_env_t;
   
   ;; typedef enum {MUS_RECTANGULAR_WINDOW, MUS_HANN_WINDOW, MUS_WELCH_WINDOW, MUS_PARZEN_WINDOW, MUS_BARTLETT_WINDOW,
  
positive.code: 
  ;; /* -------- generators -------- */
  
  ;; MUS_EXPORT mus_float_t mus_oscil(mus_any *o, mus_float_t fm, mus_float_t pm);
  ;; MUS_EXPORT mus_float_t mus_oscil_unmodulated(mus_any *ptr);
  ;; MUS_EXPORT mus_float_t mus_oscil_fm(mus_any *ptr, mus_float_t fm);
  ;; MUS_EXPORT mus_float_t mus_oscil_pm(mus_any *ptr, mus_float_t pm);
  ;; MUS_EXPORT bool mus_oscil_p(mus_any *ptr);
  ;; MUS_EXPORT mus_any *mus_make_oscil(mus_float_t freq, mus_float_t phase);
  
  ;; MUS_EXPORT mus_any *mus_make_ncos(mus_float_t freq, int n);
  ;; MUS_EXPORT mus_float_t mus_ncos(mus_any *ptr, mus_float_t fm);
  ;; MUS_EXPORT bool mus_ncos_p(mus_any *ptr);
  
  ;; MUS_EXPORT mus_any *mus_make_nsin(mus_float_t freq, int n);
  ;; MUS_EXPORT mus_float_t mus_nsin(mus_any *ptr, mus_float_t fm);
  ;; MUS_EXPORT bool mus_nsin_p(mus_any *ptr);
  
  ;; MUS_EXPORT mus_any *mus_make_nrxysin(mus_float_t frequency, mus_float_t y_over_x, int n, mus_float_t r);
  ;; MUS_EXPORT mus_float_t mus_nrxysin(mus_any *ptr, mus_float_t fm);
  ;; MUS_EXPORT bool mus_nrxysin_p(mus_any *ptr);
  
  ;; MUS_EXPORT mus_any *mus_make_nrxycos(mus_float_t frequency, mus_float_t y_over_x, int n, mus_float_t r);
  ;; MUS_EXPORT mus_float_t mus_nrxycos(mus_any *ptr, mus_float_t fm);
  ;; MUS_EXPORT bool mus_nrxycos_p(mus_any *ptr);
  
  ;; MUS_EXPORT mus_float_t mus_delay(mus_any *gen, mus_float_t input, mus_float_t pm);
  ;; MUS_EXPORT mus_float_t mus_delay_unmodulated(mus_any *ptr, mus_float_t input);
  ;; MUS_EXPORT mus_float_t mus_tap(mus_any *gen, mus_float_t loc);
  ;; MUS_EXPORT mus_float_t mus_tap_unmodulated(mus_any *gen);
  ;; MUS_EXPORT mus_any *mus_make_delay(int size, mus_float_t *line, int line_size, mus_interp_t type);
  ;; MUS_EXPORT bool mus_delay_p(mus_any *ptr);
  ;; MUS_EXPORT bool mus_delay_line_p(mus_any *gen); /* added 2-Mar-03 for tap error checks */
  ;; MUS_EXPORT mus_float_t mus_delay_tick(mus_any *ptr, mus_float_t input);
  ;; MUS_EXPORT mus_float_t mus_delay_tick_noz(mus_any *ptr, mus_float_t input);
  ;; MUS_EXPORT mus_float_t mus_delay_unmodulated_noz(mus_any *ptr, mus_float_t input);
  
  ;; MUS_EXPORT mus_float_t mus_comb(mus_any *gen, mus_float_t input, mus_float_t pm);
  ;; MUS_EXPORT mus_float_t mus_comb_unmodulated(mus_any *gen, mus_float_t input);
  ;; MUS_EXPORT mus_any *mus_make_comb(mus_float_t scaler, int size, mus_float_t *line, int line_size, mus_interp_t type);
  ;; MUS_EXPORT bool mus_comb_p(mus_any *ptr);
  ;; MUS_EXPORT mus_float_t mus_comb_unmodulated_noz(mus_any *ptr, mus_float_t input);
  
  ;; MUS_EXPORT mus_float_t mus_notch(mus_any *gen, mus_float_t input, mus_float_t pm);
  ;; MUS_EXPORT mus_float_t mus_notch_unmodulated(mus_any *gen, mus_float_t input);
  ;; MUS_EXPORT mus_any *mus_make_notch(mus_float_t scaler, int size, mus_float_t *line, int line_size, mus_interp_t type);
  ;; MUS_EXPORT bool mus_notch_p(mus_any *ptr);
  ;; MUS_EXPORT mus_float_t mus_notch_unmodulated_noz(mus_any *ptr, mus_float_t input);
  
  ;; MUS_EXPORT mus_float_t mus_all_pass(mus_any *gen, mus_float_t input, mus_float_t pm);
  ;; MUS_EXPORT mus_float_t mus_all_pass_unmodulated(mus_any *gen, mus_float_t input);
  ;; MUS_EXPORT mus_any *mus_make_all_pass(mus_float_t backward, mus_float_t forward, int size, mus_float_t *line, int line_size, mus_interp_t type);
  ;; MUS_EXPORT bool mus_all_pass_p(mus_any *ptr);
  ;; MUS_EXPORT mus_float_t mus_all_pass_unmodulated_noz(mus_any *ptr, mus_float_t input);
  
  ;; MUS_EXPORT mus_any *mus_make_moving_average(int size, mus_float_t *line);
  ;; MUS_EXPORT bool mus_moving_average_p(mus_any *ptr);
  
negative.code: (in-package #:zvuk)
  
  ;;todo
  ;; #ifndef CLM_H
  ;; #define CLM_H
  