giovedì 4 agosto 2011


Pdnoo is a PDa port for caanoo.
PDa is a Pd clone for PDAs.
So with this port you can run Pd on your caanoo.

All needed files are downloadable on

Here is a copy of the included readme:

a PDa port for caanoo

pdnoo is composed by two softwares:
1. PDa (Pure Data Anywhere)
2. A 'proof of concept' frontend written in Bennu

PDa was compiled with the official GPH toolchain, using a modified makefile
(included into this distrubution) and without graphical support.
I added these lines to PDa makefile:

# CAANOO toolchain

ifeq ($(CC), arm-gph-linux-gnueabi-gcc)
pd_LDFLAGS += -elf2flt -static -static-libgcc
pd_LIBS = -lm -lpthread
pd_DEFINES +=  -D__linux__ -Dfork=getpid
extra_DEFINES += -D__linux__ -Dfork=getpid

        make pd_SRC="$(pd_SRC) $(extra_SRC)" DEFINES="-DPD -DUNIX -DSTATIC" CC="arm-gph-linux-gnueabi-gcc"\
             pd pd-watchdog $(BIN_DIR)/pdsend \

I also had to delete all esd related stuff.

To make PDa useful, you need some kind of frontend which have to speak with
pd in some way.
If you put a [netreceive] object into your pd-patch, you can send TCP
packets to pd.
This packets must follow the FUDI protocol, that can be easily implemented
into you custom code if you wish. A more simple approach is to call 'pdsend'
executable (included) that will make the job for you ('pdreceive' is also

You can write a frontend in your favourite language, I made one with Bennu,
because its caanoo support is good and it is a very simple language.
You can read the source of my code by opening 'pdnoo.prg' with your favourite
'pdnoo.gpe' is a simple script that starts pd, compiles and starts the bennu
To make everything work you have to install the bennu-runtime by coping
'bgd-runtime' directory into the same directory where 'pdnoo' directory and
'pdnoo.gpe' file are.
If you whish to install the runtime somewhere else, please edit the PATH lines
of 'pdnoo.gpe' properly.

Please condider my example frontend as 'proof of concept', its work is to read
touchscreen's coordinates and to send them to pd through 'pdsend'. It is not
perfect and right now to stop it you need to reset your caanoo.

If you are interested in updates or other things related to pdnoo please
visit my blog, where I will put my future improvements.

If you are interested in the source code of PDa go here:

To read about and download Bennu go here:

You can find the same GPH toolchain I used here:

If you do not have a caanoo but a gp2x here you can find a very similar thing
that actually inspired me:

If you do not know Pd, please visit this page:

To learn more about FUDI protocol:

I hope that this piece of software can be useful to musical experimenters or
to game developers who want to implement more dynamic sounds than a static
collection of waves.
Have fun with pdnoo, and please share your patch/code!


Nessun commento:

Posta un commento