1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
Tcl for Pd
==========
this library allows you to to write externals for Pd using the
Tcl language. despite tot/toxy/widget externals, Tcl code ran
with tclpd actually runs in server (rather than gui process).
this is a PRE-ALPHA release: it means something work, but don't
expect to do serious things right now. also expect changes to
the Tcl API and around.
Data conversion between Tcl <=> Pd
==================================
In pd exists 'atoms'. An atom is a float, a symbol, a list item,
and such.
Tcl does not have data types. In Tcl everything is a string,
also numbers and lists. Just when something needs to be read as
number, then evaluation comes in.
This leads to loss of information about atom types. Imagine a
symbol '456' comes into tclpd, you won't know anymore if "456"
is a symbol or a float.
Here a little convention comes in action: in tclpd an atom gets
converted to a two-item list, where first item is atom type,
and second item is its value.
Some examples of conversion:
Pd: 456
Tcl: {float 456}
Pd: symbol foo
Tcl: {symbol foo}
Pd: list cat dog 123 456 weee
Tcl: {{symbol cat} {symbol dog} {float 123} {float 456} {symbol wee}}
Examples
========
I provided small examples.
after loading pd with option '-lib tcl', just type the filename
(minus the .tcl extension) to load the Tcl externals examples.
actually there is one simple example: list_change (behaves like
[change] object, but work with lists only)
examples make use of pdlib.tcl, a little API I wrote to make
things more cute.
you are free to not use it (just look in pdlib.tcl to know what
happens for real) or better: YOU ARE ENCOURAGED to write an OOP
system for writing externals with tclpd.
Authors
=======
* Federico Ferri <mescalinum@gmail.com>
* Mathieu Bouchard <matju@artengine.ca>
License
=======
See COPYING file provided with the package.
|