view projects/airharp/Junction.h @ 269:ac8eb07afcf5

Oxygen text added to each render.cpp file for the default projects. Text includes project explanation from Wiki, edited in places. Empty project added as a default project. Doxyfile updated. Each of the project locations added to INPUT configuration option. Consider just watching the whole project file so all new projects are automatically pulled through.
author Robert Jack <robert.h.jack@gmail.com>
date Tue, 17 May 2016 15:40:16 +0100
parents 40badaff5729
children
line wrap: on
line source
/*
 *
 * Excitation Junction for two waveguides
 *
 * Christian Heinrichs 04/2015
 *
 */

#ifndef JUNCTION_H_
#define JUNCTION_H_

#include <cmath>

#ifndef WG_BUFFER_SIZE
#define WG_BUFFER_SIZE 4096
#endif

#ifndef		M_PI
#define		M_PI		3.14159265358979323846264338
#endif

class Junction
{

public:

	Junction();
	void setup();
	void update(float excitation, float left, float right);
	float getOutput(int direction);
	float getExcitationDisplacement();
	void setFrequency(float frequency);
	void setPeriod(float periodInMs);
	void setPluckPosition(float pluckPos);

private:

	double _dt;
	float _periodInMilliseconds;
	int _periodInSamples;

	int _delay_l;
	int _delay_r;

	float _buffer_l[WG_BUFFER_SIZE];
	float _buffer_r[WG_BUFFER_SIZE];
	int _readPtr;

	float _excitation;
	float _lastPlectrumDisplacement;

};

#endif