From 8dbec761cf858ea65900c8a094599857208d8c3a Mon Sep 17 00:00:00 2001 From: "N.N." Date: Tue, 5 Jan 2010 22:49:36 +0000 Subject: svn path=/trunk/; revision=12907 --- desiredata/doc/1.manual/x5.htm | 1568 ---------------------------------------- 1 file changed, 1568 deletions(-) delete mode 100644 desiredata/doc/1.manual/x5.htm (limited to 'desiredata/doc/1.manual/x5.htm') diff --git a/desiredata/doc/1.manual/x5.htm b/desiredata/doc/1.manual/x5.htm deleted file mode 100644 index 7aec1cf9..00000000 --- a/desiredata/doc/1.manual/x5.htm +++ /dev/null @@ -1,1568 +0,0 @@ - - - - - Pd Documentation 5 - - - - - - -

Pd Documentation chapter 5. current status

- -

- back to table of contents -

-

- -

This section tracks changes in Pd's current implementation.

- -

5.1. release notes

- -

------------------ 0.39.2 -------------------------- - -

Bug fixes: memory leak in OSX version; problem printing numbers as symbols. - -

------------------ 0.39.1 -------------------------- - -

Bug fixes: compatibility problems with older version of TK - -

------------------ 0.39.0 -------------------------- - -

At the source level, "regular" arrays and arrays within data structures are -now the same thing. This will mean that, in the future, features introduced to -one array type will become available on the other one too. Array elements are -"scalars" (i.e., data structures) and if they have drawing instructions, each -point of the array is drawn according to them; they can be clicked on, etc., -just like any other scalars. "Regular" arrays have points which are of a -special, built-in template, "float". - -

