aboutsummaryrefslogtreecommitdiff
path: root/sc4pd/source/TRand.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sc4pd/source/TRand.cpp')
-rw-r--r--sc4pd/source/TRand.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/sc4pd/source/TRand.cpp b/sc4pd/source/TRand.cpp
index f1ca9b2..b18704f 100644
--- a/sc4pd/source/TRand.cpp
+++ b/sc4pd/source/TRand.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_F(m_setlo);
FLEXT_CALLBACK_F(m_sethi);
+ FLEXT_CALLBACK_I(m_seed);
};
FLEXT_LIB_DSP_V("TRand~",TRand_ar);
@@ -101,13 +106,14 @@ TRand_ar::TRand_ar(int argc, t_atom *argv)
hi=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 TRand_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:
float lo;
float hi;
@@ -168,6 +179,7 @@ private:
FLEXT_CALLBACK(m_bang);
FLEXT_CALLBACK_F(m_setlo);
FLEXT_CALLBACK_F(m_sethi);
+ FLEXT_CALLBACK_I(m_seed);
};
FLEXT_LIB_V("TRand",TRand_kr);
@@ -184,13 +196,14 @@ TRand_kr::TRand_kr(int argc, t_atom *argv)
hi=sc_getfloatarg(Args,1);
range = hi - lo;
- rgen.init(0);
+ rgen.init(timeseed());
AddOutFloat();
FLEXT_ADDBANG(0,m_bang);
FLEXT_ADDMETHOD_(0,"setlo",m_setlo);
FLEXT_ADDMETHOD_(0,"sethi",m_sethi);
+ FLEXT_ADDMETHOD_(0,"seed",m_seed);
}
void TRand_kr::m_loadbang()