Mercurial > hg > beaglert
diff examples/10-Instruments/airharp/Junction.h @ 468:85cf9c0da052 prerelease
merge
author | Giulio Moro <giuliomoro@yahoo.it> |
---|---|
date | Mon, 20 Jun 2016 17:08:02 +0100 |
parents | 8fcfbfb32aa0 |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/examples/10-Instruments/airharp/Junction.h Mon Jun 20 17:08:02 2016 +0100 @@ -0,0 +1,54 @@ +/* + * + * 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