~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): Guenter Geiger (Debian/GNU)
  • Date: 2005-04-08 16:21:52 UTC
  • mfrom: (1.2.1 upstream) (2.1.1 hoary)
  • Revision ID: james.westby@ubuntu.com-20050408162152-88qyy276gx2qmx35
Tags: 0.38.4+amidi-3
* Incorporated mlock fix for 2.6 kernels
* moved allocation/deallocation out of midi poll() call for ALSA (this 
  cause problems on 2.6 kernel series when using -rt)

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.37.1 --------------------------
24
 
 
25
 
<P> fixed the apple key on OSX so it does key accelerators
26
 
 
27
 
<P> fixed bug in -inchannels/-outchannels arg parsing
28
 
 
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.
31
 
 
32
 
<P> bug fix in vd~ for very small delays
33
 
 
34
 
<P> fixed MSW version not to make windows grow by 2 pixels on save/restore
35
 
 
36
 
<P> added an "nrt" flag for OSX to defeat real-time priritization
37
 
(useful when runnig Gem.)
38
 
 
39
 
<P> on some platforms, audio open failures are handled more gracefully.
40
 
 
41
 
<P> added a "changelog" file in the source directory to document source-level
42
 
changes.
43
 
 
44
 
<P> ------------------ 0.37 --------------------------
45
 
 
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.
53
 
 
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> ).
58
 
 
59
 
<P> The block~/switch~ object now takes a "set" message to dynamically change
60
 
block size, etc.
61
 
 
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).
64
 
 
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".
68
 
 
69
 
<P>  Various improvements were made in audio I/O to improve stability and
70
 
reduce latency.
71
 
 
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.)
75
 
 
76
 
<P>  The fiddle~ object (in extra) has an "npoints" method to set the analysis
77
 
window size dynamically.
78
 
 
79
 
<P> (windows) Pd is now distributed as a self-extracting archive.
80
 
 
81
 
<P> (windows) url files in the help directories are opened correctly.
82
 
 
83
 
<P> (Mac) the arrow keys should now be fixed.
84
 
 
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.)
87
 
 
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.)
91
 
 
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.
96
 
 
97
 
<P> (developers) Better flag handling in the IEM GUIs (g_toggle.c, etc) should
98
 
compile with fewer warnings and be more portable.
99
 
 
100
 
 
101
 
<P> ------------------ 0.37-test 1 --------------------------
102
 
 
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>.
107
 
 
108
 
<P> A bug was fixed in readsf~/writesf~ (things were coming out in the wrong
109
 
number of channels.)
110
 
 
111
 
<P> A problem compiling Pd with TK8.4 (the latest version) was fixed.
112
 
 
113
 
<P> Large numbers of GUI improvements by Adam Lindsay, especially relevant
114
 
to Mac OSX.
115
 
 
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.)
122
 
 
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.
128
 
 
129
 
<P>  Pd refuses to connect signal outlets to non-signal inlets.
130
 
 
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.
134
 
 
135
 
<P> ------------------ 0.36-1 -------------------------------
136
 
 
137
 
<P> "print" now queries you for a file to save the postscript to.
138
 
 
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.
141
 
 
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.
145
 
 
146
 
<P> bug fix: vradio, hradio "send symbol" feature didn't work
147
 
 
148
 
<P> ------------------ 0.36 -------------------------------
149
 
 
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.
155
 
 
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.
160
 
 
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)
163
 
 
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).  
168
 
 
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.
172
 
 
173
 
<P> "Make install" should now actually make Pd before trying to install it.
174
 
 
175
 
<P> "expr" is updated to Shahrokh's 0.4test3 version (which I modified somewhat
176
 
to get it to compile.)  
177
 
 
178
 
<P> The problem of CPU usage skyrocketing on underflows in P4s should
179
 
be fixed.
180
 
 
181
 
<P> Compiled "pdsend" and "pdreceive" for Windows.
182
 
 
183
 
