MSHAKERS

the "Shakers" PhISEM and PhOLIES physical model (in package insts.stk)


MSHAKERS realizes the sound of many 'shaken' instruments (maracas, sleigh bells, change rattling in coffee mugs, etc.) using a "stochastic modelling" approach that Perry Cook developed. There are a large number of diverse sounds available through this one instrument -- try 'em all!

It was originally adapted from Perry Cook and Gary Scavone's STK, the Synthesis ToolKit for doing amazing physical model stuff.

Here's what Perry says about "Shakers":




p-fields:
/* MSHAKERS - the "Shakers" physical model instrument in
        Perry Cook/Gary Scavone's "stk" (synthesis tookkit).

   p0 = output start time
   p1 = duration
   p2 = amplitude multiplier
   p3 = energy (0.0-1.0)
   p4 = decay (0.0-1.0)
   p5 = # of objects (0.0-1.0)
   p6 = resonance freq (0.0-1.0)
   p7 = instrument selection (0-22 -- see "instruments" file for listing)
   p8 = percent of signal to left output channel [optional, default is .5]

*/
Sample scorefile #1:
rtsetparams(44100, 2)
load("MSHAKERS")

st = 0
numobjs = 0
for (i = 0; i < 20; i = i+1)
{
        MSHAKERS(st, 0.5, 20000, 0.8, 0.8, numobjs, 0.1, 0)
        numobjs = numobjs + 0.05
        st = st + 0.2
}

st = st + 0.5
energy = 0
for (i = 0; i < 20; i = i+1)
{
        MSHAKERS(st, 0.5, 20000, energy, 0.8, 0.5, 0.1, 0)
        energy = energy + 0.05
        st = st + 0.2
}

st = st + 0.5
decay = 0
for (i = 0; i < 20; i = i+1)
{
        MSHAKERS(st, 0.5, 20000, 0.8, decay, 0.5, 0.1, 0)
        decay = decay + 0.05
        st = st + 0.2
}

st = st + 0.5
resofreq = 0
for (i = 0; i < 20; i = i+1)
{
        MSHAKERS(st, 0.5, 20000, 0.8, 0.8, 0.5, resofreq, 0)
        resofreq = resofreq + 0.05
        st = st + 0.2
}
Sample scorefile #2:
rtsetparams(44100, 2)
load("MSHAKERS")
t = 0
inst = 0
for (j = 0; j < 23; j = j+1)
{
        for (i = 0; i < 20; i = i+1)
        {
                MSHAKERS(st, 0.5, 20000, 0.9, 0.8, 0.5, 0.7, inst)
                numobjs = numobjs + 0.05
                st = st + 0.2
        }
        inst = inst + 1
}