diff options
Diffstat (limited to 'sc4pd/source/TIRand.cpp')
-rw-r--r-- | sc4pd/source/TIRand.cpp | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/sc4pd/source/TIRand.cpp b/sc4pd/source/TIRand.cpp index b68278e..93fdd09 100644 --- a/sc4pd/source/TIRand.cpp +++ b/sc4pd/source/TIRand.cpp @@ -73,6 +73,10 @@ protected: range = hi - lo; } + void m_seed(int i) + { + rgen.init(i); + } private: float m_sample; @@ -84,6 +88,7 @@ private: FLEXT_CALLBACK(m_bang); FLEXT_CALLBACK_I(m_setlo); FLEXT_CALLBACK_I(m_sethi); + FLEXT_CALLBACK_I(m_seed); }; FLEXT_LIB_DSP_V("TIRand~",TIRand_ar); @@ -101,13 +106,14 @@ TIRand_ar::TIRand_ar(int argc, t_atom *argv) hi=int(sc_getfloatarg(Args,1)); range = hi - lo; - rgen.init(0); //this should be changed + rgen.init(timeseed()); AddOutSignal(); FLEXT_ADDBANG(0,m_bang); FLEXT_ADDMETHOD_(0,"setlo",m_setlo); FLEXT_ADDMETHOD_(0,"sethi",m_sethi); + FLEXT_ADDMETHOD_(0,"seed",m_seed); } void TIRand_ar::m_dsp(int n, t_sample *const *in, t_sample *const *out) @@ -160,6 +166,11 @@ protected: range = hi - lo; } + void m_seed(int i) + { + rgen.init(i); + } + private: int lo; int hi; @@ -168,6 +179,7 @@ private: FLEXT_CALLBACK(m_bang); FLEXT_CALLBACK_I(m_setlo); FLEXT_CALLBACK_I(m_sethi); + FLEXT_CALLBACK_I(m_seed); }; FLEXT_LIB_V("TIRand",TIRand_kr); @@ -184,13 +196,14 @@ TIRand_kr::TIRand_kr(int argc, t_atom *argv) hi=int(sc_getfloatarg(Args,1)); range = hi - lo; - rgen.init(0); + rgen.init(timeseed()); AddOutInt(); FLEXT_ADDBANG(0,m_bang); FLEXT_ADDMETHOD_(0,"setlo",m_setlo); FLEXT_ADDMETHOD_(0,"sethi",m_sethi); + FLEXT_ADDMETHOD_(0,"seed",m_seed); } void TIRand_kr::m_loadbang() |