<P> "PD_VERSION" macro added to m_pd.h
184
 
 
185
 
<P> ------------------ 0.35 -------------------------------
186
 
 
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/.
191
 
 
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."
196
 
 
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 
200
 
yet.
201
 
 
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.
213
 
 
214
 
<P> A new version of Thomas Musil's GUI objects was merged in.
215
 
 
216
 
<P> The testtone patch works for up to 6 channels of audio input and output.
217
 
 
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.
223
 
 
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~").
226
 
 
227
 
<P> A bug in paf~ is fixed.
228
 
 
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.)
231
 
 
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.
234
 
 
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.)
239
 
 
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.
242
 
 
243
 
<P> In MS windows, you can now use "readsf~/writesf~" for spooling sounds to
244
 
and from disk.
245
 
 
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.
252
 
 
253
 
<P> The outlet is removed from the "table" object.
254
 
 
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
262
 
default is "resync".
263
 
 
264
 
<P> In soundfiler's read method, if you specify "-maxsize", that implies
265
 
"-resize" (as it ought to.)
266
 
 
267
 
<P> You can use $1-style names for arrays and tables.
268
 
 
269
 
<P> Pd will now refuse to make duplicate connections between objects.
270
 
 
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
274
 
yet.
275
 
 
276
 
<P> In Linux, ALSA audio is now fixed to clip, not wrap around, on output
277
 
overflows.
278
 
 
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.
282
 
 
283
 
<P> A function call is added to retrieve a unique event-dependent number,
284
 
so that objects like "buddy" can be written.
285
 
 
286
 
<P> All the "sound" command-line flags now have "audio" equivalents.
287
 
 
288
 
<P> The "-listdev" flag now works on Mac and MSW/ASIO.
289
 
 
290
 
<P> Help file updates for env~, route, and pointer
291
 
 
292
 
<P> ------------------ 0.34.3 -------------------------------
293
 
 
294
 
<P> fixed a bug in "udp" netreceive that crashed pd
295
 
 
296
 
<P> fixed a bug in tabosc4~ that caused gritty sound
297
 
 
298
 
<P> changed "specfile" for RPM releases (thanks Fernando)
299
 
 
300
 
<P> adopted Krzysztof's glob_setfilename bug fix
301
 
 
302
 
<P> bug fixes from "the joy of global variables" thread in Pd list
303
 
 
304
 
<P> made a help window for "table".
305
 
 
306
 
<P> ------------------ 0.34.2 -------------------------------
307
 
 
308
 
<P> fixed ".pdrc" bug
309
 
 
310
 
<P> added an experimental "pd restart-audio" feature for (new) Alsa
311
 
 
312
 
<P> ------------------ 0.34.1 -------------------------------
313
 
 
314
 
<P> Bug fixes:
315
 
 
316
 
<P> 1.  Closing a window with objects selected crashed Pd.
317
 
 
318
 
<P> 2.  "find" when it opened a window to show the found object crashed Pd.
319
 
 
320
 
<P> 3.  (Linux only) Oversized .pdrc files crashed pd...
321
 
 
322
 
<P> Also, I updated Thomas Musil's IEM GUI objects and their help files.
323
 
 
324
 
 
325
 
<P> ------------------ 0.34 -------------------------------
326
 
 
327
 
<P> NEW FEATURES:
328
 
 
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.
333
 
 
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.
337
 
 
338
 
<P> Finally, I fixed Pd to notice window iconification and suspend graphical
339
 
updates for iconified windows.
340
 
 
341
 
<P> Numbering of versions of Pd will now be as in "0.34.2" instead of
342
 
"0.34PATCH2" which was confusing.
343
 
 
344
 
<P> BUGS FIXED:
345
 
 
346
 
<P> I incorporated Krzysztof Czaja's menuclose bug fix in g_canvas.c.
347
 
 
348
 
<P> (Linux) the configure script is more rational.
349
 
 
350
 
<P> the qlist and pack objects were fixed to handle reentrancy correctly.
351
 
 
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.
355
 
 
356
 
