1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
5
<TITLE>Pd Documentation 5</TITLE>
6
<meta http-equiv="Content-Type" content="text/html">
7
<link rel="stylesheet" type="text/css" href="pdmanual.css" media="screen">
12
<H2>Pd Documentation chapter 5. current status</H2>
15
<A href="index.htm#s5"> back to table of contents </A>
19
<P>This section tracks changes in Pd's current implementation.</P>
21
<H3> <A name="s2"> 5.1. release notes </A> </H3>
23
<P> ------------------ 0.37.1 --------------------------
25
<P> fixed the apple key on OSX so it does key accelerators
27
<P> fixed bug in -inchannels/-outchannels arg parsing
29
<P> major editions to the IEM GUIs to fix bugs in how "$" variables are handled.
30
The code still isn't pretty but hopefully at least works now.
32
<P> bug fix in vd~ for very small delays
34
<P> fixed MSW version not to make windows grow by 2 pixels on save/restore
36
<P> added an "nrt" flag for OSX to defeat real-time priritization
37
(useful when runnig Gem.)
39
<P> on some platforms, audio open failures are handled more gracefully.
41
<P> added a "changelog" file in the source directory to document source-level
44
<P> ------------------ 0.37 --------------------------
46
<P> Pd is finally fixed so that it can open and close audio and MIDI devices
47
on-the-fly (previously it opened them once at startup and hogged them until
48
Pd quit). Starting DSP causes audio devices to be opened, and
49
stopping it closes them.
50
There are dialog panels in the "Media" menu (which used to be called
51
"Audio") for choosing audio and MIDI settings. The "path" also can be changed
52
on the fly via a dialog in the "File" menu.
54
<P> A "vline" object acts like "line" but to sub-sample accuracy. See
55
the audio example, C04.control.to.signal.pd (and/or chapter 3 of
56
<A HREF="http://www.crca.ucsd.edu/~msp/techniques.htm"
57
<I> Theory and Techniques of Electronic Music </I> ).
59
<P> The block~/switch~ object now takes a "set" message to dynamically change
62
<P> The makefilename object takes a "set" message to set the "pattern". You
63
can use this to kludge multiple substitutions (as shown in the help file).
65
<P> The writesf~ object got an update and a better help window. It now should
66
be able to write 32bit floating-point WAV soundfiles. The file's sample rate
67
is now set "correctly".
69
<P> Various improvements were made in audio I/O to improve stability and
72
<P> Jack support should work for Mac OSX (it appears as a separate API).
73
Linux is offering experimental portaudio V19 support (but Mac and Window/ASIO
74
are still based on PA V18.)
76
<P> The fiddle~ object (in extra) has an "npoints" method to set the analysis
77
window size dynamically.
79
<P> (windows) Pd is now distributed as a self-extracting archive.
81
<P> (windows) url files in the help directories are opened correctly.
83
<P> (Mac) the arrow keys should now be fixed.
85
<P> (linux) The "configure" script should be better at finding TK in various
86
distributions (debian users previously had to use a special configure script.)
88
<P> (developers) Pd now exits cleanly from its main loop instead of bailing
89
out. A mutex protects Pd's data so it can be accessed from other threads.
90
(Thomas Grill's improvements.)
92
<P> (developers) The "savefunction" and "dialog" widget behaviors
93
were replaced by a better mechanism (class_setsavefn() and
94
class_setpropertiesfn()). THey're declared in m_pd.h so you don't have to
95
include the (unstable) g_canvas.h to get them.
97
<P> (developers) Better flag handling in the IEM GUIs (g_toggle.c, etc) should
98
compile with fewer warnings and be more portable.
101
<P> ------------------ 0.37-test 1 --------------------------
103
<P> The MacOSX version now prioritizes itself effectively (thanks to
104
gert@test.at (v93r)) via Adam Lindsay). Adam has made a proper MacOSX
105
"package" for Pd; see <A href="http://homepage.mac.com/atl/sw">
106
http://homepage.mac.com/atl/sw</A>.
108
<P> A bug was fixed in readsf~/writesf~ (things were coming out in the wrong
111
<P> A problem compiling Pd with TK8.4 (the latest version) was fixed.
113
<P> Large numbers of GUI improvements by Adam Lindsay, especially relevant
116
<P> For externs, the binary may now be included in a subdirectory of the
117
same name (e.g., "choice/choice.pd_linux" and "choice\choice.dll"). So
118
now you can pack multiple binaries for the same extern, along with the
119
source, in one convenient place. (Note that
120
"expr~" is an exception, since it goes by three different names, so this
121
trick fails for that example.)
123
<P> "Help" files renamed "help-xxx.pd", so that help files are now possible
124
for abstractions. The "help path" feature from CVS (I forgot who contributed
125
that) is also included but should now not be needed: Pd remembers where it got
126
externs and abstractions and looks back in the same directory for a help file.
127
See the way "extras" is organized.
129
<P> Pd refuses to connect signal outlets to non-signal inlets.
131
<P> When you save any patch, Pd looks for all invocations of that patch
132
as an abstraction and reloads them. This unfortunately has the side effect of
133
making all the containing windows visible, but it's better than nothing.
135
<P> ------------------ 0.36-1 -------------------------------
137
<P> "print" now queries you for a file to save the postscript to.
139
<P> "expr" brought up to date (0.4) -- a bug was fixed involving expresions
140
like "max($f1, 100)" which had erroneously output an integer.
142
<P> a bug fix in the 4-point interpolation formula, which affects tabosc4~,
143
tabread4~, tabread4, and vd~. These should have significantly lower
144
distortion than before.
146
<P> bug fix: vradio, hradio "send symbol" feature didn't work
148
<P> ------------------ 0.36 -------------------------------
150
<P> There's now an "undo" for most editing operations. Undoing is only
151
available in the window that was most recently edited. (One gotcha remains,
152
that "stretching" (in the font menu) affects all windows and you can't undo any
153
but the last one it touched.) Also, there's no "undo" for run-time operations,
154
only editing ones. That might be worth thinking about.
156
<P> Some bugs were fixed that affected "flipped" canvases (ones whose
157
"properties show a positive "y" increment per pixel.) Also, the coordinates
158
are now saved and restored correctly. "text" objects (comments) now stick to
159
the bottom of the window for flipped canvases.
161
<P> Signal lines now show up fatter than control lines. (Now I have to go
162
through the figures in the HTML doc again... drat)
164
<P> "Classic" number boxes now can have labels and send/receive signals, which
165
work in the same way as the IEMGUI controls do. I think "$1" style
166
label/send/receive names work too. I fixed a related bug
167
in the IEM code (typing at boxes sometimes crashed Pd).
169
<P> "vdial" and "hdial" were renamed "vradio" and "hradio", and fixed to
170
output numbers, not lists, like the other GUIs. The old ones are still around
171
for compatibility with old patches.
173
<P> "Make install" should now actually make Pd before trying to install it.
175
<P> "expr" is updated to Shahrokh's 0.4test3 version (which I modified somewhat
176
to get it to compile.)
178
<P> The problem of CPU usage skyrocketing on underflows in P4s should
181
<P> Compiled "pdsend" and "pdreceive" for Windows.
183
<P> "PD_VERSION" macro added to m_pd.h
185
<P> ------------------ 0.35 -------------------------------
187
<P> An experimental new feature called graph-on-parent allows subpatches and abstractions to show
188
GUI features; so, for instance, you can make an oscillator with a number box to
189
control the frequency. This is described in section 2.7.2 of the HTML
190
documentation and an example is shown in 7.stuff/synth1/.
192
<P> Spaces are allowed in pathnames to Pd and to patches; however, the "path"
193
variable still can't have spaces. (You can address path directories using
194
relative pathnames as in "../sound" (or ..\sound on Windows), even if there
195
are spaces further "up" the path to the patch. See 3.7, "dealing with files."
197
<P> The soundfile reading routine (used in readsf~ and soundfiler) is much
198
better at opening wav files with different header sizes and odd chunks.
199
You can now read floating-point "wav" files -- although you can't write them
202
<P> Templates and data structures are extensively reworked. A "struct"
203
object replaces "template", so that you specify the name of the structure as
204
the first argument to "struct" (previously it was derived from the
205
window name.) You can now have multiple "structs" of the same name; the
206
oldest one is the "real" one, but if you delete that, the structures are
207
all conformed to the next-oldest one, and so on. You can alter the contents of
208
a "struct" and all the associated data will be modified to fit the new
209
structure definition. Data are persistent, i.e., saved with the containing
210
patch. You can copy and paste data between patches. If you save data to a file
211
explicitly, you can read it into another patch and the data are conformed
212
automatically to the new data structures.
214
<P> A new version of Thomas Musil's GUI objects was merged in.
216
<P> The testtone patch works for up to 6 channels of audio input and output.
218
<P> Lots of improvements got made to audio I/O in general. In NT you may
219
specify "-asio" to use ASIO drivers; see HTML documentation section 3.2.
220
You may specify lists of audio input and output devices. In Linux, Pd
221
will now attempt to open each /dev/dsp* only once, even if it's requested
222
for reading and writing.
224
<P> The "extra" directory is now searched after the directories in the
225
search path, not before (so now you can override objects like "fiddle~").
227
<P> A bug in paf~ is fixed.
229
<P> In Linux, the ".pdrc" is now read before the command line arguments, so
230
that command line arguments override the .pdrc (it was backwards before.)
232
<P> In Linux, "help" now can invoke either mozilla or netscape to start
233
up the HTML documentation. This doesn't work in Windows or Mac land yet.
235
<P> In Linux, the "-32bit" flag was added, which you must now use if
236
running Guenter's OSS RME Hammerfall driver. (This was necessary because
237
OSS went and used the same "bit" for a different purpose, so that Pd tried
238
to open some other cards in 32bit mode inappropriately.)
240
<P> In Linux, MIDI is now opened "-NODELAY" ... this makes the OSS Creative
241
driver take MIDI input correctly which it didn't before.
243
<P> In MS windows, you can now use "readsf~/writesf~" for spooling sounds to
246
<P> MS Windows bug fixes: -nosound was ignored, and now works. Also, clicking
247
to open abstractions, when they were already open anyway, used to lose the
248
keyboard; this should be fixed now. Finally, "netreceive" didn't work when
249
running "-nogui". This is fixed, and moreover, you should definitely include
250
a netreceive object in any -nogui patch in MSW, otherwise it eats up all
251
available CPU time gratuitously.
253
<P> The outlet is removed from the "table" object.
255
<P> In MS Windows, Pd now has "-resync" and "-noresync" flags so that you
256
can specify how to deal with audio input and output blocksize nonsense in
257
MMIO. If "resync" is on, whenever the audio input and output seem out
258
of whack the audio driver resynchronizes all input and output devices;
259
otherwise the situation is simply ignored. "Noresync" is probably best for
260
consumer stereo cards (and is the default if you're running only 2 channels in
261
and out). If you're running more than 2 channels in either direction, the
264
<P> In soundfiler's read method, if you specify "-maxsize", that implies
265
"-resize" (as it ought to.)
267
<P> You can use $1-style names for arrays and tables.
269
<P> Pd will now refuse to make duplicate connections between objects.
271
<P> Pd is (somewhat shakily) running on Macintosh OS/X. See section 3.4 of
272
the HTML doc. For Macs with one-button mice, you can double-click in edit
273
mode to simulate a right click. Unfortunately, the "alt" key doesn't work
276
<P> In Linux, ALSA audio is now fixed to clip, not wrap around, on output
279
<P> Various problems were fixed with objects changing size. Number boxes never
280
wrap to two lines (as they used to), and lines are reconnected appropriately
281
when objects are resized.
283
<P> A function call is added to retrieve a unique event-dependent number,
284
so that objects like "buddy" can be written.
286
<P> All the "sound" command-line flags now have "audio" equivalents.
288
<P> The "-listdev" flag now works on Mac and MSW/ASIO.
290
<P> Help file updates for env~, route, and pointer
292
<P> ------------------ 0.34.3 -------------------------------
294
<P> fixed a bug in "udp" netreceive that crashed pd
296
<P> fixed a bug in tabosc4~ that caused gritty sound
298
<P> changed "specfile" for RPM releases (thanks Fernando)
300
<P> adopted Krzysztof's glob_setfilename bug fix
302
<P> bug fixes from "the joy of global variables" thread in Pd list
304
<P> made a help window for "table".
306
<P> ------------------ 0.34.2 -------------------------------
308
<P> fixed ".pdrc" bug
310
<P> added an experimental "pd restart-audio" feature for (new) Alsa
312
<P> ------------------ 0.34.1 -------------------------------
316
<P> 1. Closing a window with objects selected crashed Pd.
318
<P> 2. "find" when it opened a window to show the found object crashed Pd.
320
<P> 3. (Linux only) Oversized .pdrc files crashed pd...
322
<P> Also, I updated Thomas Musil's IEM GUI objects and their help files.
325
<P> ------------------ 0.34 -------------------------------
329
<P> I incorporated Thomas Musil's GUI objects (slider, button, etc.) into
330
the Pd release so Thomas won't have to publish patches to Pd anymore. I
331
didn't take the graphical inlets and outlets for reasons explained elsewhere,
332
but Thomas might decide to continue supplying them on a patch basis.
334
<P> Many new examples were added to the "2.control" and especially
335
"3.audio" example patches. A list of differences between Max/MSP and Pd
336
now appears at the end of this section.
338
<P> Finally, I fixed Pd to notice window iconification and suspend graphical
339
updates for iconified windows.
341
<P> Numbering of versions of Pd will now be as in "0.34.2" instead of
342
"0.34PATCH2" which was confusing.
346
<P> I incorporated Krzysztof Czaja's menuclose bug fix in g_canvas.c.
348
<P> (Linux) the configure script is more rational.
350
<P> the qlist and pack objects were fixed to handle reentrancy correctly.
352
<P> Pd now complains about running out of memory (before it dies.) I intend
353
to provide advance warning and automatically back out of loading patches that
354
would run out of memory, but that's not in place yet.
356
<P> Typing into a message box sometimes left you with lines from the output
357
pointing to the wrong location. Fixed.
359
<P> Reading of "wav" and nextstep soundfiles now handles the headers better.
361
<P> ------------------ 0.33 -------------------------------
365
<P> MIDI time jitter is reduced. Theoretically, it could now be
366
as low as the audio blocksize (and so if you care about MIDI timing, keep your
367
audio blocksize low.) If you run Pd with audio in stream mode or without
368
audio at all, and perhaps in some cases in block more too (?),
369
the controlling parameter for MIDI jitter is "-sleepgrain", which specifies
370
the interval of time Pd sleeps when it believes it's idle.
372
<P> You can now specify multiple MIDI input and output devices. For example,
373
"pd -midiindev 3 -midioutdev 4,2" asks for the third MIDI input device and the
374
fourth and second MIDI output device. The "channel message" midi objects in Pd
375
such as notein or pgmout will take channels 1-16 to mean the first open MIDI
376
port, 17-32 the second one, and so on. The midiin, sysexin, midiout objects
377
give you a separate inlet to specify which of the open MIDI port numbers
380
<P> (Linux only) By default, Pd now reads and write audio in "block mode."
381
Previously you have to specify "-frags" and/or "-fragsize" to get this.
382
As of this version you have to specify "-streammode" to get the opposite,
383
streaming mode. This mode seems only to work with a small number of sound
384
cards, notably Ensoniq ens1370 and ens1371.
386
<P> (Linux only) Also, "-fragsize" is replaced with a more convenient
387
"-blocksize" which you specify in sample frames. It defaults to 64 which is
388
Pd's audio computation block size but may be larger or smaller. Typically you
389
would specify "-audiobuf" and "-blocksize" and Pd will compute "-frags" for
390
you; but you can also specify "-frags" explicitly.
392
<P> (Linux only) OSS and ALSA audio support are improved. You can now talk to
393
RME9652 using Guenter's OSS driver; this is different from the "-RME" support
394
which uses Winfried's older driver. Other multichannel OSS drivers might now
395
work as well. Pd also seems to work with ALSA 0.9 Beta 4; I've tested this
396
with Midiman Delta 66 and Soundblaster live. I plan to update the linux audio
397
setup documentation accordingly.
401
<P> I've put in Shahrokh's new expr, expr~, and fexpr~ objects. The latter
402
allows you to make expressions referring to prior input and output samples in
403
case you're interested in writing your own recursive filters, oscillators,
404
or chaotic sound generators...
406
<P> In support of expr, you can now use commas in "object" boxes; they just
409
<P> sqrt~ is fixed so that it apparently has 24-bit accurate mantissas.
410
It turned out to be easier to just make it accurate than to confront the
411
question of how a reduced-accuracy version should be named.
413
<P> The bizarre framp~ object which does phase vocoder analysis got a help
414
window. The phase vocoder example doesn't use framp~ and I had forgotten
415
what it did until Guenter dug it back up.
417
<P> (Linux only) I finally got around to incorporating Guenter's autoconf
418
stuff, and learned about RPM. Major new Linux releases will probably be
419
in .tar.gz and .rpm formats; "test" releases will probably just be in .tar.gz.
420
I also fixed it so that the installation prefix is overridden if you invoke
421
pd by its full pathname, so that you can still use compilations with
422
installation prefixes before you actually install them.
424
<P> (NT only) I added support for directX using the portaudio package
425
by Ross Bencina and Phil Burk. I couldn't discover any way this would ever
426
outperform the old "multimedia" API Pd uses. So the release contains the sources,
427
but you have to recompile Pd to use directX. Use "makefile.nt.portaudio". Only
428
1 or 2 channels of audio are supported. The interesting thing is that the same
429
code will run on Macintosh. There are a couple of other obstacles to a
430
MacOS port of Pd though; it's hard to predict when this will be feasible.
434
<P> "drawnumber" was broken in 0.32 -- fixed.
436
<P> new arrays in 0.32p6 got ill-fitting graphs -- fixed.
438
<P> ------------------ 0.32 PATCH 6 -------------------
440
<P> Got array and graph dialogs to behave better when there are more
443
<P> put in mtof~, etc.
445
<P> made Pd search the "extra" directory without having to specify it in "path."
447
<P> bug fix in exporting patches to Max
449
<P> ------------------ 0.32 PATCH 5 -------------------
451
<P> Reversed the order of these release notes so that the newest appear first.
453
<P> Arrays can save their content with containing patch; the properties
454
dialog selects this. The dialog shows up when you create a new array from
455
the menu, and allows you to set the name and size. Only floating point arrays
456
can be created and edited this way.
458
<P> Bug fix: the figures in the NT web doc were garbage.
460
<P> Bug fix: large tables (> 800 pixels and points) no longer crash the GUI.
461
A related problem remains; large arrays are truncated to either 1000 points
464
<P> Bug fix: doing "save as" on an instantiated abstraction no longer sets
467
<P> in linux, a couple of status messages on opening /dev/dsp only appear now
468
if Pd is run "-verbose".
472
<P> ------------------ 0.32 PATCH 2, 3, 4 -------------------
474
<P> Hassled more with font size differences between NT and Linux, and updated
475
many help files. Minor bug fixes here and there.
477
<P> the table object now takes a second argument to set size in points.
479
<P> Improved underflow protection in some DSP objects.
481
<P> pointer now has a "vnext" traversal method which goes forward to the
482
next SELECTED object.
484
<P> improvements to throw~ (it now sums) and receive~ fixed to be settable.
486
<P> bug fix in which RME driver always thought sample rate was 44100.
489
<P> ------------------ 0.32 PATCH 1 -------------------
491
<P> bug fixes (bugs flagged by mik): vcf~ help window crashed; writesf~
492
only wrote 1 channel soundfiles; "table" object didn't open when clicked
495
<P> new object: tabosc4~ -- finally, a real wavetable oscillator for Pd.
497
<P> much work on "data" editing; go to 7.stuff/data-structures, open patches
498
5 and 7, and try clicking on things. Alt clicks delete or add points; regular
499
clicks drag values around. The cursor changes to show you what will happen
503
------------------- 0.32 -----------------
505
<P> <strong> New objects: </strong>
507
<P> midiin, sysexin, midiout. (I don't think MIDI sysex is working
508
in Windows yet though.)
510
<P> threshold~ as in Jmax, triggers from audio level.
512
<P> value as in Max and Jmax.
514
<P> writesf as in Jmax.
516
<P> <strong> New startup flags: </strong>
518
<P> -sleepgrain: if you aren't using audio I/O, this can reduce time jitter in
519
MIDI I/O. Otherwise, MIDI I/O jitter is limited by the audio buffer size.
521
<P> -noloadbang: cancels loadbangs.
523
<P> -nogui: suppress starting the GUI. You can then still talk to Pd using,
524
perhaps among other possibilities, the new network connection programs now
525
included in the release.
527
<P> -guicmd: lets you specify the command string Pd calls to start the GUI,
528
in case you've written your own GUI to replace the TK one Pd comes with.
530
<P> -send: after loading all the patches specified in the command line,
531
you can specify "startup" messages to send. For example, if you want to use
532
Pd just to play 50-channel soundfiles from a shell, this is how you can specify
533
the soundfile name on the command line.
535
<P> <strong> bug fixes. </strong>
537
<P> A readsf~ problem got fixed.
539
<P> hitting the tab key used to cause Pd windows to relinquish the keyboard.
541
<P> The $0 feature apperas now to work.
543
<P> Inlets and outlets of subpatches sometimes got out of left-to-right order.
545
<P> Scrollbars are less out of whack than they were before.
547
<P> Pd now knows to de-iconify windows if you "vis" them from the parent.
549
<P> <strong> in general: </strong>
551
<P> In Linux the treatment of MIDI input is now much more efficient. Also,
552
bugs were fixed in notein and (for SGI) bendin.
554
<P> You can "select all" from the Edit menu.
556
<P> standalone programs "pd-send" and "pd-receive" are provided that can send
557
mesages to Pd or receive messages from Pd via the netsend~ and netreceive~
558
objects. This should allow you to interface a wide variety of other programs
559
with Pd either on the same machine or over the network. Also you should be
560
able to hack the code into your own programs to make them interoperate with
561
Pd and/or each other. The underlying protocol is called FUDI.
563
<P> "Properties" for scalars, graphs, and number boxes: left click on them.
564
In particular, number boxes can have fixed widths and finite ranges; if you
565
make them one character wide they act as toggles. Later you'll be able to
566
configure them as sliders.
568
<P> As to scalars, the properties dialog lets you edit the data in the raw.
569
Don't try to edit the template though; you can't.
571
<P> You can now type into a "pd" object to change its name without losing the
574
<P> An experimental "scalar" _text_ object now allows abstractions to draw
575
primitive control panels on their parents when you invoke them, as if they were
576
Moog or Buchla modules. See the "7.stuff/data" examples.
578
<P> New help windows for the "data" classes (pointer, append, template, etc.)
579
and for send/receive which somehow I had neglected.
581
<P> When you hit "copy" with nothing selected, the copy buffer used to be
582
cleared. This is fixed to do nothing.
585
------------------- 0.31 -----------------
587
<P> ALSA support in Linux has been completely overhauled. It now works with
588
Midiman (up to 10 in/12 out!) and es1370. There are problems with SBLive under
589
ALSA but it works in OSS emulation with a "-frags" setting. See the "getting
590
started" documentation.
592
<P> In NT, the default is now "noresync" if you're running stereo. You can
593
override this with the "-resync" flag. If you're running more than 2 channels
594
it's the opposite (as it was before.)
596
<P> "symbol" boxes now display symbols and let you type them in.
598
<P> There was a bug when you renamed a patch from outside Pd; the old filename
599
still showed in the title bar (and there were other bad side effects.) FIxed.
601
<P> Protection was added against patches opening themselves as abstractions.
603
<P> The "route" object's handling of leading symbols was improved. I'm not
604
sure whether it's Max compatible or not.
606
<P> You can draw into arrays with the mouse, at least in the case where there's
607
at least one pixel per point. (I'm not sure if the other case even makes
610
<P> Abstractions display their "$1", etc., arguments in the window title bar.
612
<P> A "sort" method was added for lists to make them easier to use as
615
<P> The "save as" dialog makes a more reasonable choice of start-up directory.
617
<P> "Trigger i" is now disallowed (it used to crash Pd.)
619
<P> Getbytes and resizebytes now zero out new memory.
621
<P> A memory leak reported by Hannes has been partly, hopefully mostly, fixed.
623
<P> The "signal_free 2" bug reported by Fogar is fixed.
625
<P> New graphs now reliably avoid using already-taken "graph%d" names.
627
<P> The old bug which showed up as ".xxxxxxxxx: no such object" is fixed.
629
<P> The FFT examples have been reworked and the "pique" and "shift" objects
630
are moved to "extra".
633
------------------- 0.30 -----------------
634
<P> in Linux, you can get Pd to promote itself to "real time" priority.
635
A "watchdog" process protects you from having Pd lock your machine up. You
636
must request real time by running "pd -rt" or "pd -realtime". You must either
637
be superuser or make Pd a root-owned SETUID program (chown root .../pd/bin/pd;
638
chmod 4755 .../pd/bin/pd). For security reasons, Pd relinquishes root
639
privelige immediately after setting its priority, before loading
640
any patches or externs.
642
<P> Protection was added against message loops.
644
<P> loadbang was fixed so that loadbangs in abstractions go off before loadbangs
645
in the owner patch. Within each patch, loadbangs go off forst in subpatches.
647
<P> new object: tabplay~, a non-imterpolating sample reader.
649
<P> new objects (in "extra" library): loop~; rev1~.
651
<P> The "toys" library was renamed "extra" and incorporated in the Pd release.
653
<P> In Linux, timeouts were added to the driver opening and closing code
654
(which used to hang under some conditions.)
656
<P> the "field" object was replaced by "template"; see "data.structures"
657
examples in 7.stuff. Data lists can be read from and written to files now.
659
<P> You can invoke an external object by pathname, as in "../../extra/loop~".
661
<P> hip~, etc. should no longer get stuck when they get a NAN on input.
663
<P> a bug was fixed in expanding symbols such as "$1-foo".
666
------------------- 0.29 -----------------
668
<P> readsf~ - a MAX/FTS style soundfile player, which reads multichannel
669
soundfiles in wave, aiff, or next formats. The files must be 16 or 24 bit
670
fixed point or 32 bit floating point (only nextstep headers understand the
671
latter.) You can also override the header. A "skip" flag lets you read
672
starting anywhere in the file. (Sorry: linux only for now; I can't find
673
Posix threads packages for the other platforms.)
675
<P> soundfiler - support for reading and writing soundfiles (wave, aiff,
676
nextstep) to and from arrays. Multichannel soundfiles can be read into or
677
written from several arrays at once. When reading you can ask that the tables
678
be automatically resized; in any event the object obligingly outputs the number
679
of samples actually read. When writing you can specify a sub-segment of the
680
arrays, and/or request that the soundfile's maximum amplitude be normalized to
683
<P> tabplay~ - a non-interpolating sample player
685
<P> Garry Kling reports having compiled Pd for "yellowdog" linux on Macintosh
686
computers. One "fix" has been made to s_linux.c to facilitate this. I don't
687
have access to a Mac running linux at the moment so I can't verify whether
688
any particular repease of mine actually works there.
690
<P> Signal objects now automatically convert scalars to vectors, so that you
691
can just run a number box into a signal input. One caveat is that the binops
692
"+~", "-~", "*~", "/~", "max~", "min~" run slightly faster if you give them
693
an argument to tell them that their right inlet will be scalar; so the
694
construction "+~ 0" is still meaningful. This will get fixed at some later
697
<P> Font sizes work in what I hope will be a more machine-portable way. On
698
any machine, the point sizes 8, 10, 12, 14, 16, 24 are DEFINED to be the
699
largest fonts Pd can find that don't exceed their size on my linux machine.
700
This way I can write patches that everyone else can read, and others will
701
at least have fewer portability problems than before. The downside is that
702
your old patches may appear with a different type size than you want; use the
703
"font" menu item to fix them.
705
<P> The OSS support no longer asks the audio driver whether full duplex
706
is needed; it just tries to open it. Apparently some drivers (such as
707
ALSA's OSS emulation) might do full duplex but not implement the call Pd
708
used to query for it.
710
<P> You can give "-nomidi" as a flag (previously you had to type "-nomidiin
713
<P> A GUI bug reported by Iain Mott was fixed.
715
<P> You can now type symbols such as "$3-poodle" and the "$3" portion gets
716
expanded properly. Someone was also asking about the FTS-style #0 feature,
717
but I couldn't figure out how to reconcile it with Pd's usage of "$" for "#"
718
in abstractions. So I'm still searching for a good way to provide local
721
<P> the GUI now protects itself from "\", "{" and "}" characters by dropping
722
them. I wonder how many NT users have crashed Pd trying to type in filenames
725
<P> samphold_set and tabwrite_stop methods added. There turned out to be
726
no help window for samphold~ so one was supplied.
729
------------------- 0.28 -----------------
731
<P> Version 0.28 has a primitive in-box text editor... about time!
733
<P> the "front panel" now gives you information on audio levels and
736
<P> Message boxes flash, sort of, when you click them.
739
Support has been added for RME 9652 soundcards; see the Linux soundcard section of
740
the documentation. Support files for RME and PCI128 (Ensoniq es1370) cards
741
are released separately from Pd.
743
<P> The delete and backspace keys clear the current selection. There is
744
unfortunately no "undo" though; I'm not sure this is a good thing to have
747
<P> The "until" object has a "float" method which limits the number of bangs
750
<P> The audio setup is better documented for NT and Linux.
752
<P> The externs in 4.fft and 6.externs got recompiled and tested.
754
<P> BUG FIX: the "read16" message to tables was broken on NT and is now fixed.
756
<P> BUG FIX: In Linux, starting Pd up sometimes changed the audio mixer
759
<P> BUG FIX: sending "floats" to inlets expecting lists now works correctly.
761
<P> BUG FIX: "route" on symbols now deals better with symbols, floats and lists.
764
------------------- 0.27 -----------------
766
The main new feature is the "find" menu stuff. You can search for boxes
767
containing specified atoms, including semicolons or commas. Most errors are
768
now trackable, allowing you to "find last error". Look in the "Find" menu.
771
New objects written: change, max, max~, min, min~, and swap.
774
I looked in 0.INTRO.txt in 5.reference, and found that the objects
775
bag, cputime, realtime, pipe, symbol, poly, and bang were missing.
778
Five or six bug fixes.
781
Some audio problems in 0.25 were addresses. In Linux, audio drivers that
782
don't support the GETISPACE/GETOSPACE ioctl calls can be called using the
783
(inferior) "-frags/-fragsize" mechanism. If you specify either a "-frags"
784
or a "-fragsize" option, the GETIOSPACE calls are cancelled.
787
Under NT, for some audio drivers the 0.26 release gave a constant stream of
788
"resync" events. I don't know what causes this but I added a "-noresync"
789
option which simply never resyncs at all.
792
------------------- 0.26 -----------------
794
phasor~ and osc~ can be configured to take floating point messages to set
795
their frequencies, as an alternative to having an input signal to do the
796
same. Also, +~, etc, can take floating point arguments (and messages) to
797
add or multiply scalars. THe +~, etc, loops were unrolled to make them
801
A switch~ object is provided to let you switch sub-patches on and off. The
802
inlet~ and outlet~ objects were re-written to avoid adding any overhead when
803
moving signals in or out of sub patches.
806
In Linux at least, the audio latency is much reduced. It's possible to poll
807
for audio I/O lateness errors by sending "pd audiostatus".
810
When reading a sample using tabread4~, you can switch between sample tables
811
using the "set" message.
814
A new "textfile" object is like qlist but more flexible.
817
Many help windows got updated (but at least a dozen more need work urgently).
820
A dsp_addv function was added to allow variable-length DSP calls (for writers
824
It's possible for a tilde extern to have a name ending in "tilde" now. Name
825
the setup routine "foo_tilde" for "foo~", etc.
828
The dac~ object was fixed to clip its output when out of range (before it
832
A first line of protection was added against getting numerical underflow
833
in delay feedback loops. Before, when a reverberator taled out there was
834
a sudden jump in CPU usage because the numerical underflows would trap to the
835
kernel. Now, if any delwrite~ is given a value less than 1e-20 or so, it
836
records a true zero to avoid this.
839
Signal division checks for divide by zero.
842
A "Font bomb" feature is provided for resizing fonts and stretching and
843
contracting patches to fit.
846
Pds now bind themselves to the symbol pd-<window-name).
849
IN Linux, if Pd is called as root it tries to promote its run-time
850
priority. You can make pd a setuid root owned program if you want this
851
behavior for non-root users who start pd.
852
(Don't make pd-gui setuid though. That would make a security
853
hole in your system.)
856
The Pd commend line can take multiple "open" arguments.
859
The file search path feature was fixed amd generalized.
862
Alt-clicking a table gives you a dialog to set its x and y range and pixel
866
------------------- 0.25 -----------------
868
Lots of minor, under-the-hood improvements and bug fixes...
870
The Netsend/netreceive objects were improved; you can now choose between UDP
871
and TCP and there's an outlet to tell you whether they're connected.
873
You can now alt click on an object to get its help window (and the help
874
windows got a fair amount of work.)
876
multichannel audio I/O -- you can get up to 8 audio cnahhelsin and out.
877
On SGI this is sdone correctly; on NT it's done using sequential "stereo"
878
devices. I'm not sure of the status of multichannel in linux...
880
The "text" window got new accelerators and a bigger font size
882
there are 3 "tool" patches in 7.stuff: filtering, pvoc, ring mod.
884
In NT, command-line backslashes are converted to forward slashes.
886
There's a load measurement tool in the "help" menu.
888
The SGI version contains an n32 binary (look at the "bin" directory).
891
------------------- 0.24 ---------------
894
<BR> - bang - convert any message to a "bang"
895
<BR> - qlist - message sequencer
896
<BR> - textfile - file to message converter
897
<BR> - makefilename - format a name with a variable field
898
<BR> - openpanel - "Open" dialog
899
<BR> - savepanel - "Save as" dialog
902
<BR> - Fixed a bug in "const" message to arrays
903
<BR> - "exp" was broken on NT, now fixed
904
<BR> - phase vocoder example improved
905
<BR> - "read" message to arrays now zero out unread samples
906
<BR> - bug fix in "key" object
907
<BR> - bug fix in ifft~ (thanks to Peter Lunden)
908
<BR> - "print" object fixed to distinguish between lists starting with symbols and
910
<BR> - polygon, curve, fpolygon, fcurve renamed to fix name clash with Gem
911
<BR> - improved "new object" placement on screen
912
<BR> - fixed help dialog to remember previous directory (thanks to Harry Castle)
913
<BR> - heterogeneous lists
916
Arrays can be written to and read from text files or from 16-bit
917
binary files. See ../2.starter/2G for an overview.
920
Guenter Geiger has contributed a Max-style "table" object which
921
creates an "array" object in a subwindow.
924
Guenter has also put in a "search path" feature for externs, abstractions,
928
The Help menu got reworked.
931
Select and Route were extended to work Zack-style with symbols.
934
"random" takes seeds now (see the "help" window)
937
Some more work on graphical lists; you can see the current state in
938
../7.stuff/data-structures. It's still nascent.
940
------------------- 0.23 -------------------
942
A first cut at the "pure data" feature is now included. See section 6
943
of the documentation for a quick introduction to it; see also patches 12 and
944
14 in the FFT examples.
946
The documentation has been reorganized. The most interesting new features are:
947
<BR> - some new "tutorial" patches
948
<BR> - 15 "fft" examples
949
<BR> - improved help navigation
952
<BR> - titles on abstractions no longer saved inside file
953
<BR> - left-to-right sorting of inlets/outlets now seems to work
954
<BR> - nt audio setup got confused when driver couldn't do full duplex
955
<BR> - opening window with audio on is now fixed
956
<BR> - deleting inlets/outlets deletes connections first (used to crash)
957
<BR> - 1e20 parsed correctly now
958
<BR> - osc1~ fixed and optimized
959
<BR> - resizing arrays with DSP on used to crash; now fixed
960
<BR> - pasting now adds to the end of the list (used to add to beginning)
961
<BR> - clicking now selects the most recent object when two or more overlap
962
<BR> - Pd's "open" and "help" dialogs now maintain separate paths
964
The phasor~ object's "float" method has been REMOVED -- use the right-hand
965
inlet to set the internal phase. This is so that I can later fix all tilde
966
objects to convert messages to signals automatically at all signal inputs.
969
------------------- 0.22 -------------------
972
<BR> - parsing 1e+006 gave symbol (now float)
973
<BR> - "." parsed as number, should be symbol
974
<BR> - change GUI polling loop to TK event dispatch (unix only)
975
<BR> - improved "tidy up" feature
976
<BR> - size check added to text boxes (used to crash; still not correct.)
977
<BR> - occasional bug sending text with CRs to tk
978
<BR> - binop startup bug
979
<BR> - key accelerators for creators wrong
980
<BR> - ftom range to 1500
981
<BR> - bug in pack, unpack
982
<BR> - windows restore bigger than saved
986
Nt-specific bug fixes:
987
<BR> - getsockopt for netreceive fails. Just omitted it for NT.
988
<BR> - put tcl dlls in tcl bin, not pd bin
989
<BR> --- archive tcl subsystem for easier version updates
990
<BR> --- fix README accordingly
991
<BR> - deal with bell sound
992
<BR> - turn on optimization
993
<BR> - looked for audio timeout bug but couldn't find it.
996
------------------- 0.21 -------------------
1002
table size change with DSP on: It used to crash Pd to resize an array
1003
when DSP was turned on. This is now fixed.
1006
deselect all when locking. When you lock a patch the selection is cleared.
1009
unlock when pasting. .. and if you paste into a petch, it's unlocked.
1013
lost keyboard events. Version 0.20 lost keyboard events and
1014
forgot window size changes. This should now be fixed.
1016
<BR> subpatches came up in wrong font size
1017
<BR> dirty flag on window title bar fixed
1018
<BR> improvement to netreceive suggested by Mark Danks
1019
<BR> style notes fleshed out as suggested by Larry Troxler
1020
<BR> fixed Bill Kleinsasser's bug (short and long array in same graph)
1025
<BR> phase setting for phasor~
1026
<BR> fft objects. Also, block~, for specifying block sizes and overlaps for FFTs.
1027
<BR> canvas_makefilename() (used, e.g., by array_read and write)
1028
<BR> "stuff" directory with examples of real Pd applications.
1031
------------------- 0.20 -------------------
1034
In NT, the 0.19 release turned out not to contain all the files needed to make
1035
TCL run. This problem should now be fixed.
1038
Also, the array_write routine was fixed.
1041
------------------- 0.19 -------------------
1044
notable new objects:
1047
- vcf~, a bandpass filter with a signal input for center frequency.
1049
- delread, delwrite, vd, as in ISPW Max.
1051
- various math and midi stuff
1053
- catch~, throw~, send~, receive~ for nonlocal signal connections
1055
- an experimental facility for array of floats is included. You can make a new
1056
array (from the "put" menu) which will be given a name such as "array1". You
1057
can then send it "read <file>", "write <file>", "resize <N>", and "print"
1058
messages. File reading and writing is in ascii. "resize" changes the size of
1059
the array, and "print" prints its vital signs. You can then use "tabread4~"
1060
to do a 4-point interpolating table lookup, and tabwrite~ to write audio
1061
samples into the table.
1063
Numbers now default to floating point, although certain objects like "spigot"
1064
and "metro" still convert their boolean inputs to integers so that 0.5 is
1065
"false." This behavior will probably change later. The "div" and "mod"
1066
objects are introduced for explicit integer division and remainder.
1068
Number boxes drag in integer increments, or in hundredths if you hold the
1069
"shift" key down when you click.
1071
Pd documents now save their font sizes. The font size is global to an entire
1072
document. New documents come up in the font size Pd was started in (using
1073
the "-font" flag.) If you want to change the font size of an existing
1074
document, use a text editor; the font size is the last argument on the first
1075
line. 8, 10, 12, 14, 16, 18, and 24 are supported.
1077
The abbreviations "t," "f," and "i" stand for "trigger,", "float", and "int."
1079
Inlets and outlets of subpatches are now sorted correctly; although there is
1080
still a problem deleting inlets/outlets which have connections.
1082
The size and screen location of Pd documents is saved correctly.
1084
Tilde objects now work in "subpages" although there is no way to send
1085
signals through their inlets and outlets; use throw~/catch~ or send~/receive~.
1087
On NT, the default is to open both audio output and input (this used not
1088
to work.) The situation is still shaky; audio seems to hang up sporadically
1089
on my machine; but I seem to have installed my audio driver wrong anyway.
1090
I had to set a huge output FIFO (1/3 sec or so!) to get it to work at all.
1091
You can type "pd -dac", "pd -adc", or "pd -nosound" to get output only,
1092
input only, or no audio at all.
1093
NT's MIDI input and output are supported, but on my machine MIDI output is
1094
flaky. I'm curious how all this will work on other machines...
1096
The list of classes is now:
1100
field inlet outlet print int float send receive select route pack unpack
1101
trigger spigot moses delay metro line timer makenote stripnote random loadbang
1102
serial get netsend netreceive
1106
+ - * / == != > < >= <= & && | || %
1107
mod div sin cos tan atan atan2 sqrt log exp abs
1108
mtof ftom powtodb rmstodb dbtopow dbtorms
1112
notein ctlin pgmin bendin touchin polytouchin noteout ctlout pgmout bendout
1113
touchout polytouchout
1117
dac~ adc~ sig~ line~ snapshot~ +~ -~ *~ /~ phasor~ cos~ vcf~ noise~ env~ hip~
1118
lop~ bp~ biquad~ samphold~ clip~ rsqrt~ sqrt~ wrap~ print~ scope~ tabwrite~
1119
tabread4~ send~ receive~ catch~ throw~ delwrite~ delread~ vd~
1122
------------------- 0.18 -------------------
1125
Release notes now descrie the three platforms Pd runs on: IRIX and
1126
NT (maintained at UCSD) and LINUX, maintained by Guenter Geiger.
1129
menu "close" on a dirty document now checks if you really want to close
1130
without saving (although "quit" will still exit Pd without verification.)
1133
Got rid of "dll" error printout when loading abstractions
1136
------------------- 0.12 - 0.17 -------------------
1139
got Pd running under NT, although driver problems remain. Gem is also
1140
distributed for both platforms.
1143
------------------- 0.11 -------------------
1146
Here's a list of all the objects in this release:
1149
general: print int float send receive select pack unpack trigger spigot
1151
time handling: delay metro line timer
1153
arithmetic: + + - - * * / / == == != != > > < < >= >= <= <= & && | || %
1155
midi: notein noteout makenote stripnote
1159
signals: dac~ adc~ sig~ line~ snapshot~ +~ *~
1161
signal oscillators: phasor~ cos~
1163
signal filters: env~ hip~
1165
signal debugging : print~ scope~
1169
"spigot" replaces "gate" but has the inputs reversed.
1172
------------------- 0.10 -------------------
1175
Many bug fixes. This was the first pre-release to be put on the FTP site.
1178
------------------- 0.09 -------------------
1180
<BR> set up the "Help" menu
1181
<BR> Bug in DSP sorting fixed
1182
<BR> "Notein" and "noteout" objects
1183
<BR> Comments from the Put menu say "comment" (they were invisible before)
1184
<BR> The scheduler deals better when sound I/O malfunctions
1187
------------------- 0.08 -------------------
1192
<BR> text box wraparound at 80 chars.
1193
<BR> fixed boxes to reconnect on retype
1196
------------------- 0.07 -------------------
1199
- made an adc~ object
1202
------------------- 0.06 -------------------
1205
- fixed two bugs in DSP sorting
1207
- added DSP on/off gui
1209
- added lock/unlock and changed the cursor behavior
1211
- fixed -font flag to set font pointsize
1214
------------------- 0.05 -------------------
1216
- added scope~, which is just a stopgap until real sound editing comes up.
1218
- improved the open panel slightly.
1220
- added atoms (int only).
1222
- reworked text editing to reside in Pd, not Pd-gui.
1224
- included a dbx-debuggable Pd in the distribution. I haven't yet figured
1225
out how to get dbx to work with externs though.
1228
------------------- 0.04 -------------------
1230
fixed "cut" which crashed 0.03 if DSP was running.
1231
added clip~, print~, line~, snapshot~.
1235
------------------- 0.03 -------------------
1237
"pd dsp 1", "pd dsp 0" messages added. If you edit a patch with DSP on,
1238
PD resorts the DSP network as needed. Unconnected and multiple signal inlets
1242
------------------- 0.02 -------------------
1244
A DSP network mechanism has been added. DSP objects are:
1245
sig~, +~, *~, phasor~, cos~.
1247
Loading of externs is provided (although there is no search path mechanism
1248
so the extern has to be in the patch's current directory.) Look in
1249
pd/externs for an example.
1253
------------------- 0.01. -------------------
1255
This first release serves mostly to test the "release" mechanism. A Pd
1256
"canvas" object is provided which does both graphing and patch editing.
1257
The editing features apply only to the Max-like part; the graphs have
1258
to be edited into a Pd file via text editor.
1260
Four menu items (in the "put" menu) create the four kinds of "patchable"
1261
objects; they can be dragged and connected as in Max; to break a connection,
1262
just click on it (the cursor becomes a turkey to indicate this.) Cut,
1263
paste, and duplicate seem to work, and a "Pd" class offers subwindows.
1265
The following max-like objects are included:
1268
+, *, -, /, ==, !=, >, <, >=, <=, &, |, &&, ||, %;
1269
int, float, pack, unpack, trigger;
1270
delay, metro, timer;
1272
<P> -----------------------------------------
1274
<H3> <A name="s2"> 5.2. known bugs </A> </H3>
1276
<P> In the list below, starred items are still things needing attention...
1278
<P> *1. Timing of MIDI input/output is very shaky. Audio I/O is primitive, but
1279
there's at least a way to detect errors now for linux and NT.
1281
<P> *2. There is no flow control for graphical updates yet; the
1282
real-time process can easily block trying to write too fast to the GUI.
1284
<P> 3. PD dies if your patch has an infinite loop [fixed in 0.30 release.]
1286
<P> *4. If you cut a box which is a "Pd" or abstraction whose subpatch has
1287
items selected, Pd dies.
1289
<P> *5. Tables and other drawable items can draw far outside the window; there's
1290
no sanity check, Huge tables (>1000 points) are only partially drawn
1291
(the first 1000 points.)
1293
<P> 6. There's no way to order force a delread~ to make it read after
1294
a delwrite~ has written. [but see under 3.audio.examples how to do this now.]
1296
<P> 7. Pd doesn't know to suspend graphics updates when you minimize objects.
1297
Presumably minimization makes things better but it doesn't cut off graphics
1298
computation entirely as it should. [fixed for 0.34]
1300
<P> 8. If you load a nonexistent extern you get a spurious message,
1301
"consistency check failed: canvas_setargs". [fixed for 0.27 release.]
1303
<P> 9. Typing backslashes into objects upsets Tk [0.29 should suppress all
1304
backslashes; a real fix might come later.]
1306
<P> 10. Never type a dollar sign into a comment; you may have trouble
1307
opening your patch afterward... [fixed somewhere around 0.32]
1309
<P> *11. You'd better Turn DSP off before you type into a box that currently
1310
holds a "pd" object with tilde objects in the subpatch.
1312
<P> *12. In Linux, if you hit control C while Pd is opening MIDI, Pd hangs.
1314
<P> *13. In linux, Pd doesn't report audio data-late errors yet.
1316
<P> *14. Several objects, notably dac~, adc~, and env~, are incompatible with
1317
uses of block~ or switch~ objects that change block size frmo the default of
1318
64. Using switch~ without reblocking causes no problem. Don't try to
1319
read/write delay lines or use send~/receive~, or throw~/catch~, between
1320
windows with different block sizes.
1322
<H3> <A name="s3"> 5.3. differences from Max/MSP </A> </H3>
1324
<P> It wasn't anyone's intention to make Pd a Max/MSP clone, but on the
1325
other hand, if there's no reason for a feature to appear differently in
1326
Pd than in Max/MSP, the choices in Pd tend to hew to those in Max/MSP.
1327
Moreover, some effort has been undertaken (but more is needed) to make the
1330
<P> You can use Pd to import and export patches to Max/MSP; just save as
1331
text to a file with extension ".pat", and then open it in Pd. You'll at
1332
least get something. If you stick to common or commonizable features
1333
you can actually develop patches for both platforms.
1335
<P> When specific objects exist on one platform and not on the other, it's
1336
often possible to make abstractions to imitate the missing objects, in a
1337
kind of personalized compatibility library.
1339
<P> There are, however, differences in semantics you'll want to know about;
1340
a partial list follows.
1342
<P> <b> abstraction arguments. </b>
1343
In Pd you can edit instantiations of abstractions and save the result back
1344
to the file of the abstraction. This isn't possible in Max, because the
1345
instantiations are different from the abstraction itself in that "#1", etc.,
1346
are replaced by the instantiation arguments. In Pd, these arguments appear
1347
as "$1", etc, and are translated at a slightly later stage of the instantiation
1348
process so that you still see them as "$" variables in the instantiation.
1349
<A href="x2.htm#s7.1"> (see Section 2.7. abstractions) </A>
1351
<P> In Pd, to make current all instantiations of the
1352
abstraction, either delete and recreate them or close and open the patch;
1353
this is done automatically in Max/MSP.
1355
<P> In Pd, if you select "save" while in a subpatch, the parent is saved. In
1356
Max/MSP, if you do this a dialogue box comes up asking if you want to save the
1357
subpatch as a separate file. (if you want to save a subpatch to a file in Pd,
1358
you have to copy and paste the contents to a new document.
1360
<P> In Pd, inlets and outlets are ordinary text objects; in Max/MSP they're
1361
"gui" objects from the palette.
1363
<P> In Max/MSP, if an object's outlet is connected to several destinations,
1364
corresponding messages are always sent in right-to-left screen order. In
1365
Pd, the messages are sent in the order you made the connections in. In either
1366
case, in situations where you care about the order it's appropriate to use
1367
a "trigger" object to specify.
1369
<P> In Pd, there's no "gate"; instead it's "spigot" with the inlets in the
1370
opposite, more natural order.
1372
<P> Switching subsets of the DSP patch on and off is done in completely
1373
different ways in Pd and Max/MSP, and block sizes are handled differently as
1376
<P> Max offers many "GUI" objects such as sliders, dials, VU meters, piano
1377
keyboards, even "bpatchers." Until version 0.34, the only two in Pd were the
1378
number box and graphical arrays. Starting in version 0.34, Pd incorporates
1379
Thomas Musil's GUI objects: sliders, switches, and so on. (Thanks Thomas!)
1380
Beyond this essential collection of GUI objects, it's unlikely you'll ever find
1381
any commonality between the two. Also, as of 0.34, importing and exporting to
1382
Max doesn't know about the Musil objects; I'll try to get that fixed for 0.35.
1384
<P> In Pd there's no "preset" object (I now think it's basically a bad idea)
1385
and you have to use explicit sends and receives to restore values to number
1386
boxes. Then just make a "message" box to re-send the values you want.
1388
<P> In Macintosh land, instead of getting tabosc4~ and arrays, you get cycle~
1389
and buffer~. The only gotcha is that you probably can't draw in buffer~ with
1390
the mouse as you can with arrays, but at least it's possible to
1391
make a patch that copies a "table" into a "buffer~".
1393
<P> The "bpatcher" feature in Max has a correlate, "graph on parent" subpatches,
1394
in Pd; however, Pd's version is quite different from Max's.