summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Glöckner <cgloeckner@freenet.de>2016-03-29 11:01:21 +0200
committerAndré Nusser <andre.nusser@googlemail.com>2016-03-31 17:35:47 +0200
commit94d33d51ee136d88a2d81bfce47efd2836e845d0 (patch)
tree9a27e8ac61cf3872386f9d4d154cfb1dfd2b0b0c
parent13b5fabc8c3722e7e30b22d50f44e2a3bba3ef11 (diff)
Refactored class BeatMapper
-rw-r--r--src/beatmapper.cc76
-rw-r--r--src/beatmapper.h22
2 files changed, 53 insertions, 45 deletions
diff --git a/src/beatmapper.cc b/src/beatmapper.cc
index 78441cb..b61f0b5 100644
--- a/src/beatmapper.cc
+++ b/src/beatmapper.cc
@@ -30,48 +30,58 @@
#define DEF 2.0
-BeatMapper::BeatMapper(Instrument *instrument)
+BeatMapper::BeatMapper(const Instrument& instrument)
+ : instrument{instrument}
+ , hist{}
+ , C{1.3}
+ , mindist{4}
+ , last{mindist}
{
- this->instrument = instrument;
- for(size_t i = 0; i < HISTORY_SIZE; i++) hist[i] = DEF;
- C = 1.3;
- mindist = 4;
- last = mindist;
+ for(size_t i = 0; i < HISTORY_SIZE; ++i)
+ {
+ hist[i] = DEF;
+ }
}
-
-Sample *BeatMapper::map(jack_nframes_t nframes)
+Sample* BeatMapper::map(jack_nframes_t nframes)
{
- return NULL;
- Sample *sample = NULL;
-
- jack_default_audio_sample_t *buffer;
- buffer = (jack_default_audio_sample_t *)jack_port_get_buffer(instrument->port, nframes);
-
- float e = 0.0;
- for(size_t i = 0; i < nframes; i++) {
- e += buffer[i] * buffer[i];
- }
+ return nullptr;
+
+ // moved the following to comment by glocke since return makes this
+ // unreachable
+ /*
+ Sample *sample = nullptr;
+
+ jack_default_audio_sample_t *buffer;
+ buffer = (jack_default_audio_sample_t
+ *)jack_port_get_buffer(instrument->port, nframes);
+
+ float e = 0.0;
+ for(size_t i = 0; i < nframes; i++) {
+ e += buffer[i] * buffer[i];
+ }
- float E = 0.0;
- for(size_t i = 0; i < HISTORY_SIZE; i++) E += hist[i] / (float)HISTORY_SIZE;
- if(E == 0) E = DEF; // We do not have a connection
+ float E = 0.0;
+ for(size_t i = 0; i < HISTORY_SIZE; i++) E += hist[i] / (float)HISTORY_SIZE;
+ if(E == 0) E = DEF; // We do not have a connection
- // printf("last: %d, E: %f, e: %f - threshold: %f\n", last, E, e, 1.3 * E);
+ // printf("last: %d, E: %f, e: %f - threshold: %f\n", last, E, e, 1.3 *
+ E);
- // Shift history and save new value
- for(size_t i = 0; i < HISTORY_SIZE - 1; i++) hist[i] = hist[i+1];
- hist[HISTORY_SIZE - 1] = e>DEF?e:DEF;
+ // Shift history and save new value
+ for(size_t i = 0; i < HISTORY_SIZE - 1; i++) hist[i] = hist[i+1];
+ hist[HISTORY_SIZE - 1] = e>DEF?e:DEF;
- if(instrument->name == "hihat" && e > 0) printf("e: %f\n", e);
+ if(instrument->name == "hihat" && e > 0) printf("e: %f\n", e);
- if(e > C * E && last > mindist) {
- Velocity *v = instrument->getVelocity(127);
- if(v) sample = v->getSample();
- }
+ if(e > C * E && last > mindist) {
+ Velocity *v = instrument->getVelocity(127);
+ if(v) sample = v->getSample();
+ }
- last++;
- if(sample) last = 0;
+ last++;
+ if(sample) last = 0;
- return sample;
+ return sample;
+ */
}
diff --git a/src/beatmapper.h b/src/beatmapper.h
index fde1988..405b3d6 100644
--- a/src/beatmapper.h
+++ b/src/beatmapper.h
@@ -24,8 +24,7 @@
* along with DrumGizmo; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-#ifndef __DRUMGIZMO_BEATMAPPER_H__
-#define __DRUMGIZMO_BEATMAPPER_H__
+#pragma once
#include <jack/jack.h>
@@ -36,19 +35,18 @@
#define HISTORY_SIZE 200
-class BeatMapper {
+class BeatMapper
+{
public:
- BeatMapper(Instrument *instrument);
+ BeatMapper(const Instrument& instrument);
- Sample *map(jack_nframes_t nframes);
+ Sample* map(jack_nframes_t nframes);
private:
- Instrument *instrument;
- float hist[HISTORY_SIZE];
- float C;
+ const Instrument& instrument;
+ float hist[HISTORY_SIZE];
+ float C;
- size_t mindist;
- size_t last;
+ size_t mindist;
+ size_t last;
};
-
-#endif/*__DRUMGIZMO_BEATMAPPER_H__*/