Drawing instructions now can use variable ranges for screen coordinates; -for instance, specifying an offset of "a(0:10)(100:200)(0.2)" specifies that -the member "a", which shoudl range from 0 to 10, should be graphed at locations -ranging from 100 to 200 (relative to the scalar's base location) and should -have a "grain" of 0.2, i.e., steps of 2 pixels each. - -

Drawing instructions can be turned on and off, either globally -(for all data of the given structure) or by a data field. - -

The "struct" object has an outlet to notify you when a datum is selected or -deselected. - -

Graph-on-parent subpatches and abstractions no longer scale the GUI objects -to fit the parent rectangle; instead you get a sub-rectangle in the subpatch, -of the same size as the parent object, to place GUI objects in. GUI objects -that don't fit inside aren't shown on the parent, and the parent objects no -longer stretches itself to show things that wouldn't otherwise fit. Older -patches work as before until you try to edit them - at which point you have -no choice but to use the new functionality. - -

The font size of a Graph-on-parent abstraction is that of the abstraction -itself, not the calling patch. - -

Message boxes now take "addcomma" and similar messages. - -

A "list" object is provided for joining and splitting lists, and converting -between lists and non-list messages. - -

Pd extension is now added automatically to files on Macintish when you -do a "save as". The tcl/tk version is updated to 8.4.5. This should run on -OSX version 10.2 and later. Also on Mac, drag-and-drop startups read -"libraries" (specified in "startup" dialog) before opening the file. - -

The "pointer" object has a method to rewind to the beginning of a list. -A "sendwindow" message forwards any message to the window contining the -scalar currently pointed to. - -

Abstractions don't produce visible windows, even if subwindows of the -abstraction were visible when the abstraction was saved. - -

MIDI sysex messages should now work on all platforms. - -

Bug fixes: - -

sending lists to arrays now correctly interprets the first number of the -list as the starting index (following values are then stored seuentially in the -array.) - -

The rfft~ object's imaginary part had the wrong sign. Also, the Nyquist -bin is now supplied correctly. - -

Fixed problems writing aiff files using the writesf~ and soundfiler objects. -Writesf, if sent an "open" while a file was previously being written, closes the -previous file first. - -

Bug fix in number2 which sometimes crashed Pd. - -

Stale-pointer protection made more robust. - -

Some of Pd's tcl/tk error messages have been tracked down, but probably -not all of them yet. - -

"Find" crashed Pd when the found object was in a GOP. - -

Mouse motion over arrays no longer is quite so CPU-consuming (but is -still somewhat so.) - -

samplerate~ now reflects up/downsampling. - -

Tilde objects in blocked, overlapped subpatches no longer adjust their -internal sample rate to reflect the overlap. - -

Fixed a thread-safety problem in sys_microsleep(). - - -

------------------ 0.38.1 -------------------------- - -Fixed two bugs that crashed Pd when deleting number boxes in certain -situations. - -

------------------ 0.38.0 -------------------------- - -

The big change is queued graphics updates, which apply (so far) -to tables and number/symbol boxes. The IEM GUIS aren't enqueued yet. -This along with a better graphics update buffering scheme makes Pd's -graphics run much better. - -

Support for cutting/copying/pasting text between boxes and between Pd and -other applications. - -

Dialogs for setting and saving path, libs-to-load-on-startup, and some -other things. This and the audio settings can be saved automatically to -the appropriate repository (.pdsettings on linux; registry on MS windows; -"Preferences" on Mac.) - -

"Print" printout goes to the Pd window by default. You can revert to -the old (standard error) behavior with the "-stderr" startup flag. - -

The "gui" TK script can now start Pd up (previously Pd had to be -started first.) This is needed for Pd to work as an "App" on Mac. - -

new filter objects: cpole~, fpole~, etc... these will get used in the -upcoming Techniques chapter 8. - -

Objects whose creation failed get a distinctive outline; if they are -already inside a patch they sprout inlets and outlets as necessary to -preserve connections. - -

Filenames in the "search path", etc., now may contain spaces, commas, -and semicolons. - -

bug fix: click on minaturized subpatch failed to "vis" it - -

bug fix: font size change crash reported by CK - -

Key bindings like control-Q now work even from within most dialogs. - -

The audio settings dialog now permits turning audio input and/or output -off without forgetting how many channels it should be when on. - -

RME Hammerfall ALSA support from Winfried -- but specify the number of -channels correctly or else Pd crashes. - -

portaudio (e.g., Mac) audio support fixed for inchans != outchans, -so the emi emagic can now be used 2-in. 6-out, for example. - -

(linux) The configure script can set the setuid flag on "make install". -The "-enable" flags to ./configure should now work correctly too. - -

atan2 had its inlets switched to conform to standard usage - -

------------------ 0.37.3 -------------------------- - -

Oops- added __i386__ macro to windows makefile so it would test for -underflows correctly. This affects only Microsoft Windows; the other -two platformas are fine as 0.37.2. Thanks to Thomas Musil... - -

------------------ 0.37.2 -------------------------- - -

fixed a bug in soundfile reading (soundfiles now default to wav better.) - -

fixed gfx update problem in hradio and vradio - -

minor changes to built-in Max import feature (but you should -still use cyclone's instead.) - -

colors for scalars fixed (probably never worked before!) - -

added a "set" message to the line object - -

aliased spaces to underscores in GUI labels so that at least they won't -destroy the object. - -

------------------ 0.37.1 -------------------------- - -

fixed the apple key on OSX so it does key accelerators - -

fixed bug in -inchannels/-outchannels arg parsing - -

major editions to the IEM GUIs to fix bugs in how "$" variables are handled. -The code still isn't pretty but hopefully at least works now. - -

bug fix in vd~ for very small delays - -

fixed MSW version not to make windows grow by 2 pixels on save/restore - -

added an "nrt" flag for OSX to defeat real-time priritization -(useful when runnig Gem.) - -

on some platforms, audio open failures are handled more gracefully. - -

added a "changelog" file in the source directory to document source-level -changes. - -

------------------ 0.37 -------------------------- - -

Pd is finally fixed so that it can open and close audio and MIDI devices -on-the-fly (previously it opened them once at startup and hogged them until -Pd quit). Starting DSP causes audio devices to be opened, and -stopping it closes them. -There are dialog panels in the "Media" menu (which used to be called -"Audio") for choosing audio and MIDI settings. The "path" also can be changed -on the fly via a dialog in the "File" menu. - -

A "vline" object acts like "line" but to sub-sample accuracy. See -the audio example, C04.control.to.signal.pd (and/or chapter 3 of - Theory and Techniques of Electronic Music ). - -

The block~/switch~ object now takes a "set" message to dynamically change -block size, etc. - -

The makefilename object takes a "set" message to set the "pattern". You -can use this to kludge multiple substitutions (as shown in the help file). - -

The writesf~ object got an update and a better help window. It now should -be able to write 32bit floating-point WAV soundfiles. The file's sample rate -is now set "correctly". - -

Various improvements were made in audio I/O to improve stability and -reduce latency. - -

Jack support should work for Mac OSX (it appears as a separate API). -Linux is offering experimental portaudio V19 support (but Mac and Window/ASIO -are still based on PA V18.) - -

The fiddle~ object (in extra) has an "npoints" method to set the analysis -window size dynamically. - -

(windows) Pd is now distributed as a self-extracting archive. - -

(windows) url files in the help directories are opened correctly. - -

(Mac) the arrow keys should now be fixed. - -

(linux) The "configure" script should be better at finding TK in various -distributions (debian users previously had to use a special configure script.) - -

(developers) Pd now exits cleanly from its main loop instead of bailing -out. A mutex protects Pd's data so it can be accessed from other threads. -(Thomas Grill's improvements.) - -

(developers) The "savefunction" and "dialog" widget behaviors -were replaced by a better mechanism (class_setsavefn() and -class_setpropertiesfn()). THey're declared in m_pd.h so you don't have to -include the (unstable) g_canvas.h to get them. - -

(developers) Better flag handling in the IEM GUIs (g_toggle.c, etc) should -compile with fewer warnings and be more portable. - - -

------------------ 0.37-test 1 -------------------------- - -

The MacOSX version now prioritizes itself effectively (thanks to -gert@test.at (v93r)) via Adam Lindsay). Adam has made a proper MacOSX -"package" for Pd; see -http://homepage.mac.com/atl/sw. - -

A bug was fixed in readsf~/writesf~ (things were coming out in the wrong -number of channels.) - -

A problem compiling Pd with TK8.4 (the latest version) was fixed. - -

Large numbers of GUI improvements by Adam Lindsay, especially relevant -to Mac OSX. - -

For externs, the binary may now be included in a subdirectory of the -same name (e.g., "choice/choice.pd_linux" and "choice\choice.dll"). So -now you can pack multiple binaries for the same extern, along with the -source, in one convenient place. (Note that -"expr~" is an exception, since it goes by three different names, so this -trick fails for that example.) - -

"Help" files renamed "help-xxx.pd", so that help files are now possible -for abstractions. The "help path" feature from CVS (I forgot who contributed -that) is also included but should now not be needed: Pd remembers where it got -externs and abstractions and looks back in the same directory for a help file. -See the way "extras" is organized. - -