<P> Typing into a message box sometimes left you with lines from the output
357
 
pointing to the wrong location.  Fixed.
358
 
 
359
 
<P> Reading of "wav" and nextstep soundfiles now handles the headers better.
360
 
 
361
 
<P> ------------------ 0.33 -------------------------------
362
 
 
363
 
<P> AUDIO AND MIDI:
364
 
 
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.
371
 
 
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
378
 
you want.
379
 
 
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.
385
 
 
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.
391
 
 
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.
398
 
 
399
 
<P> NEW FEATURES:
400
 
 
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...
405
 
 
406
 
<P>  In support of expr, you can now use commas in "object" boxes; they just
407
 
become symbols.
408
 
 
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.
412
 
 
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.
416
 
 
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.
423
 
 
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.
431
 
 
432
 
<P> BUG FIXES:
433
 
 
434
 
<P> "drawnumber" was broken in 0.32 -- fixed.
435
 
 
436
 
<P> new arrays in 0.32p6 got ill-fitting graphs -- fixed.
437
 
 
438
 
<P> ------------------ 0.32 PATCH 6 -------------------
439
 
 
440
 
<P> Got array and graph dialogs to behave better when there are more
441
 
than one.
442
 
 
443
 
<P> put in mtof~, etc.
444
 
 
445
 
<P> made Pd search the "extra" directory without having to specify it in "path."
446
 
 
447
 
<P> bug fix in exporting patches to Max
448
 
 
449
 
<P> ------------------ 0.32 PATCH 5 -------------------
450
 
 
451
 
<P> Reversed the order of these release notes so that the newest appear first.
452
 
 
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.
457
 
 
458
 
<P> Bug fix: the figures in the NT web doc were garbage.
459
 
 
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
462
 
or 1000 pixels.
463
 
 
464
 
<P> Bug fix: doing "save as" on an instantiated abstraction no longer sets
465
 
the window title.
466
 
 
467
 
<P> in linux, a couple of status messages on opening /dev/dsp only appear now
468
 
if Pd is run "-verbose".
469
 
 
470
 
 
471
 
<BR> <BR> 
472
 
<P> ------------------ 0.32 PATCH 2, 3, 4 -------------------
473
 
 
474
 
<P> Hassled more with font size differences between NT and Linux, and updated
475
 
many help files.  Minor bug fixes here and there.
476
 
 
477
 
<P> the table object now takes a second argument to set size in points.
478
 
 
479
 
<P> Improved underflow protection in some DSP objects.
480
 
 
481
 
<P> pointer now has a "vnext" traversal method which goes forward to the
482
 
next SELECTED object.
483
 
 
484
 
<P> improvements to throw~ (it now sums) and receive~ fixed to be settable.
485
 
 
486
 
<P> bug fix in which RME driver always thought sample rate was 44100.
487
 
 
488
 
<BR> <BR> 
489
 
<P> ------------------ 0.32 PATCH 1 -------------------
490
 
 
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
493
 
on;
494
 
 
495
 
<P> new object: tabosc4~ -- finally, a real wavetable oscillator for Pd.
496
 
 
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
500
 
if you click.
501
 
 
502
 
<BR> <BR> 
503
 
------------------- 0.32 -----------------
504
 
 
505
 
<P> <strong> New objects: </strong> 
506
 
 
507
 
<P> midiin, sysexin, midiout.  (I don't think MIDI sysex is working
508
 
in Windows yet though.)
509
 
 
510
 
<P> threshold~ as in Jmax, triggers from audio level.
511
 
 
512
 
<P> value as in Max and Jmax.
513
 
 
514
 
<P> writesf as in Jmax.
515
 
 
516
 
<P> <strong> New startup flags: </strong> 
517
 
 
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.
520
 
 
521
 
<P> -noloadbang: cancels loadbangs.
522
 
 
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.
526
 
 
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.
529
 
 
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.
534
 
 
535
 
