logo
Main Page | Namespaces | Classes | Compounds | Files | Compound Members | Related

tube.h

00001 //
00002 //  SYNTOPIA. See http://Syntopia.sourceforge.net for details and documentation.        
00003 //
00004 //      Author of this file: Mikael Hvidtfeldt Christensen (mikaelc@users.sourceforge.net)
00005 //
00006 
00007 // Visual C++ compiler warnings: 255 char limit on var names.....
00008 #pragma warning(disable: 4786)
00009 
00010 #ifndef __tube__
00011 #define __tube__
00012 
00013 #include "input.h"
00014 #include "output.h"
00015 #include "Modules.h"
00016 #include <string>
00017 #include "sndutils.h"
00018 
00019 namespace SynthCore {
00020 
00022 
00029 class Tube : public Module {
00030 
00031 
00032 public: // ----------------------------------------------------------
00033 
00035         virtual std::string getName() {return "Tube";}
00036         
00038         float feedback;
00039 
00041         Output * Output1;
00042 
00044         Output * Output2;
00045 
00047         Input * Input1;
00048 
00049 
00052         virtual Module * sharedClone() ;
00053 
00054 
00056         Tube(SynthVoice * S1) ; 
00057         
00058         std::string getXML(int indent);
00059 
00061         ~Tube() ;
00062 
00064         void update() ; 
00065 
00067         static Module * newInstance(SynthVoice * S1) ;
00068 
00070         void loadXML(XMLNode * n, bool firstPass);
00071 
00072 private: // ----------------------------------------------------------
00073         
00074         DelayLine * forwardLine;
00075         DelayLine * backwardLine;
00076         BiFilter * myFilter;
00077         BiFilter * myFilter2;
00078         int pos; 
00079         int pos2;
00080         float temp;
00081 };
00082 
00083 }; // end of namespace: SynthCore
00084 
00085 #endif

Syntopia Project. Visit the web page, or the SourceForge page.
Docs made by Doxygen. Email: Mikael Christensen