Pd refuses to connect signal outlets to non-signal inlets. - -

When you save any patch, Pd looks for all invocations of that patch -as an abstraction and reloads them. This unfortunately has the side effect of -making all the containing windows visible, but it's better than nothing. - -

------------------ 0.36-1 ------------------------------- - -

"print" now queries you for a file to save the postscript to. - -

"expr" brought up to date (0.4) -- a bug was fixed involving expresions -like "max($f1, 100)" which had erroneously output an integer. - -

a bug fix in the 4-point interpolation formula, which affects tabosc4~, -tabread4~, tabread4, and vd~. These should have significantly lower -distortion than before. - -

bug fix: vradio, hradio "send symbol" feature didn't work - -

------------------ 0.36 ------------------------------- - -

There's now an "undo" for most editing operations. Undoing is only -available in the window that was most recently edited. (One gotcha remains, -that "stretching" (in the font menu) affects all windows and you can't undo any -but the last one it touched.) Also, there's no "undo" for run-time operations, -only editing ones. That might be worth thinking about. - -

Some bugs were fixed that affected "flipped" canvases (ones whose -"properties show a positive "y" increment per pixel.) Also, the coordinates -are now saved and restored correctly. "text" objects (comments) now stick to -the bottom of the window for flipped canvases. - -

Signal lines now show up fatter than control lines. (Now I have to go -through the figures in the HTML doc again... drat) - -

"Classic" number boxes now can have labels and send/receive signals, which -work in the same way as the IEMGUI controls do. I think "$1" style -label/send/receive names work too. I fixed a related bug -in the IEM code (typing at boxes sometimes crashed Pd). - -

"vdial" and "hdial" were renamed "vradio" and "hradio", and fixed to -output numbers, not lists, like the other GUIs. The old ones are still around -for compatibility with old patches. - -

"Make install" should now actually make Pd before trying to install it. - -

"expr" is updated to Shahrokh's 0.4test3 version (which I modified somewhat -to get it to compile.) - -

The problem of CPU usage skyrocketing on underflows in P4s should -be fixed. - -

Compiled "pdsend" and "pdreceive" for Windows. - -

"PD_VERSION" macro added to m_pd.h - -

------------------ 0.35 ------------------------------- - -

An experimental new feature called graph-on-parent allows subpatches and abstractions to show -GUI features; so, for instance, you can make an oscillator with a number box to -control the frequency. This is described in section 2.7.2 of the HTML -documentation and an example is shown in 7.stuff/synth1/. - -

Spaces are allowed in pathnames to Pd and to patches; however, the "path" -variable still can't have spaces. (You can address path directories using -relative pathnames as in "../sound" (or ..\sound on Windows), even if there -are spaces further "up" the path to the patch. See 3.7, "dealing with files." - -

The soundfile reading routine (used in readsf~ and soundfiler) is much -better at opening wav files with different header sizes and odd chunks. -You can now read floating-point "wav" files -- although you can't write them -yet. - -

Templates and data structures are extensively reworked. A "struct" -object replaces "template", so that you specify the name of the structure as -the first argument to "struct" (previously it was derived from the -window name.) You can now have multiple "structs" of the same name; the -oldest one is the "real" one, but if you delete that, the structures are -all conformed to the next-oldest one, and so on. You can alter the contents of -a "struct" and all the associated data will be modified to fit the new -structure definition. Data are persistent, i.e., saved with the containing -patch. You can copy and paste data between patches. If you save data to a file -explicitly, you can read it into another patch and the data are conformed -automatically to the new data structures. - -

A new version of Thomas Musil's GUI objects was merged in. - -

The testtone patch works for up to 6 channels of audio input and output. - -

Lots of improvements got made to audio I/O in general. In NT you may -specify "-asio" to use ASIO drivers; see HTML documentation section 3.2. -You may specify lists of audio input and output devices. In Linux, Pd -will now attempt to open each /dev/dsp* only once, even if it's requested -for reading and writing. - -

The "extra" directory is now searched after the directories in the -search path, not before (so now you can override objects like "fiddle~"). - -

A bug in paf~ is fixed. - -

In Linux, the ".pdrc" is now read before the command line arguments, so -that command line arguments override the .pdrc (it was backwards before.) - -

In Linux, "help" now can invoke either mozilla or netscape to start -up the HTML documentation. This doesn't work in Windows or Mac land yet. - -

In Linux, the "-32bit" flag was added, which you must now use if -running Guenter's OSS RME Hammerfall driver. (This was necessary because -OSS went and used the same "bit" for a different purpose, so that Pd tried -to open some other cards in 32bit mode inappropriately.) - -

In Linux, MIDI is now opened "-NODELAY" ... this makes the OSS Creative -driver take MIDI input correctly which it didn't before. - -

In MS windows, you can now use "readsf~/writesf~" for spooling sounds to -and from disk. - -

MS Windows bug fixes: -nosound was ignored, and now works. Also, clicking -to open abstractions, when they were already open anyway, used to lose the -keyboard; this should be fixed now. Finally, "netreceive" didn't work when -running "-nogui". This is fixed, and moreover, you should definitely include -a netreceive object in any -nogui patch in MSW, otherwise it eats up all -available CPU time gratuitously. - -

The outlet is removed from the "table" object. - -

In MS Windows, Pd now has "-resync" and "-noresync" flags so that you -can specify how to deal with audio input and output blocksize nonsense in -MMIO. If "resync" is on, whenever the audio input and output seem out -of whack the audio driver resynchronizes all input and output devices; -otherwise the situation is simply ignored. "Noresync" is probably best for -consumer stereo cards (and is the default if you're running only 2 channels in -and out). If you're running more than 2 channels in either direction, the -default is "resync". - -

In soundfiler's read method, if you specify "-maxsize", that implies -"-resize" (as it ought to.) - -

You can use $1-style names for arrays and tables. - -

Pd will now refuse to make duplicate connections between objects. - -

Pd is (somewhat shakily) running on Macintosh OS/X. See section 3.4 of -the HTML doc. For Macs with one-button mice, you can double-click in edit -mode to simulate a right click. Unfortunately, the "alt" key doesn't work -yet. - -

In Linux, ALSA audio is now fixed to clip, not wrap around, on output -overflows. - -

Various problems were fixed with objects changing size. Number boxes never -wrap to two lines (as they used to), and lines are reconnected appropriately -when objects are resized. - -

A function call is added to retrieve a unique event-dependent number, -so that objects like "buddy" can be written. - -

All the "sound" command-line flags now have "audio" equivalents. - -

The "-listdev" flag now works on Mac and MSW/ASIO. - -

Help file updates for env~, route, and pointer - -

------------------ 0.34.3 ------------------------------- - -

fixed a bug in "udp" netreceive that crashed pd - -

fixed a bug in tabosc4~ that caused gritty sound - -

changed "specfile" for RPM releases (thanks Fernando) - -

adopted Krzysztof's glob_setfilename bug fix - -

bug fixes from "the joy of global variables" thread in Pd list - -

made a help window for "table". - -

------------------ 0.34.2 ------------------------------- - -

fixed ".pdrc" bug - -

added an experimental "pd restart-audio" feature for (new) Alsa - -

------------------ 0.34.1 ------------------------------- - -

Bug fixes: - -

1. Closing a window with objects selected crashed Pd. - -

2. "find" when it opened a window to show the found object crashed Pd. - -

3. (Linux only) Oversized .pdrc files crashed pd... - -

Also, I updated Thomas Musil's IEM GUI objects and their help files. - - -

------------------ 0.34 ------------------------------- - -

NEW FEATURES: - -

I incorporated Thomas Musil's GUI objects (slider, button, etc.) into -the Pd release so Thomas won't have to publish patches to Pd anymore. I -didn't take the graphical inlets and outlets for reasons explained elsewhere, -but Thomas might decide to continue supplying them on a patch basis. - -

Many new examples were added to the "2.control" and especially -"3.audio" example patches. A list of differences between Max/MSP and Pd -now appears at the end of this section. - -

Finally, I fixed Pd to notice window iconification and suspend graphical -updates for iconified windows. - -

Numbering of versions of Pd will now be as in "0.34.2" instead of -"0.34PATCH2" which was confusing. - -

BUGS FIXED: - -

I incorporated Krzysztof Czaja's menuclose bug fix in g_canvas.c. - -

(Linux) the configure script is more rational. - -

the qlist and pack objects were fixed to handle reentrancy correctly. - -

Pd now complains about running out of memory (before it dies.) I intend -to provide advance warning and automatically back out of loading patches that -would run out of memory, but that's not in place yet. - -

Typing into a message box sometimes left you with lines from the output -pointing to the wrong location. Fixed. - -

Reading of "wav" and nextstep soundfiles now handles the headers better. - -

------------------ 0.33 ------------------------------- - -

AUDIO AND MIDI: - -

MIDI time jitter is reduced. Theoretically, it could now be -as low as the audio blocksize (and so if you care about MIDI timing, keep your -audio blocksize low.) If you run Pd with audio in stream mode or without -audio at all, and perhaps in some cases in block more too (?), -the controlling parameter for MIDI jitter is "-sleepgrain", which specifies -the interval of time Pd sleeps when it believes it's idle. - -

You can now specify multiple MIDI input and output devices. For example, -"pd -midiindev 3 -midioutdev 4,2" asks for the third MIDI input device and the -fourth and second MIDI output device. The "channel message" midi objects in Pd -such as notein or pgmout will take channels 1-16 to mean the first open MIDI -port, 17-32 the second one, and so on. The midiin, sysexin, midiout objects -give you a separate inlet to specify which of the open MIDI port numbers -you want. - -

(Linux only) By default, Pd now reads and write audio in "block mode." -Previously you have to specify "-frags" and/or "-fragsize" to get this. -As of this version you have to specify "-streammode" to get the opposite, -streaming mode. This mode seems only to work with a small number of sound -cards, notably Ensoniq ens1370 and ens1371. - -

(Linux only) Also, "-fragsize" is replaced with a more convenient -"-blocksize" which you specify in sample frames. It defaults to 64 which is -Pd's audio computation block size but may be larger or smaller. Typically you -would specify "-audiobuf" and "-blocksize" and Pd will compute "-frags" for -you; but you can also specify "-frags" explicitly. - -

(Linux only) OSS and ALSA audio support are improved. You can now talk to -RME9652 using Guenter's OSS driver; this is different from the "-RME" support -which uses Winfried's older driver. Other multichannel OSS drivers might now -work as well. Pd also seems to work with ALSA 0.9 Beta 4; I've tested this -with Midiman Delta 66 and Soundblaster live. I plan to update the linux audio -setup documentation accordingly. - -

NEW FEATURES: - -

I've put in Shahrokh's new expr, expr~, and fexpr~ objects. The latter -allows you to make expressions referring to prior input and output samples in -case you're interested in writing your own recursive filters, oscillators, -or chaotic sound generators... - -

In support of expr, you can now use commas in "object" boxes; they just -become symbols. - -

sqrt~ is fixed so that it apparently has 24-bit accurate mantissas. -It turned out to be easier to just make it accurate than to confront the -question of how a reduced-accuracy version should be named. - -

The bizarre framp~ object which does phase vocoder analysis got a help -window. The phase vocoder example doesn't use framp~ and I had forgotten -what it did until Guenter dug it back up. - -

(Linux only) I finally got around to incorporating Guenter's autoconf -stuff, and learned about RPM. Major new Linux releases will probably be -in .tar.gz and .rpm formats; "test" releases will probably just be in .tar.gz. -I also fixed it so that the installation prefix is overridden if you invoke -pd by its full pathname, so that you can still use compilations with -installation prefixes before you actually install them. - -

(NT only) I added support for directX using the portaudio package -by Ross Bencina and Phil Burk. I couldn't discover any way this would ever -outperform the old "multimedia" API Pd uses. So the release contains the sources, -but you have to recompile Pd to use directX. Use "makefile.nt.portaudio". Only -1 or 2 channels of audio are supported. The interesting thing is that the same -code will run on Macintosh. There are a couple of other obstacles to a -MacOS port of Pd though; it's hard to predict when this will be feasible. - -

BUG FIXES: - -

"drawnumber" was broken in 0.32 -- fixed. - -

new arrays in 0.32p6 got ill-fitting graphs -- fixed. - -

------------------ 0.32 PATCH 6 ------------------- - -

Got array and graph dialogs to behave better when there are more -than one. - -

put in mtof~, etc. - -

made Pd search the "extra" directory without having to specify it in "path." - -

bug fix in exporting patches to Max - -

------------------ 0.32 PATCH 5 ------------------- - -

Reversed the order of these release notes so that the newest appear first. - -

Arrays can save their content with containing patch; the properties -dialog selects this. The dialog shows up when you create a new array from -the menu, and allows you to set the name and size. Only floating point arrays -can be created and edited this way. - -

Bug fix: the figures in the NT web doc were garbage. - -

Bug fix: large tables (> 800 pixels and points) no longer crash the GUI. -A related problem remains; large arrays are truncated to either 1000 points -or 1000 pixels. - -

Bug fix: doing "save as" on an instantiated abstraction no longer sets -the window title. - -

in linux, a couple of status messages on opening /dev/dsp only appear now -if Pd is run "-verbose". - - -

-

------------------ 0.32 PATCH 2, 3, 4 ------------------- - -

Hassled more with font size differences between NT and Linux, and updated -many help files. Minor bug fixes here and there. - -

the table object now takes a second argument to set size in points. - -

Improved underflow protection in some DSP objects. - -

pointer now has a "vnext" traversal method which goes forward to the -next SELECTED object. - -

improvements to throw~ (it now sums) and receive~ fixed to be settable. - -

bug fix in which RME driver always thought sample rate was 44100. - -

-

------------------ 0.32 PATCH 1 ------------------- - -

bug fixes (bugs flagged by mik): vcf~ help window crashed; writesf~ -only wrote 1 channel soundfiles; "table" object didn't open when clicked -on; - -

new object: tabosc4~ -- finally, a real wavetable oscillator for Pd. - -

much work on "data" editing; go to 7.stuff/data-structures, open patches -5 and 7, and try clicking on things. Alt clicks delete or add points; regular -clicks drag values around. The cursor changes to show you what will happen -if you click. - -

-------------------- 0.32 ----------------- - -

New objects: - -

midiin, sysexin, midiout. (I don't think MIDI sysex is working -in Windows yet though.) - -

threshold~ as in Jmax, triggers from audio level. - -

value as in Max and Jmax. - -

writesf as in Jmax. - -

New startup flags: - -

-sleepgrain: if you aren't using audio I/O, this can reduce time jitter in -MIDI I/O. Otherwise, MIDI I/O jitter is limited by the audio buffer size. - -

-noloadbang: cancels loadbangs. - -

-nogui: suppress starting the GUI. You can then still talk to Pd using, -perhaps among other possibilities, the new network connection programs now -included in the release. - -

-guicmd: lets you specify the command string Pd calls to start the GUI, -in case you've written your own GUI to replace the TK one Pd comes with. - -

-send: after loading all the patches specified in the command line, -you can specify "startup" messages to send. For example, if you want to use -Pd just to play 50-channel soundfiles from a shell, this is how you can specify -the soundfile name on the command line. - -

bug fixes. - -

A readsf~ problem got fixed. - -

hitting the tab key used to cause Pd windows to relinquish the keyboard. - -

The $0 feature apperas now to work. - -

Inlets and outlets of subpatches sometimes got out of left-to-right order. - -

Scrollbars are less out of whack than they were before. - -

Pd now knows to de-iconify windows if you "vis" them from the parent. - -

in general: - -

In Linux the treatment of MIDI input is now much more efficient. Also, -bugs were fixed in notein and (for SGI) bendin. - -

You can "select all" from the Edit menu. - -

standalone programs "pd-send" and "pd-receive" are provided that can send -mesages to Pd or receive messages from Pd via the netsend~ and netreceive~ -objects. This should allow you to interface a wide variety of other programs -with Pd either on the same machine or over the network. Also you should be -able to hack the code into your own programs to make them interoperate with -Pd and/or each other. The underlying protocol is called FUDI. - -

"Properties" for scalars, graphs, and number boxes: left click on them. -In particular, number boxes can have fixed widths and finite ranges; if you -make them one character wide they act as toggles. Later you'll be able to -configure them as sliders. - -

As to scalars, the properties dialog lets you edit the data in the raw. -Don't try to edit the template though; you can't. - -

You can now type into a "pd" object to change its name without losing the -contents. - -

An experimental "scalar" _text_ object now allows abstractions to draw -primitive control panels on their parents when you invoke them, as if they were -Moog or Buchla modules. See the "7.stuff/data" examples. - -

New help windows for the "data" classes (pointer, append, template, etc.) -and for send/receive which somehow I had neglected. - -

When you hit "copy" with nothing selected, the copy buffer used to be -cleared. This is fixed to do nothing. - -

-------------------- 0.31 ----------------- - -

ALSA support in Linux has been completely overhauled. It now works with -Midiman (up to 10 in/12 out!) and es1370. There are problems with SBLive under -ALSA but it works in OSS emulation with a "-frags" setting. See the "getting -started" documentation. - -

In NT, the default is now "noresync" if you're running stereo. You can -override this with the "-resync" flag. If you're running more than 2 channels -it's the opposite (as it was before.) - -

"symbol" boxes now display symbols and let you type them in. - -

There was a bug when you renamed a patch from outside Pd; the old filename -still showed in the title bar (and there were other bad side effects.) FIxed. - -

Protection was added against patches opening themselves as abstractions. - -

The "route" object's handling of leading symbols was improved. I'm not -sure whether it's Max compatible or not. - -

You can draw into arrays with the mouse, at least in the case where there's -at least one pixel per point. (I'm not sure if the other case even makes -sense.) - -

Abstractions display their "$1", etc., arguments in the window title bar. - -

A "sort" method was added for lists to make them easier to use as -sequencers. - -

The "save as" dialog makes a more reasonable choice of start-up directory. - -

"Trigger i" is now disallowed (it used to crash Pd.) - -

Getbytes and resizebytes now zero out new memory. - -

A memory leak reported by Hannes has been partly, hopefully mostly, fixed. - -

The "signal_free 2" bug reported by Fogar is fixed. - -

New graphs now reliably avoid using already-taken "graph%d" names. - -

The old bug which showed up as ".xxxxxxxxx: no such object" is fixed. - -

The FFT examples have been reworked and the "pique" and "shift" objects -are moved to "extra". - -

-------------------- 0.30 ----------------- -

in Linux, you can get Pd to promote itself to "real time" priority. -A "watchdog" process protects you from having Pd lock your machine up. You -must request real time by running "pd -rt" or "pd -realtime". You must either -be superuser or make Pd a root-owned SETUID program (chown root .../pd/bin/pd; -chmod 4755 .../pd/bin/pd). For security reasons, Pd relinquishes root -privelige immediately after setting its priority, before loading -any patches or externs. - -

Protection was added against message loops. - -

loadbang was fixed so that loadbangs in abstractions go off before loadbangs -in the owner patch. Within each patch, loadbangs go off forst in subpatches. - -

new object: tabplay~, a non-imterpolating sample reader. - -

new objects (in "extra" library): loop~; rev1~. - -

The "toys" library was renamed "extra" and incorporated in the Pd release. - -

In Linux, timeouts were added to the driver opening and closing code -(which used to hang under some conditions.) - -

the "field" object was replaced by "template"; see "data.structures" -examples in 7.stuff. Data lists can be read from and written to files now. - -

You can invoke an external object by pathname, as in "../../extra/loop~". - -

hip~, etc. should no longer get stuck when they get a NAN on input. - -

a bug was fixed in expanding symbols such as "$1-foo". - -

-------------------- 0.29 ----------------- - -

readsf~ - a MAX/FTS style soundfile player, which reads multichannel -soundfiles in wave, aiff, or next formats. The files must be 16 or 24 bit -fixed point or 32 bit floating point (only nextstep headers understand the -latter.) You can also override the header. A "skip" flag lets you read -starting anywhere in the file. (Sorry: linux only for now; I can't find -Posix threads packages for the other platforms.) - -

soundfiler - support for reading and writing soundfiles (wave, aiff, -nextstep) to and from arrays. Multichannel soundfiles can be read into or -written from several arrays at once. When reading you can ask that the tables -be automatically resized; in any event the object obligingly outputs the number -of samples actually read. When writing you can specify a sub-segment of the -arrays, and/or request that the soundfile's maximum amplitude be normalized to -one. - -

tabplay~ - a non-interpolating sample player - -

Garry Kling reports having compiled Pd for "yellowdog" linux on Macintosh -computers. One "fix" has been made to s_linux.c to facilitate this. I don't -have access to a Mac running linux at the moment so I can't verify whether -any particular repease of mine actually works there. - -

Signal objects now automatically convert scalars to vectors, so that you -can just run a number box into a signal input. One caveat is that the binops -"+~", "-~", "*~", "/~", "max~", "min~" run slightly faster if you give them -an argument to tell them that their right inlet will be scalar; so the -construction "+~ 0" is still meaningful. This will get fixed at some later -date... - -

Font sizes work in what I hope will be a more machine-portable way. On -any machine, the point sizes 8, 10, 12, 14, 16, 24 are DEFINED to be the -largest fonts Pd can find that don't exceed their size on my linux machine. -This way I can write patches that everyone else can read, and others will -at least have fewer portability problems than before. The downside is that -your old patches may appear with a different type size than you want; use the -"font" menu item to fix them. - -

The OSS support no longer asks the audio driver whether full duplex -is needed; it just tries to open it. Apparently some drivers (such as -ALSA's OSS emulation) might do full duplex but not implement the call Pd -used to query for it. - -

You can give "-nomidi" as a flag (previously you had to type "-nomidiin --nomidiout".) - -

A GUI bug reported by Iain Mott was fixed. - -

You can now type symbols such as "$3-poodle" and the "$3" portion gets -expanded properly. Someone was also asking about the FTS-style #0 feature, -but I couldn't figure out how to reconcile it with Pd's usage of "$" for "#" -in abstractions. So I'm still searching for a good way to provide local -symbols. - -

the GUI now protects itself from "\", "{" and "}" characters by dropping -them. I wonder how many NT users have crashed Pd trying to type in filenames -with backslashes... - -

samphold_set and tabwrite_stop methods added. There turned out to be -no help window for samphold~ so one was supplied. - -

-------------------- 0.28 ----------------- - -

Version 0.28 has a primitive in-box text editor... about time! - -

the "front panel" now gives you information on audio levels and -sync errors. - -

Message boxes flash, sort of, when you click them. - -

-Support has been added for RME 9652 soundcards; see the Linux soundcard section of -the documentation. Support files for RME and PCI128 (Ensoniq es1370) cards -are released separately from Pd. - -

The delete and backspace keys clear the current selection. There is -unfortunately no "undo" though; I'm not sure this is a good thing to have -put in. - -

The "until" object has a "float" method which limits the number of bangs -it will output. - -

The audio setup is better documented for NT and Linux. - -

The externs in 4.fft and 6.externs got recompiled and tested. - -

BUG FIX: the "read16" message to tables was broken on NT and is now fixed. - -

BUG FIX: In Linux, starting Pd up sometimes changed the audio mixer -setting. - -

BUG FIX: sending "floats" to inlets expecting lists now works correctly. - -

BUG FIX: "route" on symbols now deals better with symbols, floats and lists. - -

-------------------- 0.27 ----------------- -

-The main new feature is the "find" menu stuff. You can search for boxes -containing specified atoms, including semicolons or commas. Most errors are -now trackable, allowing you to "find last error". Look in the "Find" menu. - -

-New objects written: change, max, max~, min, min~, and swap. - -

-I looked in 0.INTRO.txt in 5.reference, and found that the objects -bag, cputime, realtime, pipe, symbol, poly, and bang were missing. - -

-Five or six bug fixes. - -

-Some audio problems in 0.25 were addresses. In Linux, audio drivers that -don't support the GETISPACE/GETOSPACE ioctl calls can be called using the -(inferior) "-frags/-fragsize" mechanism. If you specify either a "-frags" -or a "-fragsize" option, the GETIOSPACE calls are cancelled. - -

-Under NT, for some audio drivers the 0.26 release gave a constant stream of -"resync" events. I don't know what causes this but I added a "-noresync" -option which simply never resyncs at all. - -

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

-phasor~ and osc~ can be configured to take floating point messages to set -their frequencies, as an alternative to having an input signal to do the -same. Also, +~, etc, can take floating point arguments (and messages) to -add or multiply scalars. THe +~, etc, loops were unrolled to make them -run faster. - -

-A switch~ object is provided to let you switch sub-patches on and off. The -inlet~ and outlet~ objects were re-written to avoid adding any overhead when -moving signals in or out of sub patches. - -

-In Linux at least, the audio latency is much reduced. It's possible to poll -for audio I/O lateness errors by sending "pd audiostatus". - -

-When reading a sample using tabread4~, you can switch between sample tables -using the "set" message. - -

-A new "textfile" object is like qlist but more flexible. - -

-Many help windows got updated (but at least a dozen more need work urgently). - -

-A dsp_addv function was added to allow variable-length DSP calls (for writers -of tilde externs.) - -

-It's possible for a tilde extern to have a name ending in "tilde" now. Name -the setup routine "foo_tilde" for "foo~", etc. - -

-The dac~ object was fixed to clip its output when out of range (before it -wrapped around.) - -

-A first line of protection was added against getting numerical underflow -in delay feedback loops. Before, when a reverberator taled out there was -a sudden jump in CPU usage because the numerical underflows would trap to the -kernel. Now, if any delwrite~ is given a value less than 1e-20 or so, it -records a true zero to avoid this. - -

-Signal division checks for divide by zero. - -

-A "Font bomb" feature is provided for resizing fonts and stretching and -contracting patches to fit. - -

-Pds now bind themselves to the symbol pd-<window-name). - -

-IN Linux, if Pd is called as root it tries to promote its run-time -priority. You can make pd a setuid root owned program if you want this -behavior for non-root users who start pd. -(Don't make pd-gui setuid though. That would make a security -hole in your system.) - -

-The Pd commend line can take multiple "open" arguments. - -

-The file search path feature was fixed amd generalized. - -

-Alt-clicking a table gives you a dialog to set its x and y range and pixel -size. - -

-------------------- 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.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.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.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.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.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.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 <file>", "write <file>", "resize <N>", 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.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.12 - 0.17 ------------------- - -
-got Pd running under NT, although driver problems remain. Gem is also -distributed for both platforms. - -

-------------------- 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.10 ------------------- -
- -Many bug fixes. This was the first pre-release to be put on the FTP site. - -

-------------------- 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.08 ------------------- - -
metro bug -
scrollbars -
scheduler bug -
text box wraparound at 80 chars. -
fixed boxes to reconnect on retype - -

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

-------------------- 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.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.04 ------------------- -

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

-------------------- 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.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.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. -

----------------------------------------- - -

5.2. known bugs

- -

In the list below, starred items are still things needing attention... - -

*1. Timing of MIDI input/output is very shaky. Audio I/O is primitive, but -there's at least a way to detect errors now for linux and NT. - -

*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 [fixed in 0.30 release.] - -

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

*5. Tables and other drawable items can draw far outside the window; there's -no sanity check, Huge tables (>1000 points) are only partially drawn -(the first 1000 points.) - -

6. There's no way to order force a delread~ to make it read after -a delwrite~ has written. [but see under 3.audio.examples how to do this now.] - -

7. Pd doesn't know to suspend graphics updates when you minimize objects. -Presumably minimization makes things better but it doesn't cut off graphics -computation entirely as it should. [fixed for 0.34] - -

8. If you load a nonexistent extern you get a spurious message, -"consistency check failed: canvas_setargs". [fixed for 0.27 release.] - -

9. Typing backslashes into objects upsets Tk [0.29 should suppress all -backslashes; a real fix might come later.] - -

10. Never type a dollar sign into a comment; you may have trouble -opening your patch afterward... [fixed somewhere around 0.32] - -

*11. You'd better Turn DSP off before you type into a box that currently -holds a "pd" object with tilde objects in the subpatch. - -

*12. In Linux, if you hit control C while Pd is opening MIDI, Pd hangs. - -

*13. In linux, Pd doesn't report audio data-late errors yet. - -

*14. Several objects, notably dac~, adc~, and env~, are incompatible with -uses of block~ or switch~ objects that change block size frmo the default of -64. Using switch~ without reblocking causes no problem. Don't try to -read/write delay lines or use send~/receive~, or throw~/catch~, between -windows with different block sizes. - -

5.3. differences from Max/MSP

- -

It wasn't anyone's intention to make Pd a Max/MSP clone, but on the -other hand, if there's no reason for a feature to appear differently in -Pd than in Max/MSP, the choices in Pd tend to hew to those in Max/MSP. -Moreover, some effort has been undertaken (but more is needed) to make the -two interoperable. - -

You can use Pd to import and export patches to Max/MSP; just save as -text to a file with extension ".pat", and then open it in Pd. You'll at -least get something. If you stick to common or commonizable features -you can actually develop patches for both platforms. - -

When specific objects exist on one platform and not on the other, it's -often possible to make abstractions to imitate the missing objects, in a -kind of personalized compatibility library. - -

There are, however, differences in semantics you'll want to know about; -a partial list follows. - -

abstraction arguments. -In Pd you can edit instantiations of abstractions and save the result back -to the file of the abstraction. This isn't possible in Max, because the -instantiations are different from the abstraction itself in that "#1", etc., -are replaced by the instantiation arguments. In Pd, these arguments appear -as "$1", etc, and are translated at a slightly later stage of the instantiation -process so that you still see them as "$" variables in the instantiation. - (see Section 2.7. abstractions) - -

In Pd, to make current all instantiations of the -abstraction, either delete and recreate them or close and open the patch; -this is done automatically in Max/MSP. - -

In Pd, if you select "save" while in a subpatch, the parent is saved. In -Max/MSP, if you do this a dialogue box comes up asking if you want to save the -subpatch as a separate file. (if you want to save a subpatch to a file in Pd, -you have to copy and paste the contents to a new document. - -

In Pd, inlets and outlets are ordinary text objects; in Max/MSP they're -"gui" objects from the palette. - -

In Max/MSP, if an object's outlet is connected to several destinations, -corresponding messages are always sent in right-to-left screen order. In -Pd, the messages are sent in the order you made the connections in. In either -case, in situations where you care about the order it's appropriate to use -a "trigger" object to specify. - -

In Pd, there's no "gate"; instead it's "spigot" with the inlets in the -opposite, more natural order. - -

Switching subsets of the DSP patch on and off is done in completely -different ways in Pd and Max/MSP, and block sizes are handled differently as -well. - -

Max offers many "GUI" objects such as sliders, dials, VU meters, piano -keyboards, even "bpatchers." Until version 0.34, the only two in Pd were the -number box and graphical arrays. Starting in version 0.34, Pd incorporates -Thomas Musil's GUI objects: sliders, switches, and so on. (Thanks Thomas!) -Beyond this essential collection of GUI objects, it's unlikely you'll ever find -any commonality between the two. Also, as of 0.34, importing and exporting to -Max doesn't know about the Musil objects; I'll try to get that fixed for 0.35. - -

In Pd there's no "preset" object (I now think it's basically a bad idea) -and you have to use explicit sends and receives to restore values to number -boxes. Then just make a "message" box to re-send the values you want. - -

In Macintosh land, instead of getting tabosc4~ and arrays, you get cycle~ -and buffer~. The only gotcha is that you probably can't draw in buffer~ with -the mouse as you can with arrays, but at least it's possible to -make a patch that copies a "table" into a "buffer~". - -

The "bpatcher" feature in Max has a correlate, "graph on parent" subpatches, -in Pd; however, Pd's version is quite different from Max's. - - - -- cgit v1.2.1