<P> <strong> bug fixes. </strong>
536
 
 
537
 
<P> A readsf~ problem got fixed.
538
 
 
539
 
<P> hitting the tab key used to cause Pd windows to relinquish the keyboard.
540
 
 
541
 
<P> The $0 feature apperas now to work.
542
 
 
543
 
<P> Inlets and outlets of subpatches sometimes got out of left-to-right order.
544
 
 
545
 
<P> Scrollbars are less out of whack than they were before.
546
 
 
547
 
<P> Pd now knows to de-iconify windows if you "vis" them from the parent.
548
 
 
549
 
<P>  <strong> in general: </strong> 
550
 
 
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.
553
 
 
554
 
<P> You can "select all" from the Edit menu.
555
 
 
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.
562
 
 
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.
567
 
 
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.
570
 
 
571
 
<P> You can now type into a "pd" object to change its name without losing the
572
 
contents.
573
 
 
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.
577
 
 
578
 
<P> New help windows for the "data" classes (pointer, append, template, etc.)
579
 
and for send/receive which somehow I had neglected.
580
 
 
581
 
<P> When you hit "copy" with nothing selected, the copy buffer used to be
582
 
cleared.  This is fixed to do nothing.
583
 
 
584
 
<BR> <BR> 
585
 
------------------- 0.31 -----------------
586
 
 
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.
591
 
 
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.)
595
 
 
596
 
<P> "symbol" boxes now display symbols and let you type them in.
597
 
 
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.
600
 
 
601
 
<P> Protection was added against patches opening themselves as abstractions.
602
 
 
603
 
<P> The "route" object's handling of leading symbols was improved.  I'm not
604
 
sure whether it's Max compatible or not.
605
 
 
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
608
 
sense.)
609
 
 
610
 
<P> Abstractions display their "$1", etc., arguments in the window title bar.
611
 
 
612
 
<P> A "sort" method was added for lists to make them easier to use as
613
 
sequencers.
614
 
 
615
 
<P> The "save as" dialog makes a more reasonable choice of start-up directory.
616
 
 
617
 
<P> "Trigger i" is now disallowed (it used to crash Pd.)
618
 
 
619
 
<P> Getbytes and resizebytes now zero out new memory.
620
 
 
621
 
<P> A memory leak reported by Hannes has been partly, hopefully mostly, fixed.
622
 
 
623
 
<P> The "signal_free 2" bug reported by Fogar is fixed.
624
 
 
625
 
<P> New graphs now reliably avoid using already-taken "graph%d" names.
626
 
 
627
 
<P> The old bug which showed up as ".xxxxxxxxx: no such object" is fixed.
628
 
 
629
 
<P> The FFT examples have been reworked and the "pique" and "shift" objects
630
 
are moved to "extra".
631
 
 
632
 
<BR> <BR> 
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.
641
 
 
642
 
<P> Protection was added against message loops.
643
 
 
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.
646
 
 
647
 
<P> new object: tabplay~, a non-imterpolating sample reader.
648
 
 
649
 
<P> new objects (in "extra" library): loop~; rev1~.
650
 
 
651
 
<P> The "toys" library was renamed "extra" and incorporated in the Pd release.
652
 
 
653
 
<P> In Linux, timeouts were added to the driver opening and closing code
654
 
(which used to hang under some conditions.)
655
 
 
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.
658
 
 
659
 
<P> You can invoke an external object by pathname, as in "../../extra/loop~".
660
 
 
661
 
<P> hip~, etc. should no longer get stuck when they get a NAN on input.
662
 
 
663
 
<P> a bug was fixed in expanding symbols such as "$1-foo".
664
 
 
665
 
<BR> <BR> 
666
 
------------------- 0.29 -----------------
667
 
 
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.)
674
 
 
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
681
 
one.
682
 
 
683
 
<P> tabplay~ - a non-interpolating sample player
684
 
 
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.
689
 
 
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
695
 
date...
696
 
 
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.
704
 
 
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.
709
 
 
710
 
