~ubuntu-branches/ubuntu/precise/puredata/precise

« back to all changes in this revision

Viewing changes to doc/1.manual/x5.htm

  • Committer: Bazaar Package Importer
  • Author(s): Paul Brossier
  • Date: 2009-12-22 21:29:31 UTC
  • mfrom: (1.2.6 upstream) (4.1.2 squeeze)
  • Revision ID: james.westby@ubuntu.com-20091222212931-nhwkzapjwsmjao1l
Tags: 0.42.5-3
* debian/control:
  - add community site to homepage field
  - improve long description
  - remove Replaces and Conflicts fields
  - add Suggests on pd-csound, pd-pdp, pd-zexy, pd-aubio
* debian/rules: add per-arch configuration flags
* debian/patches/02_kfreebsd.diff:
  - also define pd_tilde_dllextent on FreeBSD
  - fix typo (really closing #414414 this time)
  - also add hurd glue
* debian/patches/04_hurd.diff:
  - add hurd glue and s_midi_dummy.c

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
 
2
 
 
3
<HTML>
 
4
  <HEAD>
 
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">
 
8
  </HEAD>
 
9
  
 
10
<BODY>
 
11
 
 
12
<H2>Pd Documentation chapter 5. current status</H2>
 
13
 
 
14
<P>
 
15
<A href="index.htm#s5"> back to table of contents </A>
 
16
<BR><BR>
 
17
</P> 
 
18
 
 
19
<P>This section tracks changes in Pd's current implementation.</P>
 
20
 
 
21
<H3> <A name="s2"> 5.1. release notes </A> </H3>
 
22
 
 
23
<P> ------------------ 0.42.1 ---------------------------
 
24
 
 
25
<P> Bug fix on Windows(cancelling window close deactivated window).
 
26
 
 
27
<P> Bug fix running Pd from command line in MacOS.
 
28
 
 
29
<P> "Select all" fixed to select none if everything already slected.
 
30
 
 
31
<P> ------------------ 0.42 ---------------------------
 
32
 
 
33
<P> The 'struct' object can now be used to catch a small but growing variety of
 
34
events (mouse clicks on data, selection/deselection).
 
35
 
 
36
<P> The 'tabread4~' object was fixed to allow message-time onset into the table. 
 
37
This makes it possible (at last) to use tabread4~ effectively with large (> 1
 
38
second) samples.  New help files 3.audio.examples/B15 and B16 show how to
 
39
use it.  It's not pretty but it's at least possible.
 
40
 
 
41
<P> Took patches from Iohannes Zmoelnig to make Pd work when compiled to use
 
42
64-bit floating-point audio.  I didn't test this; doubtless there will still be
 
43
some problems.  (This isn't the same thing as running in '64 bit mode' which
 
44
already works fine and is the default when compiled on a 64-bit linux machine.)
 
45
 
 
46
<P> New objects in extra, 'pd~', and 'stdout', allow running a separate Pd
 
47
instance in a sub-process.  Theoretically this should make it possible to use
 
48
multiprocessors efficiently in {d.  It's still somewhat experimental; it might
 
49
not work well to pass large numbers of messages and/or signals back and forth.
 
50
 
 
51
<P> A -batch flag allows Pd to be run efficiently from scripts.  You should
 
52
probably also specify -nosound.  With these flags Pd runs as quickly as it
 
53
can without waiting for real time.  It's up to the patch to arrange to exit
 
54
at the appropriate time via a 'pd quit' message.
 
55
 
 
56
<P> Large and sweeping improvements have been made to bonk~ and sigmund~.  The
 
57
new bonk~ features are documented in its help window; sigmund~ works better but
 
58
has the same old features.
 
59
 
 
60
<P> Closing and quiting Pd now act more politely, querying the user only if
 
61
there are edited windows.  There's also a query if the user types into a box
 
62
holding an edited abstraction to prevent the changes from getting lost
 
63
accidentally.  A new 'pd perf' message re-enables the old "really close this
 
64
window" behavior, which is appropriate for performances where you don't want the
 
65
wrong keyclick to stop Pd brusquely.
 
66
 
 
67
<P> The process of reloading multiple copies of a modified abstraction was
 
68
sped up.
 
69
 
 
70
<P> The 'find' dialog permits searching for substrings.  This is useful for
 
71
strings containing "$" arguments, where it's unclear what 'find' does or should
 
72
do.
 
73
 
 
74
<P> New pow~, log~, exp~, abs~, and 'wrap' objects.
 
75
 
 
76
<P> The 'print' object takes "-n" flag to supperss "print:" in output
 
77
 
 
78
<P> "clear" button in Pd output window
 
79
 
 
80
<P> ".pdrc" loading suppressed if pd is started with "-noprefs".
 
81
 
 
82
<P> Bug fix in pipe object: if sending a list to pipe, it didn't update the
 
83
delay time when asked to.
 
84
 
 
85
<P> Binbufs fixed to handle arbitrary length messages.  (This fixed a problem
 
86
reloading data structures with huge arrays).
 
87
 
 
88
<P> various fixes to 
 
89
<P> ------------------ 0.41-3,4 ---------------------------
 
90
 
 
91
<P> 2 fixes for PC: no bonk~, and the audio device selection
 
92
dialogs didn't show all the devices.
 
93
 
 
94
<P> ------------------ 0.41-2 ----------------------------
 
95
 
 
96
<P> More bug fixes: large netsends dropping messages, and crash bug when turning
 
97
DSP on and off repeatedly in MS windows
 
98
 
 
99
<P> ------------------ 0.41-1 ----------------------------
 
100
 
 
101
<P> Fixed a startup problem for Mac OSX 10.5.1 (other platforms should not be affected)
 
102
 
 
103
<P> ------------------ 0.41 ----------------------------
 
104
 
 
105
<P> Pd may be compiled in 64 bit address spaces; this is well tested on
 
106
linux and at least seems to work on Microsoft and MacOS.  On linux, in fact,
 
107
if you compile Pd in a 64-bit version of the OS it's automatically in the
 
108
64 bit address space.
 
109
 
 
110
<P> In linux, a "-nosleep" flag causes Pd to poll instead of sleeping as it
 
111
waits for dac and adc; this is useful on multiprocessors when you don't mind
 
112
having Pd occupy 100% of one processor and want to get latency as low as
 
113
possible.  (If you don't use this, latency on multiprocessors - Intel Core 2 at
 
114
least - is much worse for some reason than it is on uniprocessors.)  It's
 
115
"experimental" but I use it every day.
 
116
 
 
117
<P> added an experimental callback scheduler.  This might reduce latency in
 
118
MacOS and/or Microsoft, although I haven't seen that actually happen yet.
 
119
 
 
120
<P> removed limitation on huge messages from text files; this prevented long
 
121
"data" arrays from reloading from disk correctly.
 
122
 
 
123
<P> fixed crash bug closing patches with open GOPs.
 
124
 
 
125
<P> changed selection strategy so that, right after duplicating a collection 
 
126
of objects, clicking tends to select an already-selected object.
 
127
 
 
128
<P> the cursor changes slightly more apprpriately when switching between edit
 
129
to run modes.
 
130
 
 
131
<P> got really confused about the proper role of "declare 'path" in abstractions;
 
132
for the moment they are ignored.  I the future, it may be worthwhile to allow
 
133
them but to have them act only locally to the abstraction; but this might mean
 
134
a lot more computation overhead when opening files.
 
135
 
 
136
<P> limited window sizes to that of the screen (otherwise, on Mac OS, it's
 
137
impossible to resize them.)
 
138
 
 
139
<P> fixed "startup" dialogs to allow unlimited "path" and "lib"  entries
 
140
 
 
141
<P> started, but didn't finish, the process of getting Pd to compile with
 
142
t_float as 64 bits.  This would slow Pd down but improve tabread4~'s accuracy.
 
143
 
 
144
<P> made IEM Guis respect "-font" flag and friends.  New startup flags:
 
145
"-font-face" (badly named); "-font-size" sysnonym of "-font".  (Large patch from
 
146
HC).
 
147
 
 
148
<P> String overflow protection here and there.
 
149
 
 
150
<P> migrated to ".net" compiler ("VC 2005", a free download).
 
151
 
 
152
 
 
153
<P> ------------------ 0.40-1 --------------------------
 
154
 
 
155
<P> Fixed "declare" which wasn't working properly yet in 0.40-0, and
 
156
made more objects (notably "soundfiler") respect "declared" paths.  Path
 
157
entries are relative to the parent patch.  Declares inside abstractions are
 
158
ignored.
 
159
 
 
160
<P> "drawnumbers" are draggable now, even if they're in arrays.
 
161
 
 
162
<P> Bug fix opening "html" help from windows.
 
163
 
 
164
<P> Changed MACOSX to __APPLE__ in 4 places.
 
165
 
 
166
<P> ------------------ 0.40 -----------------------------
 
167
 
 
168
<P> A new object, "declare", allows patches to control where Pd looks
 
169
for resources such as abstractions and libraries.
 
170
 
 
171
<P> Sybmols can now be built using multiple dollar sign variables, as in
 
172
"$1-$2.$3".  Meanwhile, naming subpatches as in "pd $1-foo" now seems to
 
173
work correctly.
 
174
 
 
175
<P> The switch~ object takes a "bang" message to compute one block of DSP on 
 
176
demand.  Also, block sizes are no longer required to be powers of two 
 
177
(although reblocking only works between powers of two.)
 
178
 
 
179
<P> Externs may have characters in their names that aren't part of valid
 
180
C variable names (i.e., outsize the range a-z,A-Z,0-9, _).
 
181
 
 
182
<P> Openpanel and savepanel take an argument to set the initial directory to 
 
183
search.
 
184
 
 
185
<P> Support for large (>2G) soundfiles, in operating systems that offer it.
 
186
 
 
187
<P> Text copy/paste fixed (I hope) for Macintosh
 
188
 
 
189
<P> Intel Mac binaries.  New naming scheme for externs to allow disambiguation
 
190
(although Pd falls back to the old names for compatibility.)
 
191
 
 
192
<P> Templates can get notified when data are selected/deselected.  I want
 
193
to provide this for mouse actions on locked canvases too, but haven't yet.
 
194
 
 
195
<P> Characters like "\", "[", etc., typed into dialogs for labelling
 
196
number boxes or other GUI objects, get filtered out so that they at
 
197
least don't hang Pd up.
 
198
 
 
199
<P> Drawcurve (and the others, filledcurve, drawpolygon, filledpolygon)
 
200
have a new "-x" flag that inhibits a scalar getting
 
201
selected when the curve is clicked on.  This is useful for drawing stuff in
 
202
the background (grids, clefs, etc).
 
203
 
 
204
<P> 6 or so patches adopted from sourceforge.
 
205
 
 
206
<P> A "list length" object
 
207
 
 
208
<P> IEM Gui labels (except for the VU meter) default to 10 point fonts
 
209
(typically 8 before).
 
210
 
 
211
<P> "send" without an argument gets an inlet to set the destination
 
212
 
 
213
<P> A -noprefs flag defeats loading startup preferences.  This gives you a
 
214
way to rescue things if Pd's settings somehow crash Pd on startup.
 
215
 
 
216
<P> tabwrite~ takes a "start" message to allow writing into the middle
 
217
of the table.
 
218
 
 
219
<P> ------------------ 0.39.2 --------------------------
 
220
 
 
221
<P> Bug fixes: memory leak in OSX version; problem printing numbers as symbols.
 
222
 
 
223
<P> ------------------ 0.39.1 --------------------------
 
224
 
 
225
<P> Bug fixes: compatibility problems with older version of TK
 
226
 
 
227
<P> ------------------ 0.39.0 --------------------------
 
228
 
 
229
<P> At the source level, "regular" arrays and arrays within data structures are
 
230
now the same thing.  This will mean that, in the future, features introduced to
 
231
one array type will become available on the other one too.  Array elements are
 
232
"scalars" (i.e., data structures) and if they have drawing instructions, each
 
233
point of the array is drawn according to them; they can be clicked on, etc.,
 
234
just like any other scalars. "Regular" arrays have points which are of a
 
235
special, built-in template, "float".
 
236
 
 
237
<P> Drawing instructions now can use variable ranges for screen coordinates;
 
238
for instance, specifying an offset of "a(0:10)(100:200)(0.2)" specifies that
 
239
the member "a", which shoudl range from 0 to 10, should be graphed at locations
 
240
ranging from 100 to 200 (relative to the scalar's base location) and should
 
241
have a "grain" of 0.2, i.e., steps of 2 pixels each.
 
242
 
 
243
<P> Drawing instructions can be turned on and off, either globally
 
244
(for all data of the given structure) or by a data field.
 
245
 
 
246
<P> The "struct" object has an outlet to notify you when a datum is selected or
 
247
deselected.
 
248
 
 
249
<P> Graph-on-parent subpatches and abstractions no longer scale the GUI objects
 
250
to fit the parent rectangle; instead you get a sub-rectangle in the subpatch,
 
251
of the same size as the parent object, to place GUI objects in.  GUI objects
 
252
that don't fit inside aren't shown on the parent, and the parent objects no
 
253
longer stretches itself to show things that wouldn't otherwise fit.  Older
 
254
patches work as before until you try to edit them - at which point you have
 
255
no choice but to use the new functionality.
 
256
 
 
257
<P> The font size of a Graph-on-parent abstraction is that of the abstraction
 
258
itself, not the calling patch.
 
259
 
 
260
<P> Message boxes now take "addcomma" and similar messages.
 
261
 
 
262
<P> A "list" object is provided for joining and splitting lists, and converting
 
263
between lists and non-list messages.
 
264
 
 
265
<P> Pd extension is now added automatically to files on Macintish when you
 
266
do a "save as".  The tcl/tk version is updated to 8.4.5.  This should run on
 
267
OSX version 10.2 and later.  Also on Mac, drag-and-drop startups read
 
268
"libraries" (specified in "startup" dialog) before opening the file.
 
269
 
 
270
<P> The "pointer" object has a method to rewind to the beginning of a list.
 
271
A "sendwindow" message forwards any message to the window contining the
 
272
scalar currently pointed to.
 
273
 
 
274
<P> Abstractions don't produce visible windows, even if subwindows of the
 
275
abstraction were visible when the abstraction was saved.
 
276
 
 
277
<P> MIDI sysex messages should now work on all platforms.
 
278
 
 
279
<P> Bug fixes:
 
280
 
 
281
<P> sending lists to arrays now correctly interprets the first number of the
 
282
list as the starting index (following values are then stored seuentially in the
 
283
array.)
 
284
 
 
285
<P> The rfft~ object's imaginary part had the wrong sign.  Also, the Nyquist
 
286
bin is now supplied correctly.
 
287
 
 
288
<P> Fixed problems writing aiff files using the writesf~ and soundfiler objects.
 
289
Writesf, if sent an "open" while a file was previously being written, closes the
 
290
previous file first.
 
291
 
 
292
<P> Bug fix in number2 which sometimes crashed Pd.
 
293
 
 
294
<P> Stale-pointer protection made more robust.
 
295
 
 
296
<P> Some of Pd's tcl/tk error messages have been tracked down, but probably
 
297
not all of them yet.
 
298
 
 
299
<P> "Find" crashed Pd when the found object was in a GOP.
 
300
 
 
301
<P> Mouse motion over arrays no longer is quite so CPU-consuming (but is
 
302
still somewhat so.)
 
303
 
 
304
<P> samplerate~ now reflects up/downsampling.
 
305
 
 
306
<P> Tilde objects in blocked, overlapped subpatches no longer adjust their
 
307
internal sample rate to reflect the overlap.
 
308
 
 
309
<P> Fixed a thread-safety problem in sys_microsleep().
 
310
 
 
311
 
 
312
<P> ------------------ 0.38.1 --------------------------
 
313
 
 
314
Fixed two bugs that crashed Pd when deleting number boxes in certain
 
315
situations.
 
316
 
 
317
<P> ------------------ 0.38.0 --------------------------
 
318
 
 
319
<P> The big change is queued graphics updates, which apply (so far)
 
320
to tables and number/symbol boxes.  The IEM GUIS aren't enqueued yet.
 
321
This along with a better graphics update buffering scheme makes Pd's
 
322
graphics run much better.
 
323
 
 
324
<P> Support for cutting/copying/pasting text between boxes and between Pd and
 
325
other applications.
 
326
 
 
327
<P> Dialogs for setting and saving path, libs-to-load-on-startup, and some
 
328
other things.  This and the audio settings can be saved automatically to
 
329
the appropriate repository (.pdsettings on linux; registry on MS windows;
 
330
"Preferences" on Mac.)
 
331
 
 
332
<P> "Print" printout goes to the Pd window by default.  You can revert to
 
333
the old (standard error) behavior with the "-stderr" startup flag.
 
334
 
 
335
<P> The "gui" TK script can now start Pd up (previously Pd had to be
 
336
started first.)  This is needed for Pd to work as an "App" on Mac.
 
337
 
 
338
<P> new filter objects: cpole~, fpole~, etc... these will get used in the
 
339
upcoming Techniques chapter 8.
 
340
 
 
341
<P> Objects whose creation failed get a distinctive outline; if they are
 
342
already inside a patch they sprout inlets and outlets as necessary to
 
343
preserve connections.
 
344
 
 
345
<P> Filenames in the "search path", etc., now may contain spaces, commas,
 
346
and semicolons.
 
347
 
 
348
<P> bug fix: click on minaturized subpatch failed to "vis" it
 
349
 
 
350
<P> bug fix: font size change crash reported by CK
 
351
 
 
352
<P> Key bindings like control-Q now work even from within most dialogs.
 
353
 
 
354
<P> The audio settings dialog now permits turning audio input and/or output
 
355
off without forgetting how many channels it should be when on.
 
356
 
 
357
<P> RME Hammerfall ALSA support from Winfried -- but specify the number of
 
358
channels correctly or else Pd crashes.
 
359
 
 
360
<P> portaudio (e.g., Mac) audio support fixed for inchans != outchans,
 
361
so the emi emagic can now be used 2-in. 6-out, for example.
 
362
 
 
363
<P> (linux) The configure script can set the setuid flag on "make install".
 
364
The "-enable" flags to ./configure should now work correctly too.
 
365
 
 
366
<P> atan2 had its inlets switched to conform to standard usage
 
367
 
 
368
<P> ------------------ 0.37.3 --------------------------
 
369
 
 
370
<P> Oops- added __i386__ macro to windows makefile so it would test for
 
371
underflows correctly.  This affects only Microsoft Windows; the other
 
372
two platformas are fine as 0.37.2.  Thanks to Thomas Musil...
 
373
 
 
374
<P> ------------------ 0.37.2 --------------------------
 
375
 
 
376
<P> fixed a bug in soundfile reading (soundfiles now default to wav better.)
 
377
 
 
378
<P> fixed gfx update problem in hradio and vradio 
 
379
 
 
380
<P> minor changes to built-in Max import feature (but you should
 
381
still use cyclone's instead.)
 
382
 
 
383
<P> colors for scalars fixed (probably never worked before!)
 
384
 
 
385
<P> added a "set" message to the line object
 
386
 
 
387
<P> aliased spaces to underscores in GUI labels so that at least they won't
 
388
destroy the object.
 
389
 
 
390
<P> ------------------ 0.37.1 --------------------------
 
391
 
 
392
<P> fixed the apple key on OSX so it does key accelerators
 
393
 
 
394
<P> fixed bug in -inchannels/-outchannels arg parsing
 
395
 
 
396
<P> major editions to the IEM GUIs to fix bugs in how "$" variables are handled.
 
397
The code still isn't pretty but hopefully at least works now.
 
398
 
 
399
<P> bug fix in vd~ for very small delays
 
400
 
 
401
<P> fixed MSW version not to make windows grow by 2 pixels on save/restore
 
402
 
 
403
<P> added an "nrt" flag for OSX to defeat real-time priritization
 
404
(useful when runnig Gem.)
 
405
 
 
406
<P> on some platforms, audio open failures are handled more gracefully.
 
407
 
 
408
<P> added a "changelog" file in the source directory to document source-level
 
409
changes.
 
410
 
 
411
<P> ------------------ 0.37 --------------------------
 
412
 
 
413
<P> Pd is finally fixed so that it can open and close audio and MIDI devices
 
414
on-the-fly (previously it opened them once at startup and hogged them until
 
415
Pd quit).  Starting DSP causes audio devices to be opened, and 
 
416
stopping it closes them.
 
417
There are dialog panels in the "Media" menu (which used to be called 
 
418
"Audio") for choosing audio and MIDI settings.  The "path" also can be changed
 
419
on the fly via a dialog in the "File" menu.
 
420
 
 
421
<P> A "vline" object acts like "line" but to sub-sample accuracy.  See
 
422
the audio example, C04.control.to.signal.pd (and/or chapter 3 of
 
423
<A HREF="http://www.crca.ucsd.edu/~msp/techniques.htm"
 
424
<I> Theory and Techniques of Electronic Music </I> ).
 
425
 
 
426
<P> The block~/switch~ object now takes a "set" message to dynamically change
 
427
block size, etc.
 
428
 
 
429
<P> The makefilename object takes a "set" message to set the "pattern".  You
 
430
can use this to kludge multiple substitutions (as shown in the help file).
 
431
 
 
432
<P> The writesf~ object got an update and a better help window.  It now should
 
433
be able to write 32bit floating-point WAV soundfiles.  The file's sample rate
 
434
is now set "correctly".
 
435
 
 
436
<P>  Various improvements were made in audio I/O to improve stability and
 
437
reduce latency.
 
438
 
 
439
<P>  Jack support should work for Mac OSX (it appears as a separate API).
 
440
Linux is offering experimental portaudio V19 support (but Mac and Window/ASIO
 
441
are still based on PA V18.)
 
442
 
 
443
<P>  The fiddle~ object (in extra) has an "npoints" method to set the analysis
 
444
window size dynamically.
 
445
 
 
446
<P> (windows) Pd is now distributed as a self-extracting archive.
 
447
 
 
448
<P> (windows) url files in the help directories are opened correctly.
 
449
 
 
450
<P> (Mac) the arrow keys should now be fixed.
 
451
 
 
452
<P> (linux) The "configure" script should be better at finding TK in various
 
453
distributions (debian users previously had to use a special configure script.)
 
454
 
 
455
<P> (developers) Pd now exits cleanly from its main loop instead of bailing
 
456
out.  A mutex protects Pd's data so it can be accessed from other threads. 
 
457
(Thomas Grill's improvements.)
 
458
 
 
459
<P> (developers) The "savefunction" and "dialog" widget behaviors
 
460
were replaced by a better mechanism (class_setsavefn() and
 
461
class_setpropertiesfn()).  THey're declared in m_pd.h so you don't have to
 
462
include the (unstable) g_canvas.h to get them.
 
463
 
 
464
<P> (developers) Better flag handling in the IEM GUIs (g_toggle.c, etc) should
 
465
compile with fewer warnings and be more portable.
 
466
 
 
467
 
 
468
<P> ------------------ 0.37-test 1 --------------------------
 
469
 
 
470
<P> The MacOSX version now prioritizes itself effectively (thanks to
 
471
gert@test.at (v93r)) via Adam Lindsay).  Adam has made a proper MacOSX
 
472
"package" for Pd; see <A href="http://homepage.mac.com/atl/sw">
 
473
http://homepage.mac.com/atl/sw</A>.
 
474
 
 
475
<P> A bug was fixed in readsf~/writesf~ (things were coming out in the wrong
 
476
number of channels.)
 
477
 
 
478
<P> A problem compiling Pd with TK8.4 (the latest version) was fixed.
 
479
 
 
480
<P> Large numbers of GUI improvements by Adam Lindsay, especially relevant
 
481
to Mac OSX.
 
482
 
 
483
<P> For externs, the binary may now be included in a subdirectory of the
 
484
same name (e.g., "choice/choice.pd_linux" and "choice\choice.dll").  So
 
485
now you can pack multiple binaries for the same extern, along with the
 
486
source, in one convenient place.  (Note that
 
487
"expr~" is an exception, since it goes by three different names, so this
 
488
trick fails for that example.)
 
489
 
 
490
<P>  "Help" files renamed "help-xxx.pd", so that help files are now possible
 
491
for abstractions.  The "help path" feature from CVS (I forgot who contributed
 
492
that) is also included but should now not be needed: Pd remembers where it got
 
493
externs and abstractions and looks back in the same directory for a help file. 
 
494
See the way "extras" is organized.
 
495
 
 
496
<P>  Pd refuses to connect signal outlets to non-signal inlets.
 
497
 
 
498
<P>  When you save any patch, Pd looks for all invocations of that patch
 
499
as an abstraction and reloads them.  This unfortunately has the side effect of
 
500
making all the containing windows visible, but it's better than nothing.
 
501
 
 
502
<P> ------------------ 0.36-1 -------------------------------
 
503
 
 
504
<P> "print" now queries you for a file to save the postscript to.
 
505
 
 
506
<P> "expr" brought up to date (0.4) -- a bug was fixed involving expresions
 
507
like "max($f1, 100)" which had erroneously output an integer.
 
508
 
 
509
<P> a bug fix in the 4-point interpolation formula, which affects tabosc4~,
 
510
tabread4~, tabread4, and vd~.  These should have significantly lower
 
511
distortion than before.
 
512
 
 
513
<P> bug fix: vradio, hradio "send symbol" feature didn't work
 
514
 
 
515
<P> ------------------ 0.36 -------------------------------
 
516
 
 
517
<P> There's now an "undo" for most editing operations.  Undoing is only
 
518
available in the window that was most recently edited.  (One gotcha remains,
 
519
that "stretching" (in the font menu) affects all windows and you can't undo any
 
520
but the last one it touched.)  Also, there's no "undo" for run-time operations,
 
521
only editing ones.  That might be worth thinking about.
 
522
 
 
523
<P> Some bugs were fixed that affected "flipped" canvases (ones whose
 
524
"properties show a positive "y" increment per pixel.)  Also, the coordinates
 
525
are now saved and restored correctly.  "text" objects (comments) now stick to
 
526
the bottom of the window for flipped canvases.
 
527
 
 
528
<P> Signal lines now show up fatter than control lines.  (Now I have to go
 
529
through the figures in the HTML doc again... drat)
 
530
 
 
531
<P> "Classic" number boxes now can have labels and send/receive signals, which
 
532
work in the same way as the IEMGUI controls do.  I think "$1" style
 
533
label/send/receive names work too.  I fixed a related bug
 
534
in the IEM code (typing at boxes sometimes crashed Pd).  
 
535
 
 
536
<P> "vdial" and "hdial" were renamed "vradio" and "hradio", and fixed to
 
537
output numbers, not lists, like the other GUIs.  The old ones are still around
 
538
for compatibility with old patches.
 
539
 
 
540
<P> "Make install" should now actually make Pd before trying to install it.
 
541
 
 
542
<P> "expr" is updated to Shahrokh's 0.4test3 version (which I modified somewhat
 
543
to get it to compile.)  
 
544
 
 
545
<P> The problem of CPU usage skyrocketing on underflows in P4s should
 
546
be fixed.
 
547
 
 
548
<P> Compiled "pdsend" and "pdreceive" for Windows.
 
549
 
 
550
<P> "PD_VERSION" macro added to m_pd.h
 
551
 
 
552
<P> ------------------ 0.35 -------------------------------
 
553
 
 
554
<P> An experimental new feature called graph-on-parent allows subpatches and abstractions to show
 
555
GUI features; so, for instance, you can make an oscillator with a number box to
 
556
control the frequency.  This is described in section 2.7.2 of the HTML
 
557
documentation and an example is shown in 7.stuff/synth1/.
 
558
 
 
559
<P> Spaces are allowed in pathnames to Pd and to patches; however, the "path"
 
560
variable still can't have spaces.  (You can address path directories using
 
561
relative pathnames as in "../sound" (or ..\sound on Windows), even if there
 
562
are spaces further "up" the path to the patch.  See 3.7, "dealing with files."
 
563
 
 
564
<P> The soundfile reading routine (used in readsf~ and soundfiler) is much
 
565
better at opening wav files with different header sizes and odd chunks.
 
566
You can now read floating-point "wav" files -- although you can't write them 
 
567
yet.
 
568
 
 
569
<P> Templates and data structures are extensively reworked.  A "struct"
 
570
object replaces "template", so that you specify the name of the structure as
 
571
the first argument to "struct" (previously it was derived from the
 
572
window name.)  You can now have multiple "structs" of the same name; the
 
573
oldest one is the "real" one, but if you delete that, the structures are
 
574
all conformed to the next-oldest one, and so on.  You can alter the contents of
 
575
a "struct" and all the associated data will be modified to fit the new
 
576
structure definition.  Data are persistent, i.e., saved with the containing
 
577
patch.  You can copy and paste data between patches.  If you save data to a file
 
578
explicitly, you can read it into another patch and the data are conformed
 
579
automatically to the new data structures.
 
580
 
 
581
<P> A new version of Thomas Musil's GUI objects was merged in.
 
582
 
 
583
<P> The testtone patch works for up to 6 channels of audio input and output.
 
584
 
 
585
<P> Lots of improvements got made to audio I/O in general.  In NT you may
 
586
specify "-asio" to use ASIO drivers; see HTML documentation section 3.2.
 
587
You may specify lists of audio input and output devices.  In Linux, Pd
 
588
will now attempt to open each /dev/dsp* only once, even if it's requested
 
589
for reading and writing.
 
590
 
 
591
<P> The "extra" directory is now searched after the directories in the
 
592
search path, not before (so now you can override objects like "fiddle~").
 
593
 
 
594
<P> A bug in paf~ is fixed.
 
595
 
 
596
<P> In Linux, the ".pdrc" is now read before the command line arguments, so
 
597
that command line arguments override the .pdrc (it was backwards before.)
 
598
 
 
599
<P> In Linux, "help" now can invoke either mozilla or netscape to start
 
600
up the HTML documentation.  This doesn't work in Windows or Mac land yet.
 
601
 
 
602
<P> In Linux, the "-32bit" flag was added, which you must now use if 
 
603
running Guenter's OSS RME Hammerfall driver.  (This was necessary because
 
604
OSS went and used the same "bit" for a different purpose, so that Pd tried
 
605
to open some other cards in 32bit mode inappropriately.)
 
606
 
 
607
<P> In Linux, MIDI is now opened "-NODELAY" ... this makes the OSS Creative
 
608
driver take MIDI input correctly which it didn't before.
 
609
 
 
610
<P> In MS windows, you can now use "readsf~/writesf~" for spooling sounds to
 
611
and from disk.
 
612
 
 
613
<P> MS Windows bug fixes: -nosound was ignored, and now works.  Also, clicking
 
614
to open abstractions, when they were already open anyway, used to lose the
 
615
keyboard; this should be fixed now.  Finally, "netreceive" didn't work when
 
616
running "-nogui". This is fixed, and moreover, you should definitely include
 
617
a netreceive object in any -nogui patch in MSW, otherwise it eats up all
 
618
available CPU time gratuitously.
 
619
 
 
620
<P> The outlet is removed from the "table" object.
 
621
 
 
622
<P> In MS Windows, Pd now has "-resync" and "-noresync" flags so that you
 
623
can specify how to deal with audio input and output blocksize nonsense in
 
624
MMIO.  If "resync" is on, whenever the audio input and output seem out
 
625
of whack the audio driver resynchronizes all input and output devices;
 
626
otherwise the situation is simply ignored.  "Noresync" is probably best for
 
627
consumer stereo cards (and is the default if you're running only 2 channels in
 
628
and out).  If you're running more than 2 channels in either direction, the
 
629
default is "resync".
 
630
 
 
631
<P> In soundfiler's read method, if you specify "-maxsize", that implies
 
632
"-resize" (as it ought to.)
 
633
 
 
634
<P> You can use $1-style names for arrays and tables.
 
635
 
 
636
<P> Pd will now refuse to make duplicate connections between objects.
 
637
 
 
638
<P> Pd is (somewhat shakily) running on Macintosh OS/X.  See section 3.4 of
 
639
the HTML doc.  For Macs with one-button mice, you can double-click in edit
 
640
mode to simulate a right click.  Unfortunately, the "alt" key doesn't work
 
641
yet.
 
642
 
 
643
<P> In Linux, ALSA audio is now fixed to clip, not wrap around, on output
 
644
overflows.
 
645
 
 
646
<P> Various problems were fixed with objects changing size.  Number boxes never
 
647
wrap to two lines (as they used to), and lines are reconnected appropriately
 
648
when objects are resized.
 
649
 
 
650
<P> A function call is added to retrieve a unique event-dependent number,
 
651
so that objects like "buddy" can be written.
 
652
 
 
653
<P> All the "sound" command-line flags now have "audio" equivalents.
 
654
 
 
655
<P> The "-listdev" flag now works on Mac and MSW/ASIO.
 
656
 
 
657
<P> Help file updates for env~, route, and pointer
 
658
 
 
659
<P> ------------------ 0.34.3 -------------------------------
 
660
 
 
661
<P> fixed a bug in "udp" netreceive that crashed pd
 
662
 
 
663
<P> fixed a bug in tabosc4~ that caused gritty sound
 
664
 
 
665
<P> changed "specfile" for RPM releases (thanks Fernando)
 
666
 
 
667
<P> adopted Krzysztof's glob_setfilename bug fix
 
668
 
 
669
<P> bug fixes from "the joy of global variables" thread in Pd list
 
670
 
 
671
<P> made a help window for "table".
 
672
 
 
673
<P> ------------------ 0.34.2 -------------------------------
 
674
 
 
675
<P> fixed ".pdrc" bug
 
676
 
 
677
<P> added an experimental "pd restart-audio" feature for (new) Alsa
 
678
 
 
679
<P> ------------------ 0.34.1 -------------------------------
 
680
 
 
681
<P> Bug fixes:
 
682
 
 
683
<P> 1.  Closing a window with objects selected crashed Pd.
 
684
 
 
685
<P> 2.  "find" when it opened a window to show the found object crashed Pd.
 
686
 
 
687
<P> 3.  (Linux only) Oversized .pdrc files crashed pd...
 
688
 
 
689
<P> Also, I updated Thomas Musil's IEM GUI objects and their help files.
 
690
 
 
691
 
 
692
<P> ------------------ 0.34 -------------------------------
 
693
 
 
694
<P> NEW FEATURES:
 
695
 
 
696
<P> I incorporated Thomas Musil's GUI objects (slider, button, etc.) into
 
697
the Pd release so Thomas won't have to publish patches to Pd anymore.  I
 
698
didn't take the graphical inlets and outlets for reasons explained elsewhere,
 
699
but Thomas might decide to continue supplying them on a patch basis.
 
700
 
 
701
<P> Many new examples were added to the "2.control" and especially
 
702
"3.audio" example patches.  A list of differences between Max/MSP and Pd
 
703
now appears at the end of this section.
 
704
 
 
705
<P> Finally, I fixed Pd to notice window iconification and suspend graphical
 
706
updates for iconified windows.
 
707
 
 
708
<P> Numbering of versions of Pd will now be as in "0.34.2" instead of
 
709
"0.34PATCH2" which was confusing.
 
710
 
 
711
<P> BUGS FIXED:
 
712
 
 
713
<P> I incorporated Krzysztof Czaja's menuclose bug fix in g_canvas.c.
 
714
 
 
715
<P> (Linux) the configure script is more rational.
 
716
 
 
717
<P> the qlist and pack objects were fixed to handle reentrancy correctly.
 
718
 
 
719
<P> Pd now complains about running out of memory (before it dies.)  I intend
 
720
to provide advance warning and automatically back out of loading patches that
 
721
would run out of memory, but that's not in place yet.
 
722
 
 
723
<P> Typing into a message box sometimes left you with lines from the output
 
724
pointing to the wrong location.  Fixed.
 
725
 
 
726
<P> Reading of "wav" and nextstep soundfiles now handles the headers better.
 
727
 
 
728
<P> ------------------ 0.33 -------------------------------
 
729
 
 
730
<P> AUDIO AND MIDI:
 
731
 
 
732
<P> MIDI time jitter is reduced.  Theoretically, it could now be
 
733
as low as the audio blocksize (and so if you care about MIDI timing, keep your
 
734
audio blocksize low.)  If you run Pd with audio in stream mode or without
 
735
audio at all, and perhaps in some cases in block more too (?),
 
736
the controlling parameter for MIDI jitter is "-sleepgrain", which specifies
 
737
the interval of time Pd sleeps when it believes it's idle.
 
738
 
 
739
<P> You can now specify multiple MIDI input and output devices.  For example,
 
740
"pd -midiindev 3 -midioutdev 4,2" asks for the third MIDI input device and the
 
741
fourth and second MIDI output device.  The "channel message" midi objects in Pd
 
742
such as notein or pgmout will take channels 1-16 to mean the first open MIDI
 
743
port, 17-32 the second one, and so on.  The midiin, sysexin, midiout objects
 
744
give you a separate inlet to specify which of the open MIDI port numbers
 
745
you want.
 
746
 
 
747
<P> (Linux only) By default, Pd now reads and write audio in "block mode."
 
748
Previously you have to specify "-frags" and/or "-fragsize" to get this.
 
749
As of this version you have to specify "-streammode" to get the opposite,
 
750
streaming mode.  This mode seems only to work with a small number of sound
 
751
cards, notably Ensoniq ens1370 and ens1371.
 
752
 
 
753
<P> (Linux only) Also, "-fragsize" is replaced with a more convenient
 
754
"-blocksize" which you specify in sample frames.  It defaults to 64 which is
 
755
Pd's audio computation block size but may be larger or smaller.  Typically you
 
756
would specify "-audiobuf" and "-blocksize" and Pd will  compute "-frags" for
 
757
you; but you can also specify "-frags" explicitly.
 
758
 
 
759
<P> (Linux only) OSS and ALSA audio support are improved.  You can now talk to
 
760
RME9652 using Guenter's OSS driver; this is different from the "-RME" support
 
761
which uses Winfried's older driver.  Other multichannel OSS drivers might now
 
762
work as well.  Pd also seems to work with ALSA 0.9 Beta 4; I've tested this
 
763
with Midiman Delta 66 and Soundblaster live.  I plan to update the linux audio
 
764
setup documentation accordingly.
 
765
 
 
766
<P> NEW FEATURES:
 
767
 
 
768
<P> I've put in Shahrokh's new expr, expr~, and fexpr~ objects.  The latter
 
769
allows you to make expressions referring to prior input and output samples in
 
770
case you're interested in writing your own recursive filters, oscillators,
 
771
or chaotic sound generators...
 
772
 
 
773
<P>  In support of expr, you can now use commas in "object" boxes; they just
 
774
become symbols.
 
775
 
 
776
<P>  sqrt~ is fixed so that it apparently has 24-bit accurate mantissas.
 
777
It turned out to be easier to just make it accurate than to confront the
 
778
question of how a reduced-accuracy version should be named.
 
779
 
 
780
<P> The bizarre framp~ object which does phase vocoder analysis got a help
 
781
window.  The phase vocoder example doesn't use framp~ and I had forgotten
 
782
what it did until Guenter dug it back up.
 
783
 
 
784
<P> (Linux only) I finally got around to incorporating Guenter's autoconf
 
785
stuff, and learned about RPM.  Major new Linux releases will probably be
 
786
in .tar.gz and .rpm formats; "test" releases will probably just be in .tar.gz.
 
787
I also fixed it so that the installation prefix is overridden if you invoke
 
788
pd by its full pathname, so that you can still use compilations with
 
789
installation prefixes before you actually install them.
 
790
 
 
791
<P> (NT only) I added support for directX using the portaudio package
 
792
by Ross Bencina and Phil Burk.  I couldn't discover any way this would ever
 
793
outperform the old "multimedia" API Pd uses.  So the release contains the sources,
 
794
but you have to recompile Pd to use directX.  Use "makefile.nt.portaudio".  Only
 
795
1 or 2 channels of audio are supported.  The interesting thing is that the same
 
796
code will run on Macintosh.  There are a couple of other obstacles to a
 
797
MacOS port of Pd though; it's hard to predict when this will be feasible.
 
798
 
 
799
<P> BUG FIXES:
 
800
 
 
801
<P> "drawnumber" was broken in 0.32 -- fixed.
 
802
 
 
803
<P> new arrays in 0.32p6 got ill-fitting graphs -- fixed.
 
804
 
 
805
<P> ------------------ 0.32 PATCH 6 -------------------
 
806
 
 
807
<P> Got array and graph dialogs to behave better when there are more
 
808
than one.
 
809
 
 
810
<P> put in mtof~, etc.
 
811
 
 
812
<P> made Pd search the "extra" directory without having to specify it in "path."
 
813
 
 
814
<P> bug fix in exporting patches to Max
 
815
 
 
816
<P> ------------------ 0.32 PATCH 5 -------------------
 
817
 
 
818
<P> Reversed the order of these release notes so that the newest appear first.
 
819
 
 
820
<P> Arrays can save their content with containing patch; the properties
 
821
dialog selects this.  The dialog shows up when you create a new array from
 
822
the menu, and allows you to set the name and size.  Only floating point arrays
 
823
can be created and edited this way.
 
824
 
 
825
<P> Bug fix: the figures in the NT web doc were garbage.
 
826
 
 
827
<P> Bug fix: large tables (> 800 pixels and points) no longer crash the GUI.
 
828
A related problem remains; large arrays are truncated to either 1000 points
 
829
or 1000 pixels.
 
830
 
 
831
<P> Bug fix: doing "save as" on an instantiated abstraction no longer sets
 
832
the window title.
 
833
 
 
834
<P> in linux, a couple of status messages on opening /dev/dsp only appear now
 
835
if Pd is run "-verbose".
 
836
 
 
837
 
 
838
<BR> <BR> 
 
839
<P> ------------------ 0.32 PATCH 2, 3, 4 -------------------
 
840
 
 
841
<P> Hassled more with font size differences between NT and Linux, and updated
 
842
many help files.  Minor bug fixes here and there.
 
843
 
 
844
<P> the table object now takes a second argument to set size in points.
 
845
 
 
846
<P> Improved underflow protection in some DSP objects.
 
847
 
 
848
<P> pointer now has a "vnext" traversal method which goes forward to the
 
849
next SELECTED object.
 
850
 
 
851
<P> improvements to throw~ (it now sums) and receive~ fixed to be settable.
 
852
 
 
853
<P> bug fix in which RME driver always thought sample rate was 44100.
 
854
 
 
855
<BR> <BR> 
 
856
<P> ------------------ 0.32 PATCH 1 -------------------
 
857
 
 
858
<P> bug fixes (bugs flagged by mik): vcf~ help window crashed; writesf~
 
859
only wrote 1 channel soundfiles; "table" object didn't open when clicked
 
860
on;
 
861
 
 
862
<P> new object: tabosc4~ -- finally, a real wavetable oscillator for Pd.
 
863
 
 
864
<P> much work on "data" editing; go to 7.stuff/data-structures, open patches
 
865
5 and 7, and try clicking on things.  Alt clicks delete or add points; regular
 
866
clicks drag values around.  The cursor changes to show you what will happen
 
867
if you click.
 
868
 
 
869
<BR> <BR> 
 
870
------------------- 0.32 -----------------
 
871
 
 
872
<P> <strong> New objects: </strong> 
 
873
 
 
874
<P> midiin, sysexin, midiout.  (I don't think MIDI sysex is working
 
875
in Windows yet though.)
 
876
 
 
877
<P> threshold~ as in Jmax, triggers from audio level.
 
878
 
 
879
<P> value as in Max and Jmax.
 
880
 
 
881
<P> writesf as in Jmax.
 
882
 
 
883
<P> <strong> New startup flags: </strong> 
 
884
 
 
885
<P> -sleepgrain: if you aren't using audio I/O, this can reduce time jitter in
 
886
MIDI I/O.  Otherwise, MIDI I/O jitter is limited by the audio buffer size.
 
887
 
 
888
<P> -noloadbang: cancels loadbangs.
 
889
 
 
890
<P> -nogui: suppress starting the GUI.  You can then still talk to Pd using,
 
891
perhaps among other possibilities, the new network connection programs now
 
892
included in the release.
 
893
 
 
894
<P> -guicmd: lets you specify the command string Pd calls to start the GUI,
 
895
in case you've written your own GUI to replace the TK one Pd comes with.
 
896
 
 
897
<P> -send: after loading all the patches specified in the command line,
 
898
you can specify "startup" messages to send.  For example, if you want to use
 
899
Pd just to play 50-channel soundfiles from a shell, this is how you can specify
 
900
the soundfile name on the command line.
 
901
 
 
902
<P> <strong> bug fixes. </strong>
 
903
 
 
904
<P> A readsf~ problem got fixed.
 
905
 
 
906
<P> hitting the tab key used to cause Pd windows to relinquish the keyboard.
 
907
 
 
908
<P> The $0 feature apperas now to work.
 
909
 
 
910
<P> Inlets and outlets of subpatches sometimes got out of left-to-right order.
 
911
 
 
912
<P> Scrollbars are less out of whack than they were before.
 
913
 
 
914
<P> Pd now knows to de-iconify windows if you "vis" them from the parent.
 
915
 
 
916
<P>  <strong> in general: </strong> 
 
917
 
 
918
<P> In Linux the treatment of MIDI input is now much more efficient.  Also,
 
919
bugs were fixed in notein and (for SGI) bendin.
 
920
 
 
921
<P> You can "select all" from the Edit menu.
 
922
 
 
923
<P> standalone programs "pd-send" and "pd-receive" are provided that can send
 
924
mesages to Pd or receive messages from Pd via the netsend~ and netreceive~
 
925
objects.  This should allow you to interface a wide variety of other programs
 
926
with Pd either on the same machine or over the network.  Also you should be
 
927
able to hack the code into your own programs to make them interoperate with
 
928
Pd and/or each other.  The underlying protocol is called FUDI.
 
929
 
 
930
<P> "Properties" for scalars, graphs, and number boxes: left click on them.
 
931
In particular, number boxes can have fixed widths and finite ranges; if you
 
932
make them one character wide they act as toggles.  Later you'll be able to
 
933
configure them as sliders.
 
934
 
 
935
<P> As to scalars, the properties dialog lets you edit the data in the raw.
 
936
Don't try to edit the template though; you can't.
 
937
 
 
938
<P> You can now type into a "pd" object to change its name without losing the
 
939
contents.
 
940
 
 
941
<P> An experimental "scalar" _text_ object now allows abstractions to draw
 
942
primitive control panels on their parents when you invoke them, as if they were
 
943
Moog or Buchla modules.  See the "7.stuff/data" examples.
 
944
 
 
945
<P> New help windows for the "data" classes (pointer, append, template, etc.)
 
946
and for send/receive which somehow I had neglected.
 
947
 
 
948
<P> When you hit "copy" with nothing selected, the copy buffer used to be
 
949
cleared.  This is fixed to do nothing.
 
950
 
 
951
<BR> <BR> 
 
952
------------------- 0.31 -----------------
 
953
 
 
954
<P> ALSA support in Linux has been completely overhauled.  It now works with
 
955
Midiman (up to 10 in/12 out!) and es1370.  There are problems with SBLive under
 
956
ALSA but it works in OSS emulation with a "-frags" setting. See the "getting
 
957
started" documentation.
 
958
 
 
959
<P> In NT, the default is now "noresync" if you're running stereo.  You can
 
960
override this with the "-resync" flag.  If you're running more than 2 channels
 
961
it's the opposite (as it was before.)
 
962
 
 
963
<P> "symbol" boxes now display symbols and let you type them in.
 
964
 
 
965
<P> There was a bug when you renamed a patch from outside Pd; the old filename
 
966
still showed in the title bar (and there were other bad side effects.)   FIxed.
 
967
 
 
968
<P> Protection was added against patches opening themselves as abstractions.
 
969
 
 
970
<P> The "route" object's handling of leading symbols was improved.  I'm not
 
971
sure whether it's Max compatible or not.
 
972
 
 
973
<P> You can draw into arrays with the mouse, at least in the case where there's
 
974
at least one pixel per point.  (I'm not sure if the other case even makes
 
975
sense.)
 
976
 
 
977
<P> Abstractions display their "$1", etc., arguments in the window title bar.
 
978
 
 
979
<P> A "sort" method was added for lists to make them easier to use as
 
980
sequencers.
 
981
 
 
982
<P> The "save as" dialog makes a more reasonable choice of start-up directory.
 
983
 
 
984
<P> "Trigger i" is now disallowed (it used to crash Pd.)
 
985
 
 
986
<P> Getbytes and resizebytes now zero out new memory.
 
987
 
 
988
<P> A memory leak reported by Hannes has been partly, hopefully mostly, fixed.
 
989
 
 
990
<P> The "signal_free 2" bug reported by Fogar is fixed.
 
991
 
 
992
<P> New graphs now reliably avoid using already-taken "graph%d" names.
 
993
 
 
994
<P> The old bug which showed up as ".xxxxxxxxx: no such object" is fixed.
 
995
 
 
996
<P> The FFT examples have been reworked and the "pique" and "shift" objects
 
997
are moved to "extra".
 
998
 
 
999
<BR> <BR> 
 
1000
------------------- 0.30 -----------------
 
1001
<P> in Linux, you can get Pd to promote itself to "real time" priority.
 
1002
A "watchdog" process protects you from having Pd lock your machine up.  You
 
1003
must request real time by running "pd -rt" or "pd -realtime".  You must  either
 
1004
be superuser or make Pd a root-owned SETUID program (chown root .../pd/bin/pd;
 
1005
chmod 4755 .../pd/bin/pd).  For security reasons, Pd relinquishes root
 
1006
privelige immediately after setting its priority, before loading
 
1007
any patches or externs.
 
1008
 
 
1009
<P> Protection was added against message loops.
 
1010
 
 
1011
<P> loadbang was fixed so that loadbangs in abstractions go off before loadbangs
 
1012
in the owner patch.  Within each patch, loadbangs go off forst in subpatches.
 
1013
 
 
1014
<P> new object: tabplay~, a non-imterpolating sample reader.
 
1015
 
 
1016
<P> new objects (in "extra" library): loop~; rev1~.
 
1017
 
 
1018
<P> The "toys" library was renamed "extra" and incorporated in the Pd release.
 
1019
 
 
1020
<P> In Linux, timeouts were added to the driver opening and closing code
 
1021
(which used to hang under some conditions.)
 
1022
 
 
1023
<P> the "field" object was replaced by "template"; see "data.structures"
 
1024
examples in 7.stuff.  Data lists can be read from and written to files now.
 
1025
 
 
1026
<P> You can invoke an external object by pathname, as in "../../extra/loop~".
 
1027
 
 
1028
<P> hip~, etc. should no longer get stuck when they get a NAN on input.
 
1029
 
 
1030
<P> a bug was fixed in expanding symbols such as "$1-foo".
 
1031
 
 
1032
<BR> <BR> 
 
1033
------------------- 0.29 -----------------
 
1034
 
 
1035
<P> readsf~ - a MAX/FTS style soundfile player, which reads multichannel
 
1036
soundfiles in wave, aiff, or next formats.  The files must be 16 or 24 bit
 
1037
fixed point or 32 bit floating point (only nextstep headers understand the
 
1038
latter.) You can also override the header.  A "skip" flag lets you read
 
1039
starting anywhere in the file.  (Sorry: linux only for now; I can't find
 
1040
Posix threads packages for the other platforms.)
 
1041
 
 
1042
<P> soundfiler - support for reading and writing soundfiles (wave, aiff,
 
1043
nextstep) to and from arrays.  Multichannel soundfiles can be read into or
 
1044
written from several arrays at once.  When reading you can ask that the tables
 
1045
be automatically resized; in any event the object obligingly outputs the number
 
1046
of samples actually read.  When writing you can specify a sub-segment of the
 
1047
arrays, and/or request that the soundfile's maximum amplitude be normalized to
 
1048
one.
 
1049
 
 
1050
<P> tabplay~ - a non-interpolating sample player
 
1051
 
 
1052
<P> Garry Kling reports having compiled Pd for "yellowdog" linux on Macintosh
 
1053
computers.  One "fix" has been made to s_linux.c to facilitate this.  I don't
 
1054
have access to a Mac running linux at the moment so I can't verify whether
 
1055
any particular repease of mine actually works there.
 
1056
 
 
1057
<P> Signal objects now automatically convert scalars to vectors, so that you
 
1058
can just run a number box into a signal input.  One caveat is that the binops
 
1059
"+~", "-~", "*~", "/~", "max~", "min~" run slightly faster if you give them
 
1060
an argument to tell them that their right inlet will be scalar; so the 
 
1061
construction "+~ 0" is still meaningful.  This will get fixed at some later
 
1062
date...
 
1063
 
 
1064
<P> Font sizes work in what I hope will be a more machine-portable way.  On
 
1065
any machine, the point sizes 8, 10, 12, 14, 16, 24 are DEFINED to be the
 
1066
largest fonts Pd can find that don't exceed their size on my linux machine.
 
1067
This way I can write patches that everyone else can read, and others will
 
1068
at least have fewer portability problems than before.  The downside is that
 
1069
your old patches may appear with a different type size than you want; use the
 
1070
"font" menu item to fix them.
 
1071
 
 
1072
<P> The OSS support no longer asks the audio driver whether full duplex
 
1073
is needed; it just tries to open it.  Apparently some drivers (such as
 
1074
ALSA's OSS emulation) might do full duplex but not implement the call Pd
 
1075
used to query for it.
 
1076
 
 
1077
<P> You can give "-nomidi" as a flag (previously you had to type "-nomidiin
 
1078
-nomidiout".)
 
1079
 
 
1080
<P> A GUI bug reported by Iain Mott was fixed.
 
1081
 
 
1082
<P> You can now type symbols such as "$3-poodle" and the "$3" portion gets
 
1083
expanded properly.  Someone was also asking about the FTS-style #0 feature,
 
1084
but I couldn't figure out how to reconcile it with Pd's usage of "$" for "#"
 
1085
in abstractions.  So I'm still searching for a good way to provide local
 
1086
symbols.
 
1087
 
 
1088
<P> the GUI now protects itself from "\", "{" and "}" characters by dropping
 
1089
them.  I wonder how many NT users have crashed Pd trying to type in filenames
 
1090
with backslashes...
 
1091
 
 
1092
<P> samphold_set and tabwrite_stop methods added.  There turned out to be
 
1093
no help window for samphold~ so one was supplied.
 
1094
 
 
1095
<BR> <BR> 
 
1096
------------------- 0.28 -----------------
 
1097
 
 
1098
<P> Version 0.28 has a primitive in-box text editor... about time!
 
1099
 
 
1100
<P> the "front panel" now gives you information on audio levels and
 
1101
sync errors.
 
1102
 
 
1103
<P> Message boxes flash, sort of, when you click them.
 
1104
 
 
1105
<P>
 
1106
Support has been added for RME 9652 soundcards; see the Linux soundcard section of
 
1107
the documentation.  Support files for RME and PCI128 (Ensoniq es1370) cards
 
1108
are released separately from Pd.
 
1109
 
 
1110
<P> The delete and backspace keys clear the current selection.  There is
 
1111
unfortunately no "undo" though; I'm not sure this is a good thing to have
 
1112
put in.
 
1113
 
 
1114
<P> The "until" object has a "float" method which limits the number of bangs
 
1115
it will output.
 
1116
 
 
1117
<P> The audio setup is better documented for NT and Linux.
 
1118
 
 
1119
<P> The externs in 4.fft and 6.externs got recompiled and tested.
 
1120
 
 
1121
<P> BUG FIX: the "read16" message to tables was broken on NT and is now fixed.
 
1122
 
 
1123
<P> BUG FIX: In Linux, starting Pd up sometimes changed the audio mixer 
 
1124
setting.
 
1125
 
 
1126
<P> BUG FIX: sending "floats" to inlets expecting lists now works correctly.
 
1127
 
 
1128
<P> BUG FIX: "route" on symbols now deals better with symbols, floats and lists.
 
1129
 
 
1130
<BR> <BR> 
 
1131
------------------- 0.27 -----------------
 
1132
<P>
 
1133
The main new feature is the "find" menu stuff.  You can search for boxes
 
1134
containing specified atoms, including semicolons or commas.  Most errors are
 
1135
now trackable, allowing you to "find last error".  Look in the "Find" menu.
 
1136
 
 
1137
<P>
 
1138
New objects written: change, max, max~, min, min~, and swap.
 
1139
 
 
1140
<P>
 
1141
I looked in 0.INTRO.txt in 5.reference, and found that the objects 
 
1142
bag, cputime, realtime, pipe, symbol, poly, and bang were missing.
 
1143
 
 
1144
<P>
 
1145
Five or six bug fixes.
 
1146
 
 
1147
<P>
 
1148
Some audio problems in 0.25 were addresses.  In Linux, audio drivers that
 
1149
don't support the GETISPACE/GETOSPACE ioctl calls can be called using the
 
1150
(inferior) "-frags/-fragsize" mechanism.  If you specify either a "-frags"
 
1151
or a "-fragsize" option, the GETIOSPACE calls are cancelled.
 
1152
 
 
1153
<P>
 
1154
Under NT, for some audio drivers the 0.26 release gave a constant stream of
 
1155
"resync" events.  I don't know what causes this but I added a "-noresync"
 
1156
option which simply never resyncs at all.
 
1157
 
 
1158
<BR> <BR> 
 
1159
------------------- 0.26 -----------------
 
1160
<P>
 
1161
phasor~ and osc~ can be configured to take floating point messages to set
 
1162
their frequencies,  as an alternative to having an input signal to do the
 
1163
same.  Also, +~, etc, can take floating point arguments (and messages) to
 
1164
add or multiply scalars.  THe +~, etc, loops were unrolled to make them
 
1165
run faster.
 
1166
 
 
1167
<P>
 
1168
A switch~ object is provided to let you switch sub-patches on and off.  The
 
1169
inlet~ and outlet~ objects were re-written to avoid adding any overhead when
 
1170
moving signals in or out of sub patches.
 
1171
 
 
1172
<P>
 
1173
In Linux at least, the audio latency is much reduced.  It's possible to poll
 
1174
for audio I/O lateness errors by sending "pd audiostatus".
 
1175
 
 
1176
<P>
 
1177
When reading a sample using tabread4~, you can switch between sample tables
 
1178
using the "set" message.
 
1179
 
 
1180
<P>
 
1181
A new "textfile" object is like qlist but more flexible.
 
1182
 
 
1183
<P>
 
1184
Many help windows got updated (but at least a dozen more need work urgently).
 
1185
 
 
1186
<P>
 
1187
A dsp_addv function was added to allow variable-length DSP calls (for writers
 
1188
of tilde externs.)
 
1189
 
 
1190
<P>
 
1191
It's possible for a tilde extern to have a name ending in "tilde" now.  Name
 
1192
the setup routine "foo_tilde" for "foo~", etc.
 
1193
 
 
1194
<P>
 
1195
The dac~ object was fixed to clip its output when out of    range (before it
 
1196
wrapped around.)
 
1197
 
 
1198
<P>
 
1199
A first line of protection was added against getting numerical underflow
 
1200
in delay feedback loops.  Before, when a reverberator taled out there was
 
1201
a sudden jump in CPU usage because the numerical underflows would trap to the
 
1202
kernel.  Now, if any delwrite~ is given a value less than 1e-20 or so, it
 
1203
records a true zero to avoid this.
 
1204
 
 
1205
<P>
 
1206
Signal division checks for divide by zero.
 
1207
 
 
1208
<P>
 
1209
A "Font bomb" feature is provided for resizing fonts and stretching and
 
1210
contracting patches to fit.
 
1211
 
 
1212
<P>
 
1213
Pds now bind themselves to the symbol pd-&lt;window-name).
 
1214
 
 
1215
<P>
 
1216
IN Linux, if Pd is called as root it tries to promote its run-time
 
1217
priority.  You can make pd a setuid root owned program if you want this
 
1218
behavior for non-root users who start pd.
 
1219
(Don't make pd-gui setuid though.  That would make a security
 
1220
hole in your system.)
 
1221
 
 
1222
<P>
 
1223
The Pd commend line can take multiple "open" arguments.
 
1224
 
 
1225
<P>
 
1226
The file search path feature was fixed amd generalized.
 
1227
 
 
1228
<P>
 
1229
Alt-clicking a table gives you a dialog to set its x and y range and pixel
 
1230
size.
 
1231
 
 
1232
<BR> <BR> 
 
1233
------------------- 0.25 -----------------
 
1234
<P>
 
1235
Lots of minor, under-the-hood improvements and bug fixes...
 
1236
<P>
 
1237
The Netsend/netreceive objects were improved; you can now choose between UDP
 
1238
and TCP and there's an outlet to tell you whether they're connected.
 
1239
<P>
 
1240
You can now alt click on an object to get its help window (and the help
 
1241
windows got a fair amount of work.)
 
1242
<P>
 
1243
multichannel audio I/O -- you can get up to 8 audio cnahhelsin and out.
 
1244
On SGI this is sdone correctly; on NT it's done using sequential "stereo"
 
1245
devices.  I'm not sure of the status of multichannel in linux...
 
1246
<P>
 
1247
The "text" window got new accelerators and a bigger font size
 
1248
<P>
 
1249
there are 3 "tool" patches in 7.stuff: filtering, pvoc, ring mod.
 
1250
<P>
 
1251
In NT, command-line backslashes are converted to forward slashes.
 
1252
<P>
 
1253
There's a load measurement tool in the "help" menu.
 
1254
<P>
 
1255
The SGI version contains an n32 binary (look at the "bin" directory).
 
1256
 
 
1257
<BR> <BR> 
 
1258
------------------- 0.24 ---------------
 
1259
<P>
 
1260
new objects:
 
1261
<BR> - bang - convert any message to a "bang"
 
1262
<BR> - qlist -      message sequencer
 
1263
<BR> - textfile -   file to message converter
 
1264
<BR> - makefilename - format a name with a variable field
 
1265
<BR> - openpanel - "Open" dialog
 
1266
<BR> - savepanel - "Save as" dialog
 
1267
<P>
 
1268
Bug fixes:
 
1269
<BR> - Fixed a bug in "const" message to arrays
 
1270
<BR> - "exp" was broken on NT, now fixed
 
1271
<BR> - phase vocoder example improved
 
1272
<BR> - "read" message to arrays now zero out unread samples
 
1273
<BR> - bug fix in "key" object
 
1274
<BR> - bug fix in ifft~ (thanks to Peter Lunden)
 
1275
<BR> - "print" object fixed to distinguish between lists starting with symbols and
 
1276
    other messages 
 
1277
<BR> - polygon, curve, fpolygon, fcurve renamed to fix name clash with Gem
 
1278
<BR> - improved "new object" placement on screen
 
1279
<BR> - fixed help dialog to remember previous directory (thanks to Harry Castle)
 
1280
<BR> - heterogeneous lists
 
1281
<P>
 
1282
 
 
1283
Arrays can be written to and read from text files or from 16-bit
 
1284
binary files.  See ../2.starter/2G for an overview.
 
1285
<P>
 
1286
 
 
1287
Guenter Geiger has contributed a Max-style "table" object which 
 
1288
creates an "array" object in a subwindow.
 
1289
<P>
 
1290
 
 
1291
Guenter has also put in a "search path" feature for externs, abstractions,
 
1292
etc.
 
1293
<P>
 
1294
 
 
1295
The Help menu got reworked.
 
1296
<P>
 
1297
 
 
1298
Select and Route were extended to work Zack-style with symbols.
 
1299
<P>
 
1300
 
 
1301
"random" takes seeds now (see the "help" window)
 
1302
<P>
 
1303
 
 
1304
Some more work on graphical lists; you can see the current state in
 
1305
../7.stuff/data-structures.  It's still nascent.
 
1306
 
 
1307
------------------- 0.23 -------------------
 
1308
<P>
 
1309
A first cut at the "pure data" feature is now included.  See section 6
 
1310
of the documentation for a quick introduction to it; see also patches 12 and
 
1311
14 in the FFT examples.
 
1312
<P>
 
1313
The documentation has been reorganized.  The most interesting new features are:
 
1314
<BR> - some new "tutorial" patches
 
1315
<BR> - 15 "fft" examples
 
1316
<BR> - improved help navigation
 
1317
<P>
 
1318
more bug fixes:
 
1319
<BR> - titles on abstractions no longer saved inside file
 
1320
<BR> - left-to-right sorting of inlets/outlets now seems to work
 
1321
<BR> - nt audio setup got confused when driver couldn't do full duplex
 
1322
<BR> - opening window with audio on is now fixed
 
1323
<BR> - deleting inlets/outlets deletes connections first (used to crash)
 
1324
<BR> - 1e20 parsed correctly now
 
1325
<BR> - osc1~ fixed and optimized
 
1326
<BR> - resizing arrays with DSP on used to crash; now fixed
 
1327
<BR> - pasting now adds to the end of the list (used to add to beginning)
 
1328
<BR> - clicking now selects the most recent object when two or more overlap
 
1329
<BR> - Pd's "open" and "help" dialogs now maintain separate paths
 
1330
<P>
 
1331
The phasor~ object's "float" method has been REMOVED -- use the right-hand
 
1332
inlet to set the internal phase.  This is so that I can later fix all tilde
 
1333
objects to convert messages to signals automatically at all signal inputs.
 
1334
 
 
1335
<BR> <BR> 
 
1336
------------------- 0.22 -------------------
 
1337
<BR> 
 
1338
bug fixes
 
1339
<BR> - parsing 1e+006 gave symbol (now float)
 
1340
<BR> - "." parsed as number, should be symbol
 
1341
<BR> - change GUI polling loop to TK event dispatch (unix only)
 
1342
<BR> - improved "tidy up" feature
 
1343
<BR> - size check added to text boxes (used to crash; still not correct.)
 
1344
<BR> - occasional bug sending text with CRs to tk
 
1345
<BR> - binop startup bug
 
1346
<BR> - key accelerators for creators wrong
 
1347
<BR> - ftom range to 1500
 
1348
<BR> - bug in pack, unpack
 
1349
<BR> - windows restore bigger than saved
 
1350
<BR> 
 
1351
<BR> 
 
1352
 
 
1353
Nt-specific bug fixes:
 
1354
<BR> - getsockopt for netreceive fails.  Just omitted it for NT.
 
1355
<BR> - put tcl dlls in tcl bin, not pd bin
 
1356
<BR> --- archive tcl subsystem for easier version updates
 
1357
<BR> --- fix README accordingly
 
1358
<BR> - deal with bell sound
 
1359
<BR> - turn on optimization
 
1360
<BR> - looked for audio timeout bug but couldn't find it.
 
1361
<BR> <BR> 
 
1362
 
 
1363
------------------- 0.21 -------------------
 
1364
 
 
1365
<P>
 
1366
bug fixes:
 
1367
 
 
1368
<P>
 
1369
table size change with DSP on:  It used to crash Pd to resize an array
 
1370
when DSP was turned on.  This is now fixed.
 
1371
 
 
1372
<P>
 
1373
deselect all when locking.  When you lock a patch the selection is cleared.
 
1374
 
 
1375
<P>
 
1376
unlock when pasting.  .. and if you paste into a petch, it's unlocked.
 
1377
 
 
1378
<P>
 
1379
 
 
1380
lost keyboard events.  Version 0.20 lost keyboard events and
 
1381
forgot window size changes.  This should now be fixed.
 
1382
 
 
1383
<BR> subpatches came up in wrong font size
 
1384
<BR> dirty flag on window title bar fixed
 
1385
<BR> improvement to netreceive suggested by Mark Danks
 
1386
<BR> style notes fleshed out as suggested by Larry Troxler
 
1387
<BR> fixed Bill Kleinsasser's bug (short and long array in same graph)
 
1388
 
 
1389
<P>
 
1390
new features:
 
1391
 
 
1392
<BR> phase setting for phasor~
 
1393
<BR> fft objects.  Also, block~, for specifying block sizes and overlaps for FFTs.
 
1394
<BR> canvas_makefilename() (used, e.g.,  by array_read and write)
 
1395
<BR> "stuff" directory with examples of real Pd applications.
 
1396
 
 
1397
<BR> <BR> 
 
1398
------------------- 0.20 -------------------
 
1399
 
 
1400
<P>
 
1401
In NT, the 0.19 release turned out not to contain all the files needed to make
 
1402
TCL run.  This problem should now be fixed.
 
1403
 
 
1404
<P>
 
1405
Also, the array_write routine was fixed.
 
1406
 
 
1407
<BR> <BR> 
 
1408
------------------- 0.19 -------------------
 
1409
 
 
1410
<BR>
 
1411
notable new objects:
 
1412
 
 
1413
<BR>
 
1414
- vcf~, a bandpass filter with a signal input for center frequency.
 
1415
<BR>
 
1416
- delread, delwrite, vd, as in ISPW Max.
 
1417
<BR>
 
1418
- various math and midi stuff
 
1419
<BR>
 
1420
- catch~, throw~, send~, receive~ for nonlocal signal connections
 
1421
<P>
 
1422
- an experimental facility for array of floats is included. You can make a new
 
1423
array (from the "put" menu) which will be given a name such as "array1".  You
 
1424
can then send it "read &lt;file&gt;", "write &lt;file&gt;", "resize &lt;N&gt;", and "print"
 
1425
messages.  File reading and writing is in ascii.  "resize" changes the size of
 
1426
the array, and "print" prints its vital signs.  You can then use "tabread4~"
 
1427
to do a 4-point interpolating table lookup, and tabwrite~ to write audio
 
1428
samples into the table.
 
1429
<P>
 
1430
Numbers now default to floating point, although certain objects like "spigot"
 
1431
and "metro" still convert their boolean inputs to integers so that 0.5 is
 
1432
"false." This behavior will probably change later.  The "div" and "mod"
 
1433
objects are introduced for explicit integer division and remainder.
 
1434
<P>
 
1435
Number boxes drag in integer increments, or in hundredths if you hold the
 
1436
"shift" key down when you click.
 
1437
<P>
 
1438
Pd documents now save their font sizes.  The font size is global to an entire
 
1439
document.  New documents come up in the font size Pd was started in (using
 
1440
the "-font" flag.)  If you want to change the font size of an existing
 
1441
document, use a text editor; the font size is the last argument on the first
 
1442
line. 8, 10, 12, 14, 16, 18, and 24 are supported.
 
1443
<P>
 
1444
The abbreviations "t," "f," and "i" stand for "trigger,", "float", and "int."
 
1445
<P>
 
1446
Inlets and outlets of subpatches are now sorted correctly; although there is
 
1447
still a problem deleting inlets/outlets which have connections.
 
1448
<P>
 
1449
The size and screen location of Pd documents is saved correctly.
 
1450
<P>
 
1451
Tilde objects now work in "subpages" although there is no way to send
 
1452
signals through their inlets and outlets; use throw~/catch~ or send~/receive~.
 
1453
<P>
 
1454
On NT, the default is to open both audio output and input (this used not
 
1455
to work.)  The situation is still shaky; audio seems to hang up sporadically
 
1456
on my machine; but I seem to have installed my audio driver wrong anyway.
 
1457
I had to set a huge output FIFO (1/3 sec or so!) to get it to work at all.
 
1458
You can type "pd -dac", "pd -adc", or "pd -nosound" to get output only,
 
1459
input only, or no audio at all.
 
1460
NT's MIDI input and output are supported, but on my machine MIDI output is
 
1461
flaky.  I'm curious how all this will work on other machines...
 
1462
<P>
 
1463
The list of classes is now:
 
1464
<P>
 
1465
 
 
1466
GENERAL:
 
1467
field inlet outlet print int float send receive select route pack unpack
 
1468
trigger spigot moses delay metro line timer makenote stripnote random loadbang
 
1469
serial get netsend netreceive
 
1470
<P>
 
1471
 
 
1472
MATH:
 
1473
+ - * / == != > < >= <= & && | || %
 
1474
mod div sin cos tan atan atan2 sqrt log exp abs
 
1475
mtof ftom powtodb rmstodb dbtopow dbtorms 
 
1476
<P>
 
1477
 
 
1478
MIDI:
 
1479
notein ctlin pgmin bendin touchin polytouchin noteout ctlout pgmout bendout
 
1480
touchout polytouchout
 
1481
<P>
 
1482
 
 
1483
SIGNAL:
 
1484
dac~ adc~ sig~ line~ snapshot~ +~ -~ *~ /~ phasor~ cos~ vcf~ noise~ env~ hip~
 
1485
lop~ bp~ biquad~ samphold~ clip~ rsqrt~ sqrt~ wrap~ print~ scope~ tabwrite~
 
1486
tabread4~ send~ receive~ catch~ throw~ delwrite~ delread~ vd~
 
1487
 
 
1488
<BR> <BR> 
 
1489
------------------- 0.18 -------------------
 
1490
 
 
1491
<BR>
 
1492
Release notes now descrie the three platforms Pd runs on: IRIX and
 
1493
NT (maintained at UCSD) and LINUX, maintained by Guenter Geiger.
 
1494
 
 
1495
<P>
 
1496
menu "close" on a dirty document now checks if you really want to close
 
1497
without saving (although "quit" will still exit Pd without verification.)
 
1498
 
 
1499
<P>
 
1500
Got rid of "dll" error printout when loading abstractions
 
1501
 
 
1502
<BR> <BR> 
 
1503
------------------- 0.12 - 0.17 -------------------
 
1504
 
 
1505
<BR>
 
1506
got Pd running under NT, although driver problems remain.  Gem is also
 
1507
distributed for both platforms.
 
1508
 
 
1509
<BR> <BR> 
 
1510
------------------- 0.11  -------------------
 
1511
 
 
1512
<BR>
 
1513
Here's a list of all the objects in this release:
 
1514
 
 
1515
<BR>
 
1516
general: print int float send receive select pack unpack trigger spigot
 
1517
<BR>
 
1518
time handling: delay metro line timer
 
1519
<BR>
 
1520
arithmetic: + + - - * * / / == == != != > > < < >= >= <= <= & && | || %
 
1521
<BR>
 
1522
midi: notein noteout makenote stripnote
 
1523
<BR>
 
1524
other: random get
 
1525
<BR>
 
1526
signals: dac~ adc~ sig~ line~ snapshot~ +~ *~
 
1527
<BR>
 
1528
signal oscillators: phasor~ cos~
 
1529
<BR>
 
1530
signal filters: env~ hip~
 
1531
<BR>
 
1532
signal debugging : print~ scope~
 
1533
<BR>
 
1534
<BR>
 
1535
 
 
1536
"spigot" replaces "gate" but has the inputs reversed.
 
1537
 
 
1538
<BR> <BR> 
 
1539
------------------- 0.10  -------------------
 
1540
<BR>
 
1541
 
 
1542
Many bug fixes.  This was the first pre-release to be put on the FTP site.
 
1543
 
 
1544
<BR> <BR> 
 
1545
------------------- 0.09  -------------------
 
1546
 
 
1547
<BR> set up the "Help" menu
 
1548
<BR> Bug in DSP sorting fixed
 
1549
<BR> "Notein" and "noteout" objects
 
1550
<BR> Comments from the Put menu say "comment" (they were invisible before)
 
1551
<BR> The scheduler deals better when sound I/O malfunctions
 
1552
 
 
1553
<BR> <BR> 
 
1554
------------------- 0.08  -------------------
 
1555
 
 
1556
<BR> metro bug
 
1557
<BR> scrollbars
 
1558
<BR> scheduler bug
 
1559
<BR> text box wraparound at 80 chars.
 
1560
<BR> fixed boxes to reconnect on retype
 
1561
 
 
1562
<BR> <BR> 
 
1563
------------------- 0.07  -------------------
 
1564
 
 
1565
<BR>
 
1566
- made an adc~ object
 
1567
 
 
1568
<BR> <BR> 
 
1569
------------------- 0.06 -------------------
 
1570
 
 
1571
<BR>
 
1572
- fixed two bugs in DSP sorting
 
1573
<BR>
 
1574
- added DSP on/off gui
 
1575
<BR>
 
1576
- added lock/unlock and changed the cursor behavior
 
1577
<BR>
 
1578
- fixed -font flag to set font pointsize
 
1579
 
 
1580
<BR> <BR>
 
1581
------------------- 0.05 -------------------
 
1582
<P>
 
1583
- added scope~, which is just a stopgap until real sound editing comes up.
 
1584
<BR>
 
1585
- improved the open panel slightly.
 
1586
<BR>
 
1587
- added atoms (int only).
 
1588
<BR>
 
1589
- reworked text editing to reside in Pd, not Pd-gui.
 
1590
<BR>
 
1591
- included a dbx-debuggable Pd in the distribution.  I haven't yet figured
 
1592
    out how to get dbx to work with externs though.
 
1593
 
 
1594
<BR> <BR>
 
1595
------------------- 0.04 -------------------
 
1596
<P>
 
1597
fixed "cut" which crashed 0.03 if DSP was running.
 
1598
added clip~, print~, line~, snapshot~.
 
1599
 
 
1600
 
 
1601
<BR> <BR>
 
1602
------------------- 0.03 -------------------
 
1603
<P>
 
1604
"pd dsp 1", "pd dsp 0" messages added.  If you edit a patch with DSP on,
 
1605
PD resorts the DSP network as needed.  Unconnected and multiple signal inlets
 
1606
are allowed.
 
1607
 
 
1608
<BR> <BR>
 
1609
------------------- 0.02 -------------------
 
1610
<P>
 
1611
A DSP network mechanism has been added.  DSP objects are:
 
1612
sig~, +~, *~, phasor~, cos~.
 
1613
<P>
 
1614
Loading of externs is provided (although there is no search path mechanism
 
1615
so the extern has to be in the patch's current directory.)  Look in
 
1616
pd/externs for an example.
 
1617
 
 
1618
<BR> <BR>
 
1619
 
 
1620
------------------- 0.01. -------------------
 
1621
<P>
 
1622
This first release serves mostly to test the "release" mechanism.  A Pd
 
1623
"canvas" object is provided which does both graphing and patch editing.
 
1624
The editing features apply only to the Max-like part; the graphs have
 
1625
to be edited into a Pd file via text editor.
 
1626
<P>
 
1627
Four menu items (in the "put" menu) create the four kinds of "patchable"
 
1628
objects; they can be dragged and connected as in Max; to break a connection,
 
1629
just click on it (the cursor becomes a turkey to indicate this.)  Cut,
 
1630
paste, and duplicate seem to work, and a "Pd" class offers subwindows.
 
1631
<P>
 
1632
The following max-like objects are included:
 
1633
 
 
1634
    print;
 
1635
    +, *, -, /, ==, !=, >, <, >=, <=, &, |, &&, ||, %;
 
1636
    int, float, pack, unpack, trigger;
 
1637
    delay, metro, timer;
 
1638
    send, receive.
 
1639
<P> -----------------------------------------
 
1640
 
 
1641
<H3> <A name="s2"> 5.2. known bugs </A> </H3>
 
1642
 
 
1643
<P> In the list below, starred items are still things needing attention.
 
1644
This list is no longer maintained; see the sourceforge bug tracker on
 
1645
https://sourceforge.net/tracker/?group_id=55736
 
1646
 
 
1647
<P> *1. Timing of MIDI input/output is very shaky.  Audio I/O is primitive, but
 
1648
there's at least a way to detect errors now for linux and NT.
 
1649
 
 
1650
<P> *2. There is no flow control for graphical updates yet; the
 
1651
real-time process can easily block trying to write too fast to the GUI.
 
1652
 
 
1653
<P> 3. PD dies if your patch has an infinite loop [fixed in 0.30 release.]
 
1654
 
 
1655
<P> *4. If you cut a box which is a "Pd" or abstraction whose subpatch has
 
1656
items selected, Pd dies.
 
1657
 
 
1658
<P> *5. Tables and other drawable items can draw far outside the window; there's
 
1659
no sanity check,  Huge tables (>1000 points) are only partially drawn
 
1660
(the first 1000 points.)
 
1661
 
 
1662
<P> 6. There's no way to order force a delread~ to make it read after
 
1663
a delwrite~ has written. [but see under 3.audio.examples how to do this now.]
 
1664
 
 
1665
<P> 7. Pd doesn't know to suspend graphics updates when you minimize objects.
 
1666
Presumably minimization makes things better but it doesn't cut off graphics
 
1667
computation entirely as it should. [fixed for 0.34]
 
1668
 
 
1669
<P> 8. If you load a nonexistent extern you get a spurious message,
 
1670
"consistency check failed: canvas_setargs".  [fixed for 0.27 release.]
 
1671
 
 
1672
<P> 9. Typing backslashes into objects upsets Tk [0.29 should suppress all
 
1673
backslashes; a real fix might come later.]
 
1674
 
 
1675
<P> 10. Never type a dollar sign into a comment; you may have trouble
 
1676
opening your patch afterward... [fixed somewhere around 0.32]
 
1677
 
 
1678
<P> *11. You'd better Turn DSP off before you type into a box that currently
 
1679
holds a "pd" object with tilde objects in the subpatch.
 
1680
 
 
1681
<P> *12.  In Linux, if you hit control C while Pd is opening MIDI, Pd hangs.
 
1682
 
 
1683
<P> *13.  In linux, Pd doesn't report audio data-late errors yet.
 
1684
 
 
1685
<P> *14.  Several objects, notably dac~, adc~, and env~, are incompatible with
 
1686
uses of block~ or switch~ objects that change block size from the default of
 
1687
64.  Using switch~ without reblocking causes no problem.  Don't try to
 
1688
read/write delay lines or use send~/receive~, or throw~/catch~, between
 
1689
windows with different block sizes.
 
1690
 
 
1691
<H3> <A name="s3"> 5.3. differences from Max/MSP </A> </H3>
 
1692
 
 
1693
<P> It wasn't anyone's intention to make Pd a Max/MSP clone, but on the
 
1694
other hand, if there's no reason for a feature to appear differently in
 
1695
Pd than in Max/MSP, the choices in Pd tend to hew to those in Max/MSP.
 
1696
Moreover, some effort has been undertaken (but more is needed) to make the
 
1697
two interoperable.
 
1698
 
 
1699
<P> You can use Pd to import and export patches to Max/MSP; just save as
 
1700
text to a file with extension ".pat", and then open it in Pd.  You'll at
 
1701
least get something.  If you stick to common or commonizable features
 
1702
you can actually develop patches for both platforms.
 
1703
 
 
1704
<P> When specific objects exist on one platform and not on the other, it's
 
1705
often possible to make abstractions to imitate the missing objects, in a
 
1706
kind of personalized compatibility library.
 
1707
 
 
1708
<P> There are, however, differences in semantics you'll want to know about;
 
1709
a partial list follows.
 
1710
 
 
1711
<P> <b> abstraction arguments. </b>
 
1712
In Pd you can edit instantiations of abstractions and save the result back
 
1713
to the file of the abstraction.  This isn't possible in Max, because the
 
1714
instantiations are different from the abstraction itself in that "#1", etc.,
 
1715
are replaced by the instantiation arguments.  In Pd, these arguments appear
 
1716
as "$1", etc, and are translated at a slightly later stage of the instantiation
 
1717
process so that you still see them as "$" variables in the instantiation.
 
1718
<A href="x2.htm#s7.1"> (see Section 2.7. abstractions) </A>
 
1719
 
 
1720
<P> In Pd, to make current all instantiations of the
 
1721
abstraction, either delete and recreate them or close and open the patch; 
 
1722
this is done automatically in Max/MSP.
 
1723
 
 
1724
<P>  In Pd, if you select "save" while in a subpatch, the parent is saved. In
 
1725
Max/MSP, if you do this a dialogue box comes up asking if you want to save the
 
1726
subpatch as a separate file.  (if you want to save a subpatch to a file in Pd,
 
1727
you have to copy and paste the contents to a new document.
 
1728
 
 
1729
<P> In Pd, inlets and outlets are ordinary text objects; in Max/MSP they're
 
1730
"gui" objects from the palette.
 
1731
 
 
1732
<P> In Max/MSP, if an object's outlet is connected to several destinations,
 
1733
corresponding messages are always sent in right-to-left screen order.  In
 
1734
Pd, the messages are sent in the order you made the connections in.  In either
 
1735
case, in situations where you care about the order it's appropriate to use
 
1736
a "trigger" object to specify.
 
1737
 
 
1738
<P> In Pd, there's no "gate"; instead it's "spigot" with the inlets in the
 
1739
opposite, more natural order.
 
1740
 
 
1741
<P> Switching subsets of the DSP patch on and off is done in completely
 
1742
different ways in Pd and Max/MSP, and block sizes are handled differently as
 
1743
well.
 
1744
 
 
1745
<P>  Max offers many "GUI" objects such as sliders, dials, VU meters, piano
 
1746
keyboards, even "bpatchers." Until version 0.34, the only two in Pd were the
 
1747
number box and graphical arrays.  Starting in version 0.34, Pd incorporates
 
1748
Thomas Musil's GUI objects: sliders, switches, and so on.  (Thanks Thomas!)
 
1749
Beyond this essential collection of GUI objects, it's unlikely you'll ever find
 
1750
any commonality between the two.  Also, as of 0.34, importing and exporting to
 
1751
Max doesn't know about the Musil objects; I'll try to get that fixed for 0.35.
 
1752
 
 
1753
<P>  In Pd there's no "preset" object (I now think it's basically a bad idea)
 
1754
and you have to use explicit sends and receives to restore values to number
 
1755
boxes. Then just make a "message" box to re-send the values you want. 
 
1756
 
 
1757
<P> In Macintosh land, instead of getting tabosc4~ and arrays, you get cycle~
 
1758
and buffer~. The only gotcha is that you probably can't draw in buffer~ with
 
1759
the mouse as you can with arrays, but at least it's possible to 
 
1760
make a patch that copies a "table" into a "buffer~".
 
1761
 
 
1762
<P> The "bpatcher" feature in Max has a correlate, "graph on parent" subpatches,
 
1763
in Pd; however, Pd's version is quite different from Max's.
 
1764
 
 
1765
</BODY>
 
1766
</HTML>