Pd Documentation chapter 5. release notes

back to table of contents


------------------- 0.01. -------------------

This first release serves mostly to test the "release" mechanism. A Pd "canvas" object is provided which does both graphing and patch editing. The editing features apply only to the Max-like part; the graphs have to be edited into a Pd file via text editor.

Four menu items (in the "put" menu) create the four kinds of "patchable" objects; they can be dragged and connected as in Max; to break a connection, just click on it (the cursor becomes a turkey to indicate this.) Cut, paste, and duplicate seem to work, and a "Pd" class offers subwindows.

The following max-like objects are included: print; +, *, -, /, ==, !=, >, <, >=, <=, &, |, &&, ||, %; int, float, pack, unpack, trigger; delay, metro, timer; send, receive.

------------------- 0.02 -------------------

A DSP network mechanism has been added. DSP objects are: sig~, +~, *~, phasor~, cos~.

Loading of externs is provided (although there is no search path mechanism so the extern has to be in the patch's current directory.) Look in pd/externs for an example.

------------------- 0.03 -------------------

"pd dsp 1", "pd dsp 0" messages added. If you edit a patch with DSP on, PD resorts the DSP network as needed. Unconnected and multiple signal inlets are allowed.

------------------- 0.04 -------------------

fixed "cut" which crashed 0.03 if DSP was running. added clip~, print~, line~, snapshot~.

------------------- 0.05 -------------------

- added scope~, which is just a stopgap until real sound editing comes up.
- improved the open panel slightly.
- added atoms (int only).
- reworked text editing to reside in Pd, not Pd-gui.
- included a dbx-debuggable Pd in the distribution. I haven't yet figured out how to get dbx to work with externs though.

------------------- 0.06 -------------------
- fixed two bugs in DSP sorting
- added DSP on/off gui
- added lock/unlock and changed the cursor behavior
- fixed -font flag to set font pointsize

------------------- 0.07 -------------------
- made an adc~ object

------------------- 0.08 -------------------
metro bug
scrollbars
scheduler bug
text box wraparound at 80 chars.
fixed boxes to reconnect on retype

------------------- 0.09 -------------------
set up the "Help" menu
Bug in DSP sorting fixed
"Notein" and "noteout" objects
Comments from the Put menu say "comment" (they were invisible before)
The scheduler deals better when sound I/O malfunctions

------------------- 0.10 -------------------
Many bug fixes. This was the first pre-release to be put on the FTP site.

------------------- 0.11 -------------------
Here's a list of all the objects in this release:
general: print int float send receive select pack unpack trigger spigot
time handling: delay metro line timer
arithmetic: + + - - * * / / == == != != > > < < >= >= <= <= & && | || %
midi: notein noteout makenote stripnote
other: random get
signals: dac~ adc~ sig~ line~ snapshot~ +~ *~
signal oscillators: phasor~ cos~
signal filters: env~ hip~
signal debugging : print~ scope~

"spigot" replaces "gate" but has the inputs reversed.

------------------- 0.12 - 0.17 -------------------
got Pd running under NT, although driver problems remain. Gem is also distributed for both platforms.

------------------- 0.18 -------------------
Release notes now descrie the three platforms Pd runs on: IRIX and NT (maintained at UCSD) and LINUX, maintained by Guenter Geiger.

menu "close" on a dirty document now checks if you really want to close without saving (although "quit" will still exit Pd without verification.)

Got rid of "dll" error printout when loading abstractions

------------------- 0.19 -------------------
notable new objects:
- vcf~, a bandpass filter with a signal input for center frequency.
- delread, delwrite, vd, as in ISPW Max.
- various math and midi stuff
- catch~, throw~, send~, receive~ for nonlocal signal connections

- an experimental facility for array of floats is included. You can make a new array (from the "put" menu) which will be given a name such as "array1". You can then send it "read ", "write ", "resize ", and "print" messages. File reading and writing is in ascii. "resize" changes the size of the array, and "print" prints its vital signs. You can then use "tabread4~" to do a 4-point interpolating table lookup, and tabwrite~ to write audio samples into the table.

Numbers now default to floating point, although certain objects like "spigot" and "metro" still convert their boolean inputs to integers so that 0.5 is "false." This behavior will probably change later. The "div" and "mod" objects are introduced for explicit integer division and remainder.

Number boxes drag in integer increments, or in hundredths if you hold the "shift" key down when you click.

Pd documents now save their font sizes. The font size is global to an entire document. New documents come up in the font size Pd was started in (using the "-font" flag.) If you want to change the font size of an existing document, use a text editor; the font size is the last argument on the first line. 8, 10, 12, 14, 16, 18, and 24 are supported.

The abbreviations "t," "f," and "i" stand for "trigger,", "float", and "int."

Inlets and outlets of subpatches are now sorted correctly; although there is still a problem deleting inlets/outlets which have connections.

The size and screen location of Pd documents is saved correctly.

Tilde objects now work in "subpages" although there is no way to send signals through their inlets and outlets; use throw~/catch~ or send~/receive~.

On NT, the default is to open both audio output and input (this used not to work.) The situation is still shaky; audio seems to hang up sporadically on my machine; but I seem to have installed my audio driver wrong anyway. I had to set a huge output FIFO (1/3 sec or so!) to get it to work at all. You can type "pd -dac", "pd -adc", or "pd -nosound" to get output only, input only, or no audio at all. NT's MIDI input and output are supported, but on my machine MIDI output is flaky. I'm curious how all this will work on other machines...

The list of classes is now:

GENERAL: field inlet outlet print int float send receive select route pack unpack trigger spigot moses delay metro line timer makenote stripnote random loadbang serial get netsend netreceive

MATH: + - * / == != > < >= <= & && | || % mod div sin cos tan atan atan2 sqrt log exp abs mtof ftom powtodb rmstodb dbtopow dbtorms

MIDI: notein ctlin pgmin bendin touchin polytouchin noteout ctlout pgmout bendout touchout polytouchout

SIGNAL: dac~ adc~ sig~ line~ snapshot~ +~ -~ *~ /~ phasor~ cos~ vcf~ noise~ env~ hip~ lop~ bp~ biquad~ samphold~ clip~ rsqrt~ sqrt~ wrap~ print~ scope~ tabwrite~ tabread4~ send~ receive~ catch~ throw~ delwrite~ delread~ vd~

------------------- 0.20 -------------------

In NT, the 0.19 release turned out not to contain all the files needed to make TCL run. This problem should now be fixed.

Also, the array_write routine was fixed.

------------------- 0.21 -------------------

bug fixes:

table size change with DSP on: It used to crash Pd to resize an array when DSP was turned on. This is now fixed.

deselect all when locking. When you lock a patch the selection is cleared.

unlock when pasting. .. and if you paste into a petch, it's unlocked.

lost keyboard events. Version 0.20 lost keyboard events and forgot window size changes. This should now be fixed.
subpatches came up in wrong font size
dirty flag on window title bar fixed
improvement to netreceive suggested by Mark Danks
style notes fleshed out as suggested by Larry Troxler
fixed Bill Kleinsasser's bug (short and long array in same graph)

new features:
phase setting for phasor~
fft objects. Also, block~, for specifying block sizes and overlaps for FFTs.
canvas_makefilename() (used, e.g., by array_read and write)
"stuff" directory with examples of real Pd applications.

------------------- 0.22 -------------------
bug fixes
- parsing 1e+006 gave symbol (now float)
- "." parsed as number, should be symbol
- change GUI polling loop to TK event dispatch (unix only)
- improved "tidy up" feature
- size check added to text boxes (used to crash; still not correct.)
- occasional bug sending text with CRs to tk
- binop startup bug
- key accelerators for creators wrong
- ftom range to 1500
- bug in pack, unpack
- windows restore bigger than saved

Nt-specific bug fixes:
- getsockopt for netreceive fails. Just omitted it for NT.
- put tcl dlls in tcl bin, not pd bin
--- archive tcl subsystem for easier version updates
--- fix README accordingly
- deal with bell sound
- turn on optimization
- looked for audio timeout bug but couldn't find it.

------------------- 0.23 -------------------

A first cut at the "pure data" feature is now included. See section 6 of the documentation for a quick introduction to it; see also patches 12 and 14 in the FFT examples.

The documentation has been reorganized. The most interesting new features are:
- some new "tutorial" patches
- 15 "fft" examples
- improved help navigation

more bug fixes:
- titles on abstractions no longer saved inside file
- left-to-right sorting of inlets/outlets now seems to work
- nt audio setup got confused when driver couldn't do full duplex
- opening window with audio on is now fixed
- deleting inlets/outlets deletes connections first (used to crash)
- 1e20 parsed correctly now
- osc1~ fixed and optimized
- resizing arrays with DSP on used to crash; now fixed
- pasting now adds to the end of the list (used to add to beginning)
- clicking now selects the most recent object when two or more overlap
- Pd's "open" and "help" dialogs now maintain separate paths

The phasor~ object's "float" method has been REMOVED -- use the right-hand inlet to set the internal phase. This is so that I can later fix all tilde objects to convert messages to signals automatically at all signal inputs.

------------------- 0.24 ---------------

new objects:
- bang - convert any message to a "bang"
- qlist - message sequencer
- textfile - file to message converter
- makefilename - format a name with a variable field
- openpanel - "Open" dialog
- savepanel - "Save as" dialog

Bug fixes:
- Fixed a bug in "const" message to arrays
- "exp" was broken on NT, now fixed
- phase vocoder example improved
- "read" message to arrays now zero out unread samples
- bug fix in "key" object
- bug fix in ifft~ (thanks to Peter Lunden)
- "print" object fixed to distinguish between lists starting with symbols and other messages
- polygon, curve, fpolygon, fcurve renamed to fix name clash with Gem
- improved "new object" placement on screen
- fixed help dialog to remember previous directory (thanks to Harry Castle)
- heterogeneous lists

Arrays can be written to and read from text files or from 16-bit binary files. See ../2.starter/2G for an overview.

Guenter Geiger has contributed a Max-style "table" object which creates an "array" object in a subwindow.

Guenter has also put in a "search path" feature for externs, abstractions, etc.

The Help menu got reworked.

Select and Route were extended to work Zack-style with symbols.

"random" takes seeds now (see the "help" window)

Some more work on graphical lists; you can see the current state in ../7.stuff/data-structures. It's still nascent.

------------------- 0.25 -----------------

Lots of minor, under-the-hood improvements and bug fixes...

The Netsend/netreceive objects were improved; you can now choose between UDP and TCP and there's an outlet to tell you whether they're connected.

You can now alt click on an object to get its help window (and the help windows got a fair amount of work.)

multichannel audio I/O -- you can get up to 8 audio cnahhelsin and out. On SGI this is sdone correctly; on NT it's done using sequential "stereo" devices. I'm not sure of the status of multichannel in linux...

The "text" window got new accelerators and a bigger font size

there are 3 "tool" patches in 7.stuff: filtering, pvoc, ring mod.

In NT, command-line backslashes are converted to forward slashes.

There's a load measurement tool in the "help" menu.

The SGI version contains an n32 binary (look at the "bin" directory).

------------------- 0.26 -----------------

5.2. known bugs

1. Timing of MIDI input/output is very shaky. Audio is problematic too; there is no checking to see whether AUDIO got in and out on time; if Pd falls behind, you'll hear a characteristic dirty sound.

2. There is no flow control for graphical updates yet; the real-time process can easily block trying to write too fast to the GUI.

3. PD dies if your patch has an infinite loop.

4. If you cut a box which is a "Pd" or abstraction whose subpatch has items selected, Pd dies.