<P> You can give "-nomidi" as a flag (previously you had to type "-nomidiin
711
 
-nomidiout".)
712
 
 
713
 
<P> A GUI bug reported by Iain Mott was fixed.
714
 
 
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
719
 
symbols.
720
 
 
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
723
 
with backslashes...
724
 
 
725
 
<P> samphold_set and tabwrite_stop methods added.  There turned out to be
726
 
no help window for samphold~ so one was supplied.
727
 
 
728
 
<BR> <BR> 
729
 
------------------- 0.28 -----------------
730
 
 
731
 
<P> Version 0.28 has a primitive in-box text editor... about time!
732
 
 
733
 
<P> the "front panel" now gives you information on audio levels and
734
 
sync errors.
735
 
 
736
 
<P> Message boxes flash, sort of, when you click them.
737
 
 
738
 
<P>
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.
742
 
 
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
745
 
put in.
746
 
 
747
 
<P> The "until" object has a "float" method which limits the number of bangs
748
 
it will output.
749
 
 
750
 
<P> The audio setup is better documented for NT and Linux.
751
 
 
752
 
<P> The externs in 4.fft and 6.externs got recompiled and tested.
753
 
 
754
 
<P> BUG FIX: the "read16" message to tables was broken on NT and is now fixed.
755
 
 
756
 
<P> BUG FIX: In Linux, starting Pd up sometimes changed the audio mixer 
757
 
setting.
758
 
 
759
 
<P> BUG FIX: sending "floats" to inlets expecting lists now works correctly.
760
 
 
761
 
<P> BUG FIX: "route" on symbols now deals better with symbols, floats and lists.
762
 
 
763
 
<BR> <BR> 
764
 
------------------- 0.27 -----------------
765
 
<P>
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.
769
 
 
770
 
<P>
771
 
New objects written: change, max, max~, min, min~, and swap.
772
 
 
773
 
<P>
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.
776
 
 
777
 
<P>
778
 
Five or six bug fixes.
779
 
 
780
 
<P>
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.
785
 
 
786
 
<P>
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.
790
 
 
791
 
<BR> <BR> 
792
 
------------------- 0.26 -----------------
793
 
<P>
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
798
 
run faster.
799
 
 
800
 
<P>
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.
804
 
 
805
 
<P>
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".
808
 
 
809
 
<P>
810
 
When reading a sample using tabread4~, you can switch between sample tables
811
 
using the "set" message.
812
 
 
813
 
<P>
814
 
A new "textfile" object is like qlist but more flexible.
815
 
 
816
 
<P>
817
 
Many help windows got updated (but at least a dozen more need work urgently).
818
 
 
819
 
<P>
820
 
A dsp_addv function was added to allow variable-length DSP calls (for writers
821
 
of tilde externs.)
822
 
 
823
 
<P>
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.
826
 
 
827
 
<P>
828
 
The dac~ object was fixed to clip its output when out of    range (before it
829
 
wrapped around.)
830
 
 
831
 
<P>
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.
837
 
 
838
 
<P>
839
 
Signal division checks for divide by zero.
840
 
 
841
 
<P>
842
 
A "Font bomb" feature is provided for resizing fonts and stretching and
843
 
contracting patches to fit.
844
 
 
845
 
<P>
846
 
Pds now bind themselves to the symbol pd-&lt;window-name).
847
 
 
848
 
<P>
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.)
854
 
 
855
 
<P>
856
 
The Pd commend line can take multiple "open" arguments.
857
 
 
858
 
<P>
859
 
The file search path feature was fixed amd generalized.
860
 
 
861
 
<P>
862
 
Alt-clicking a table gives you a dialog to set its x and y range and pixel
863
 
size.
864
 
 
865
 
<BR> <BR> 
866
 
------------------- 0.25 -----------------
867
 
<P>
868
 
Lots of minor, under-the-hood improvements and bug fixes...
869
 
<P>
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.
872
 
