Specifications

54 Abstraction
GOP-hardsynth
Clobber
Ooomph
Knarleyness
fig 5.13: Appear-
ance of a GOP ab-
straction
Here is what the abstraction looks like when you cre ate an
instance (Fig. 5.13). Notice that the name of the abstrac-
tion appe ars at the top, which is why we left a little top
margin to g ive this spac e . Although the inlet box partly
enters the frame in Fig. 5.12 it canno t be seen in the ab-
straction instance beca use only GUI elements are displayed.
Coloured canvases
3
also appear in GOP abstr actions so if
you want decorations they can be used to make things prettier. Any can-
vases appear above the name in the drawing order so if you want to hide the
name make a canvas that fills up the whole GOP window. The abstraction
name can be turned off altogether from the properties menu by activating
hide object name and arguments.
Using list inputs
inlet f1
osc~ osc~
+ 1
inlet f2
osc~ osc~
inlet f4inlet f3
pd ringmod
pd ringmod
pd ringmod
outlet~
* 2000
+ 10
* 100
+ 0.1
* 500 * 5000
+ 100
*~ 0.05
fig 5.14: Preconditioning nor-
malised inlets
The patch in Fig. 5.14 is a fairly arbitrary example
(a 4 source cross ring modulator). It’s the kind of
thing you might develop while working on a sound
or composition. This is the way you might con-
struct a patch during initial experiments, with a
separate inlet for each parameter you want to mod-
ify. There are four inlets in this case, one for each
different fre quency that goes into the modulator
stages. The first trick to take note of is the co n-
trol pre-conditioners all lined up nicely at the top.
These set the range and offset of each parameter
so we can use uniform controls as explained below.
Packing and unpacking
osc~ osc~
+ 1
osc~ osc~
pd ringmod
pd ringmod
pd ringmod
outlet~
* 2000
+ 10
* 100
+ 0.1
* 500 * 5000
+ 100
*~ 0.05
unpack f f f f
inlet params
fig 5.15: Us ing a list input
What we’ve done here in Fig. 5.15 is simply replace
the inlets with a single inlet that carries a list. The
list is then unpacked into its individual members
which are distributed to each internal parameter.
Remember that lists are unpacked right to left, so
if there was any computational order that needed
taking care of you should start from the rightmost
value and move left. This modification to the patch
means we can use the flexible arrangement shown in
Fig. 5.16 called a “programmer”. It’s just a collec-
tion of normalised sliders connected to a
pack
object
so that a new list is transmitted each time a fader is moved. In order to do this
it is necessary to insert
trigger bang float
objects between each slider as shown in
Fig. 5.16 (left). These go on all but the far left inlet. Doing so ensure s that the
float value is loaded into
pack
befo re all the values are sent again. By prepending
3
Here the word “canvas” is just used to mean a decorative background, different from the
regular meaning of patch window.