summaryrefslogtreecommitdiff
path: root/muse2/synti/libsynti/mono.h
diff options
context:
space:
mode:
Diffstat (limited to 'muse2/synti/libsynti/mono.h')
-rw-r--r--muse2/synti/libsynti/mono.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/muse2/synti/libsynti/mono.h b/muse2/synti/libsynti/mono.h
new file mode 100644
index 00000000..f2f8bdf7
--- /dev/null
+++ b/muse2/synti/libsynti/mono.h
@@ -0,0 +1,47 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// software synthesizer helper library
+// $Id: mono.h,v 1.4 2004/04/15 13:46:18 wschweer Exp $
+//
+// (C) Copyright 2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __SYNTH_MONO_H__
+#define __SYNTH_MONO_H
+
+#include <list>
+#include "mess.h"
+
+//---------------------------------------------------------
+// PitchVelo
+//---------------------------------------------------------
+
+struct PitchVelo {
+ signed char channel;
+ signed char pitch;
+ signed char velo;
+ PitchVelo(signed char a, signed char b, signed char c)
+ : channel(a), pitch(b), velo(c) {}
+ };
+
+//---------------------------------------------------------
+// MessMono
+// implements some functions for monophone
+// synthesizer
+//---------------------------------------------------------
+
+class MessMono : public Mess {
+ std::list<PitchVelo> pitchStack;
+
+ protected:
+ virtual bool playNote(int channel, int pitch, int velo);
+ virtual void note(int channel, int pitch, int velo) = 0;
+
+ public:
+ MessMono() : Mess(1) {}
+ virtual ~MessMono() {}
+ };
+
+#endif
+