<P>
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.)
875
 
<P>
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...
879
 
<P>
880
 
The "text" window got new accelerators and a bigger font size
881
 
<P>
882
 
there are 3 "tool" patches in 7.stuff: filtering, pvoc, ring mod.
883
 
<P>
884
 
In NT, command-line backslashes are converted to forward slashes.
885
 
<P>
886
 
There's a load measurement tool in the "help" menu.
887
 
<P>
888
 
The SGI version contains an n32 binary (look at the "bin" directory).
889
 
 
890
 
<BR> <BR> 
891
 
------------------- 0.24 ---------------
892
 
<P>
893
 
new objects:
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
900
 
<P>
901
 
Bug fixes:
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
909
 
    other messages 
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
914
 
<P>
915
 
 
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.
918
 
<P>
919
 
 
920
 
Guenter Geiger has contributed a Max-style "table" object which 
921
 
creates an "array" object in a subwindow.
922
 
<P>
923
 
 
924
 
Guenter has also put in a "search path" feature for externs, abstractions,
925
 
etc.
926
 
<P>
927
 
 
928
 
The Help menu got reworked.
929
 
<P>
930
 
 
931
 
Select and Route were extended to work Zack-style with symbols.
932
 
<P>
933
 
 
934
 
"random" takes seeds now (see the "help" window)
935
 
<P>
936
 
 
937
 
Some more work on graphical lists; you can see the current state in
938
 
../7.stuff/data-structures.  It's still nascent.
939
 
 
940
 
------------------- 0.23 -------------------
941
 
<P>
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.
945
 
<P>
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
950
 
<P>
951
 
more bug fixes:
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
963
 
<P>
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.
967
 
 
968
 
<BR> <BR> 
969
 
------------------- 0.22 -------------------
970
 
<BR> 
971
 
bug fixes
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
983
 
<BR> 
984
 
<BR> 
985
 
 
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.
994
 
<BR> <BR> 
995
 
 
996
 
------------------- 0.21 -------------------
997
 
 
998
 
<P>
999
 
bug fixes:
1000
 
 
1001
 
<P>
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.
1004
 
 
1005
 
<P>
1006
 
deselect all when locking.  When you lock a patch the selection is cleared.
1007
 
 
1008
 
<P>
1009
 
unlock when pasting.  .. and if you paste into a petch, it's unlocked.
1010
 
 
1011
 
<P>
1012
 
 
1013
 
lost keyboard events.  Version 0.20 lost keyboard events and
1014
 
forgot window size changes.  This should now be fixed.
1015
 
 
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)
1021
 
 
1022
 
<P>
1023
 
new features:
1024
 
 
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.
1029
 
 
1030
 
<BR> <BR> 
1031
 
------------------- 0.20 -------------------
1032
 
 
1033
 
<P>
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.
1036
 
 
1037
 
<P>
1038
 
Also, the array_write routine was fixed.
1039
 
 
1040
 
<BR> <BR> 
1041
 
------------------- 0.19 -------------------
1042
 
 
1043
 
<BR>
1044
 
notable new objects:
1045
 
 
1046
 
<BR>
1047
 
- vcf~, a bandpass filter with a signal input for center frequency.
1048
 
<BR>
1049
 
- delread, delwrite, vd, as in ISPW Max.
1050
 
<BR>
1051
 
- various math and midi stuff
1052
 
<BR>
1053
 
- catch~, throw~, send~, receive~ for nonlocal signal connections
1054
 
<P>
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 &lt;file&gt;", "write &lt;file&gt;", "resize &lt;N&gt;", 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.
1062
 
<P>
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.
1067
 
<P>
1068
 
Number boxes drag in integer increments, or in hundredths if you hold the
1069
 
"shift" key down when you click.
1070
 
<P>
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.
1076
 
<P>
1077
 
The abbreviations "t," "f," and "i" stand for "trigger,", "float", and "int."
1078
 
<P>
1079
 
