aboutsummaryrefslogtreecommitdiff
path: root/sc4pd/source/Dust.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sc4pd/source/Dust.cpp')
-rw-r--r--sc4pd/source/Dust.cpp19
1 files changed, 17 insertions, 2 deletions
diff --git a/sc4pd/source/Dust.cpp b/sc4pd/source/Dust.cpp
index 58decd8..0acd45f 100644
--- a/sc4pd/source/Dust.cpp
+++ b/sc4pd/source/Dust.cpp
@@ -63,9 +63,15 @@ protected:
m_thresh = m_density/Samplerate();
m_scale = m_thresh > 0.f ? 1.f / m_thresh : 0.f;
}
+
+ void m_seed(int i)
+ {
+ rgen.init(i);
+ }
private:
FLEXT_CALLBACK_F(m_set);
+ FLEXT_CALLBACK_I(m_seed);
float m_density, m_thresh, m_scale;
RGen rgen;
@@ -76,12 +82,14 @@ FLEXT_LIB_DSP_V("Dust~",Dust_ar);
Dust_ar::Dust_ar(int argc, t_atom *argv)
{
FLEXT_ADDMETHOD_(0,"set",m_set);
+ FLEXT_ADDMETHOD_(0,"seed",m_seed);
//parse arguments
AtomList Args(argc,argv);
m_density=sc_getfloatarg(Args,0);
- rgen.init(0); //set seed to 0
+ rgen.init(timeseed());
+
AddOutSignal();
}
@@ -129,6 +137,11 @@ protected:
void m_set(float f);
Timer Dust_timer;
void m_doit(void*);
+
+ void m_seed(int i)
+ {
+ rgen.init(i);
+ }
private:
float m_density, m_scale;
@@ -136,6 +149,7 @@ private:
RGen rgen;
FLEXT_CALLBACK_1(m_set,float);
FLEXT_CALLBACK_T(m_doit);
+ FLEXT_CALLBACK_I(m_seed);
};
FLEXT_LIB_V("Dust",Dust_kr);
@@ -144,12 +158,13 @@ Dust_kr::Dust_kr(int argc, t_atom *argv)
: Dust_timer(false)
{
FLEXT_ADDMETHOD(0,m_set);
+ FLEXT_ADDMETHOD_(0,"seed",m_seed);
//parse arguments
AtomList Args(argc,argv);
m_density=sc_getfloatarg(Args,0);
- rgen.init(0); //set seed to 0
+ rgen.init(timeseed());
AddOutFloat();
FLEXT_ADDTIMER(Dust_timer,m_doit);