Moonix's PureData Tools
02 February 2005
EXTERNALS:
Here are the libs I've written for Pd.
They can be splitted in three parts:
- the nilib library, which is a
kind of
wrapper
between Pd and Gtk, and its objects:
nifs (a one-click file selector, with
many special tricks...), niscope (a simple oscilloscope), and nileon
(a simple drum machine, but it's the
replication of an enormous mechanical one, named Leon Napakatbra, which
was built from a 8 meters diameter merry-go-round...). There was also
nimouse (giving mouse position/buttons) and nitab (the same for wacom
serial graphire tablet) but i don't use these anymore: it's too
dangerous to access a device file directly from pd. Beter use gtkmouse and wac/wacusb programs with
pdsend/pdreceive (see moon-utils farther).
- the sub library, which is a
collection of
gui control objects (subdial, subslider, subbang
and subtoggle)
that are placed into a subpatch but are visible in the parent window,
into
the subpatch's box. The idea was to build easy-to-use complex
subpatchs,
or abstractions. I wrote it before "graph-on-parent" was implemented in
Pd, so it's a bit deprecated now, but it has the advantage that subs
values (positions of the buttons) are saved into the parent patch...
very useful in case of abstractions.
About of these questions, have a look to my AutoPreset abstractions,
which adds a way to save the value of parameters (regular gui objects
like sliders, toggles
etc..., and symbols, tables, symbol arrays) into either a file or the
parent patch, even those nested in
abstractions (and recursively in abstractions
of abstractions...).
- some other
objects, such as:
- tabenv : like env~, an enveloppe
follower, but computing on a table, so possibly much speeder than
real-time
env~'s computation.
tabsort and tabsort2 : returns the
indices of the sorted table (tabsort2 is bidimentionnal).
- gamme : one octave of a piano
keyboard used
to filter/choose notes in a selected scale
absolutepath/relativepath : to use datas
(sounds, texts, presets, images, programs...) nested in the patch's
directory (and in subdirs).
sarray and slist : to creates shared
dynamic arrays or lists with symbols.
sfread2~ and readsfv~ : to pitch the
direct-from-disk reading of sound files.
dinlet~ : an
inlet~ with a default value (when nothing is connected to it).
mknob : a round
knob ala iemgui vslider (with its "properties" window).
dispatch : creates
one bus name for many buttons' buses: from the N pairs
(slider1-snd/slider1-rcv) ... (sliderN-snd/sliderN-rcv),
creates only one pair of buses named (slider-snd/slider-rcv) , in which
datas are prepended by the number of the "sub-bus".
- joystik : an improvment
of Joseph A. Sarlo's joystick.
- image
: an improvment of Guenter Geiger's one. Same name, but
it's compatible. Here you can share images through different objects,
preload a list of images, and animate this list.
and some
others...
CAUTION:
This stuff was written with Pd
v0.34-4 to v0.37
on a PC under Linux. It hasn't be tested under other conditions; nilib
will only work under Linux (but I think it will be OK on other machines
than PC), because of use of mutlithreading and GTK .
Anyway makefiles are only working for Linux for
the moment.
Moreover I think sub library is
potentially
very sensible to possible modifications of Pd sources.
Download: moonlibs-0.2.tgz
ABSTRACTIONS:
AutoPreset
have to choose which kind of data you want), and the number of states
(patterns) is predefined abstractions add a way to memorize different
states of parameters (floats, symbols, tables and symbol-tables), to
recall these states, and to save/load the whole set (called a
"preset"), either to a text file on disk, or inside the patch itself
(into a "message" object). This also works with abstractions and nested
abstractions (abstractions inside abstractions), even if the same
abstraction is use several times. There are different ways to pass or
not the calling or storing of states ("patterns") from a parent patch
to a child patch (abstraction). This could recall the work of Frank
Barknecht: RRADical, but it's different approach: here the pattern data
is stored in each component when running, and is centralized only at
save/load time. The components are "typed" (you, even if you can change
it. I wrote a small tutorial, so it should not be too hard to use it.
Download: AutoPreset.tgz
UTILITIES:
Here are some programs to help using mouse events,
wacom tablet events, parallel port. Some are not documented, and
probably unusable for most people, but I prefer to keep all this
together. There are also some scripts-fu for the Gimp, to make rotative
animations (to use with "image" external for example, to make beautiful
rotating knobs...).
Download: moon_utils.tgz
Links:
H-A-U-T-Metalu
is a collective of artists based in Loos, near Lille, in the north of
France. It has produced Leon Napakatbra, a merry-go-round turned into a
mecanical rythm-box, and Axolotl, an utopic submarine. It also hosts
Al1&Ant1 projects.
Al1&Ant1
is a two people (Alain and Antoine) work, around Pd/Linux and
artistical machine development. We have built the Hurlomatic (a machine
where you have to scream the more powerfuly and the longer you can,
after you have told your name; highest scores etc...), the KE01Serie
(the Karaoke ElectroAcoustic, with which about 9 people can experiment
playing realtime electronic music together), and we participate
sometimes to courses into workshops about music on computer and
opensource softwares.
Incorect
is a group of web-designers based near Lille. Go to their site,
it's terrifying...
PureData:
pdb, the Pure
Data Base
PdWiki
pure
data list
archive