Inlets and outlets of subpatches are now sorted correctly; although there is
1080
 
still a problem deleting inlets/outlets which have connections.
1081
 
<P>
1082
 
The size and screen location of Pd documents is saved correctly.
1083
 
<P>
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~.
1086
 
<P>
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...
1095
 
<P>
1096
 
The list of classes is now:
1097
 
<P>
1098
 
 
1099
 
GENERAL:
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
1103
 
<P>
1104
 
 
1105
 
MATH:
1106
 
+ - * / == != > < >= <= & && | || %
1107
 
mod div sin cos tan atan atan2 sqrt log exp abs
1108
 
mtof ftom powtodb rmstodb dbtopow dbtorms 
1109
 
<P>
1110
 
 
1111
 
MIDI:
1112
 
notein ctlin pgmin bendin touchin polytouchin noteout ctlout pgmout bendout
1113
 
touchout polytouchout
1114
 
<P>
1115
 
 
1116
 
SIGNAL:
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~
1120
 
 
1121
 
<BR> <BR> 
1122
 
------------------- 0.18 -------------------
1123
 
 
1124
 
<BR>
1125
 
Release notes now descrie the three platforms Pd runs on: IRIX and
1126
 
NT (maintained at UCSD) and LINUX, maintained by Guenter Geiger.
1127
 
 
1128
 
<P>
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.)
1131
 
 
1132
 
<P>
1133
 
Got rid of "dll" error printout when loading abstractions
1134
 
 
1135
 
<BR> <BR> 
1136
 
------------------- 0.12 - 0.17 -------------------
1137
 
 
1138
 
<BR>
1139
 
got Pd running under NT, although driver problems remain.  Gem is also
1140
 
distributed for both platforms.
1141
 
 
1142
 
<BR> <BR> 
1143
 
------------------- 0.11  -------------------
1144
 
 
1145
 
<BR>
1146
 
Here's a list of all the objects in this release:
1147
 
 
1148
 
<BR>
1149
 
general: print int float send receive select pack unpack trigger spigot
1150
 
<BR>
1151
 
time handling: delay metro line timer
1152
 
<BR>
1153
 
arithmetic: + + - - * * / / == == != != > > < < >= >= <= <= & && | || %
1154
 
<BR>
1155
 
midi: notein noteout makenote stripnote
1156
 
<BR>
1157
 
other: random get
1158
 
<BR>
1159
 
signals: dac~ adc~ sig~ line~ snapshot~ +~ *~
1160
 
<BR>
1161
 
signal oscillators: phasor~ cos~
1162
 
<BR>
1163
 
signal filters: env~ hip~
1164
 
<BR>
1165
 
signal debugging : print~ scope~
1166
 
<BR>
1167
 
<BR>
1168
 
 
1169
 
"spigot" replaces "gate" but has the inputs reversed.
1170
 
 
1171
 
<BR> <BR> 
1172
 
------------------- 0.10  -------------------
1173
 
<BR>
1174
 
 
1175
 
Many bug fixes.  This was the first pre-release to be put on the FTP site.
1176
 
 
1177
 
<BR> <BR> 
1178
 
------------------- 0.09  -------------------
1179
 
 
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
1185
 
 
1186
 
<BR> <BR> 
1187
 
------------------- 0.08  -------------------
1188
 
 
1189
 
<BR> metro bug
1190
 
<BR> scrollbars
1191
 
<BR> scheduler bug
1192
 
<BR> text box wraparound at 80 chars.
1193
 
<BR> fixed boxes to reconnect on retype
1194
 
 
1195
 
<BR> <BR> 
1196
 
------------------- 0.07  -------------------
1197
 
 
1198
 
<BR>
1199
 
- made an adc~ object
1200
 
 
1201
 
<BR> <BR> 
1202
 
------------------- 0.06 -------------------
1203
 
 
1204
 
<BR>
1205
 
- fixed two bugs in DSP sorting
1206
 
<BR>
1207
 
- added DSP on/off gui
1208
 
