text: struct Crap : public Aligned {
  	virtual inline
  	~Crap() {}
  
  	virtual void
  	pause() = 0;
  
  	virtual void
  	resume() = 0;
  
  	virtual void
  	process(
  	    double *in_L, double *in_R,
  	    double *out_L, double *out_R,
  	    ulong count) = 0;
  
  	virtual void
  	process(
  	    float *in_L, float *in_R,
  	    float *out_L, float *out_R,
  	    ulong count) = 0;
  
  	//void
  	//construct_params(param *params) = 0;
  
  	virtual void
  	adjust(Param *params, ulong fs) = 0;
  
  	virtual void
  	adjust_one(Param *params, int i) = 0;
  };
  
  template<class Mixin>
  struct AdjustAll : public Mixin {
  	ulong fs;
  
  	virtual void
  	adjust_all(Param *params) = 0;
  
  	inline void
  	adjust(Param *params, ulong fs_new)
  	{
  		fs = fs_new;
  		adjust_all(params);
  	}
  
  	inline void
  	adjust_one(Param *params, int i)
  	{
  		adjust_all(params);
  	}
  };
  
  template<class Mixin>
  struct NoParams : public Mixin {
  	// etc
  
  	//void
  	//construct_params(param *params) = 0;
  
  	void
  	adjust(Param *params, ulong fs)
  	{}
  
  	void
  	adjust_one(Param *params, int i)
  	{}
  };
  