<BR>
1209
 
- added lock/unlock and changed the cursor behavior
1210
 
<BR>
1211
 
- fixed -font flag to set font pointsize
1212
 
 
1213
 
<BR> <BR>
1214
 
------------------- 0.05 -------------------
1215
 
<P>
1216
 
- added scope~, which is just a stopgap until real sound editing comes up.
1217
 
<BR>
1218
 
- improved the open panel slightly.
1219
 
<BR>
1220
 
- added atoms (int only).
1221
 
<BR>
1222
 
- reworked text editing to reside in Pd, not Pd-gui.
1223
 
<BR>
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.
1226
 
 
1227
 
<BR> <BR>
1228
 
------------------- 0.04 -------------------
1229
 
<P>
1230
 
fixed "cut" which crashed 0.03 if DSP was running.
1231
 
added clip~, print~, line~, snapshot~.
1232
 
 
1233
 
 
1234
 
<BR> <BR>
1235
 
------------------- 0.03 -------------------
1236
 
<P>
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
1239
 
are allowed.
1240
 
 
1241
 
<BR> <BR>
1242
 
------------------- 0.02 -------------------
1243
 
<P>
1244
 
A DSP network mechanism has been added.  DSP objects are:
1245
 
sig~, +~, *~, phasor~, cos~.
1246
 
<P>
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.
1250
 
 
1251
 
<BR> <BR>
1252
 
 
1253
 
------------------- 0.01. -------------------
1254
 
<P>
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.
1259
 
<P>
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.
1264
 
<P>
1265
 
The following max-like objects are included:
1266
 
 
1267
 
    print;
1268
 
    +, *, -, /, ==, !=, >, <, >=, <=, &, |, &&, ||, %;
1269
 
    int, float, pack, unpack, trigger;
1270
 
    delay, metro, timer;
1271
 
    send, receive.
1272
 
<P> -----------------------------------------
1273
 
 
1274
 
<H3> <A name="s2"> 5.2. known bugs </A> </H3>
1275
 
 
1276
 
<P> In the list below, starred items are still things needing attention...
1277
 
 
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.
1280
 
 
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.
1283
 
 
1284
 
<P> 3. PD dies if your patch has an infinite loop [fixed in 0.30 release.]
1285
 
 
1286
 
<P> *4. If you cut a box which is a "Pd" or abstraction whose subpatch has
1287
 
items selected, Pd dies.
1288
 
 
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.)
1292
 
 
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.]
1295
 
 
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]
1299
 
 
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.]
1302
 
 
1303
 
<P> 9. Typing backslashes into objects upsets Tk [0.29 should suppress all
1304
 
backslashes; a real fix might come later.]
1305
 
 
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]
1308
 
 
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.
1311
 
 
1312
 
<P> *12.  In Linux, if you hit control C while Pd is opening MIDI, Pd hangs.
1313
 
 
1314
 
<P> *13.  In linux, Pd doesn't report audio data-late errors yet.
1315
 
 
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.
1321
 
 
1322
 
<H3> <A name="s3"> 5.3. differences from Max/MSP </A> </H3>
1323
 
 
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
1328
 
two interoperable.
1329
 
 
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.
1334
 
 
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.
1338
 
 
1339
 
<P> There are, however, differences in semantics you'll want to know about;
1340
 
a partial list follows.
1341
 
 
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>
1350
 
 
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.
1354
 
 
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.
1359
 
 
1360
 
<P> In Pd, inlets and outlets are ordinary text objects; in Max/MSP they're
1361
 
"gui" objects from the palette.
1362
 
 
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.
1368
 
 
1369
 
<P> In Pd, there's no "gate"; instead it's "spigot" with the inlets in the
1370
 
opposite, more natural order.
1371
 
 
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
1374
 
well.
1375
 
 
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.
1383
 
 
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. 
1387
 
 
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~".
1392
 
 
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.
1395
 
 
1396
 
</BODY>
1397
 
</HTML>