-
Notifications
You must be signed in to change notification settings - Fork 239
/
x5.htm
2434 lines (1729 loc) · 94.6 KB
/
x5.htm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html>
<HTML lang="en">
<HEAD>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<TITLE>Pd Manual 5</TITLE>
<meta http-equiv="Content-Type" content="text/html">
<link rel="stylesheet" type="text/css" href="pdmanual.css" media="screen">
<link rel="icon" type="image/png" href="favicon.ico">
</HEAD>
<BODY>
<div class="butt">
</div>
<div id=corpus>
<H2>Pd Manual chapter 5: current status</H2>
<P>
<A href="index.htm#s5"> back to table of contents </A>
<BR><BR>
</P>
<P>This section tracks changes in Pd's current implementation.</P>
<H3> <A id="s1"> 5.1. release notes </A> </H3>
<P> ------------------ 0.54-0 ------------------------------
<P> Multichannel audio signals are supported for many objects. They may be created
or split into component channels using the new [snake~] object. Supported obects
include stateless tilde objects such as [abs~], [sqrt~], [rsqrt~], [wrap~], [exp~],
[cos~], [ftom~], [mtof~], [dbtorms~], [rmstodb~], [dbtopow~], [powtodb~], [clip~],
[+], [-], [*], [/], [max~], [min~], [log~], [pow~], [fft~], ifft~], [rfft~], [rifft~] and
[lrshift~]. The [send~]/[receive~], [throw~]/[catch~] also manage multichannel signals and
[tabwrite~], [tabread~], [tabread4~] and [tabplay~] now deal with more than one array and
multichannel signals.
<P> The [inlet~]/[outlet~] objects are not always stateless but it was judged necessary to
support them. The [clone] object received special attention since it might be desirable to
distribute multichannel signals among the cloned patches or to pass them directly into all
copies as multichannel inputs and outputs. The [adc~] object can also generate multichannel
signals from the input card, while [dac~] can directly manage a multichannel signal and
distribute to different channels.
<P> The [clone] object takes a message to change the number of copies. So now Pd
is useful as a non-real-time software synthesizer. Changing the number of
copies will cause massive reinitialization and memory allocation and should not
be used during preformance, only during setup.
<P> The [sigmund~] object got some new optimizations and has more parameters that can be
tuned for a particular instrument. A longstanding octave-jumping problem has been
partially addressed, and anyway, a new output type offers even/odd balance so
that a synth can play in unison with an instrument with very few octave jumps
by coherently mixing both possible octaves.
<P> The [lop~] object can now also take a signal to set rolloff frequency, but the same
slightly faster algorithm is used if you have a scalar input instead.
<P> The 64-bit windows build uses the lower-latency WASAPI audio system in place
of the older MMIO. This therefore only runs on Windows 7 and newer. The 32-bit version
can still run all the way back to Windows XP.
<P> There's a new design for the stereo [output~] abstraction in the 'extra' library
by Alexandre Porres. This is widely used in the documentation and now has a slider
to set the volume and you can also use a number box. It can also distribute a mono
input to both channels.
<P> The Windows installer can be run on non-admin users.
<P> Improved settings dialog window.
<P> As usual, countless bug fixes and miscellaneous improvements.
<P> ------------------ 0.53-2 ------------------------------
<P> Update portaudio to version v19.7.0 to fix macintosh hanging problem.
<P> ------------------ 0.53-1 ------------------------------
<P> Bug fixes, mostly from Iohannes concerning iemguis regression bugs because of
the cleanup/rewrite for 0.53. Also more documentation updates by Alexandre Porres.
<P> ------------------ 0.53-0 ------------------------------
<P> This is being released quickly to fix a bug in version 0.52, in which
soundfile reading was disrupted. There are some internal updates serious enough
to warrant a version number change, such as the unification of horizontal and
vertical sliders/radio buttons and the fact you can now change their orientation
via a new 'orientation' message, but no new features other than that.
<P> The IEMGUI default sizes increased, as part of an ongoing cleanup/rewrite.
<P> As usual, there are many minor bug fixes (thanks to several developers)
and updates to documentation by Alexandre Porres.
<P> The 'deken' plugin (external extension search tool) has been updated to a
new version.
<P> Many updated string translations.
<P> ------------------ 0.52-2 ------------------------------
<p> Many small bug fixes, and a few larger ones: under jack, Pd's delay adjusted
upward to the jack blocksize if needed (to prevent a hang).
<p> Many documentation fixes and improvements by Alexandre Porres
<p> Reverted behavior when selecting and dragging a single text box, so that
it now activates the text as traditional until 0.51. Sometimes one behavior is
wanted, sometimes the other, so there should be an easy-to-understand way for
users to control this. At the moment you can rectangle-select an object to
displace it without selecting the text, which is perhaps adequate, perhaps not.
<p> added an indirect way to open Pd's gui on one machine and the real-time
program on another without using X windows (so that it can be easily done on
MacOS and Windows). Requires ssh expertise - see commit c0e320f2142. (This
was already included in pd-0.51-1 but not documented).
<P> ------------------ 0.52-0 and 0.52-1 ------------------------------
<P> The Macintosh compiled version is now compiled at IEM (as part of the
continuous-integration setup available at git.iem.at/pd/pure-data/pipelines).
This should make Pd appear to be "safely" signed. Added compilation for
arm64 target (but not sure if the released binary will include that or not).
<P> New "list" box, like number and symbol but allows lists in addition to
single atoms. You can scroll up and down on any of the numbers in a list as
if it were a number box. All boxes (number, symbol, list) can now set different
sizes and you can also double-click on them to activate a "real" editor you can
copy/paste from/to.
<P> A new "trace" object allows you to get backward and forward traces of
message passing.
<P> New "file" object by Iohannes with contributions from Jean-Michael
Celerier - general file operations.
<P> Support for uncompressed CAF and AIFC soundfiles (by Dan Wilcox) - the soundfile
code reorganized to make it more modular.
<P> Improvements to the audio implementation - the most noticeable improvement
is better control of latency under jack.
<P> Pd's GUI checks that Pd actually exits when asked to and if not, kills it
to prevent rogue invisible pd instances from collecting behind the scenes.
<P> Bugfix in bob~ to output "correct" signal (old behavior still available
by setting pd compatibility < 52).
<P> libpd included as part of the Pd distribution. A test libpd project is included
in ../pd/libpd.
<P> Raised the limit on the size of incoming UDP packets in netreceive.
<P> Some improvements to label handling in IEMguis.
<P> Improved window positioning.
<p> New method for garrays to set colors, line width, visibility, display style
and disable mouse editing (documented in 2.control.examples/16.more.arrays.pd).
Also added more flags to the "plot" object that plots arrays in data structures
(by Christof Ressi).
<p> "set", "send", "delete" and "insert" methods added to "list store" object,
and new features added to "get" method (by Christof Ressi).
<p> The output~ abstraction, widely used in Pd's documentation is now part of
'extra' - plus several documentation updates/improvements to the help files and
chapter 4 of the manual (by Alexandre Porres). Also, other updates to the manual
by Lucas Cordiviola.
<P> As usual, numerous bug fixes.
<P> ------------------ 0.51-4 ------------------------------
<P> Bug fixes: infinite loop on Windows if writesf~ encountered a write error;
another hack at TCL/TK window size confusion; and better libpd and build support
<P> ------------------ 0.51-3 ------------------------------
<P> New functions for expr: mtof, ftom, rmstodb, dbtorms, powtodb, dbtopow, and two
bug fixes.
<P> The "use callbacks" switch in the audio dialog only appears if it's already on
(via the command line or app default settings). It was crashing and hanging Pd in
several situations. It might still be useful for reducing audio latency by a block
or so, but won't buy you much in any case. I'll try to fix it later.
<P> More white-space fixes (primarily affecting pd~ on Windows).
<P> Much work dealing with upgrade issues in MACOS 10.15 (thanks Dan Wilcox)
<P> ------------------ 0.51-2 ------------------------------
<P> Better support for white space in file path to pd, especially for pd~ object.
Also fixed an annoyamce in which pd~ started up a command prompt window on PCs.
The pd~ source is also now updated to work (again) in Max/MSP, on Mac or PC.
<P> ------------------ 0.51-1 ------------------------------
<P> Bug fixes, mostly from the git updates branch
<P> (long overdue) Buttons in the audio dialog to set some standard sample
rates. You can still run Pd at 3.14159 Hz if you want to but you'll have to
type that one in.
<P> On Macintosh tcl/tk is upgraded to 8.6.10 (should work on MacOS from
10.6 to 11.0 aka "Bug Sur").
<P> You can send "pd fast-forward <msecs>" to make Pd run its scheduler at full
speed, without waiting for A/D/A or the real-time clock. Useful for running
batch-style jobs interactively. You can advance a variable amount of time by
specifying a large value and then later sending "pd fast-forward 0" - but note
that outside input is ignored while in fast forward.
<P> ------------------ 0.51-0 ------------------------------
<P> Many bug fixes and some enhancements to network objects. Many thanks
to Dan Wilcox, Christof Ressi, and Iohannes Zmoelnig who did almost all the
work.
<P> (Also Dan) some fix I don't understand about code signing for MacOS 10.15,
without which externals refused to load.
<P> The "inlet~" object can now also optionally forward messages via an extra
outlet.
<P> New "mode" argument to openpanel object to allow selecting directories or multiple files
<P> New "equal" message to pointer object to test if two pointers are equal.
<P> Pd should now function OK if recompiled with float size set to 64 bits.
<P> ------------------ 0.50-2 ------------------------------
<P> fix backspace problem on MacOS
<P> ------------------ 0.50-1 ------------------------------
<P> improved handling of tilde chartacters for Portuguese and Spanish keyboard
maps
<P> handling spaces in path to HTML file open message to pdcontrol object
<P> ------------------ 0.50-0 ------------------------------
<P> new pdcontrol object allows getting patch's owning directory and calling
arguments, and opening files in web browser under patch control (useful in help
files).
<P> new nonlinear low-pass filter, slop~, for use in designing envelope
followers and dynamics processors.
<P> attempted to fix limitations on incoming MIDI and network packets.
Things seem to be improved but the improvements aren't exhaustively tested yet.
<P> improved HTML style in documentation and more info on managing externs.
<P> updates to Iohannes's smart patching features
<P> sort method for text object. Also text searching can deal with restricted
range of lines (so that, for instance, you can iteratively get all the matches,
not just the first one).
<P> internal changes to improve scheduler behavior and memory management.
<P> "zoom" feature updates to handle data structs better.
<P> ------------------ 0.49-0 ------------------------------
<P> "Undo" and "Redo" menu items now may be repeated to undo/redo
more than one successive edit. This feature was introduced by Ivica Ico
Bukvic and ported to Pd vanilla by Johannes Zmoelnig.
<P> Various editing shortcuts, also from Johannes.
<P> "Declare" -path & -lib flags now search user search paths.
<P> Search path handling made easier and more consistent between user
preferences, "declare" objects and command line flags. See help file for
the "declare" object.
<P> A "savestate" object allows abstractions to be designed so that they can
save state information as part of the calling patch.
<P> "Pointer" object has a "delete" method.
<P> "Text", "array", and "scalar" objects have the same methods (bang and "send")
for outputting pointers to themselves
<P> An optional argument was added to the "pd open" message, to allow opening
a file only if it is not currently open; to get this behavior send "pd open
<file> <directory> 1". It is still under discussion whether this would be the
appropriate response when the user clicks on a patch to open it in the file
browser.
<P> 4 million point default limit on resizing soundfile read to array changed to
2^31-1 (about 2 billion) samples. If invoked without an array name, soundfiler
still outputs the file's sample rate, etc., although it still reads the samples
only to throw them away; so if you really just want the soundfile info, consider
reading into an unused one-sample table instead.
<P> The "log" object has an optional argument to specify the laogarythm's base,
and a new inlet, to match "log~", and "pow" and "pow~" can now raise negative
numbers to integer powers, like the C math library "pow()" function.
<P> Changes to audio I/O handling to time out if device freezes (as when you
unplug a USB device in MACOSX).
<P> Backslashes may now be typed into object/message boxes. They escape
following "$", "," and ";" characters.
<P> ------------------ 0.48-2 ------------------------------
<P> More bug fixes. Audio on linux improved; various improvements to the
pd~ object, -no-gui windows patches able to use netsend/netreceive; loadbang
order fix for clone object; soundfiler no longer limiting size of soundfiles
to 4million points by default; updates to deken (external extension search
tool); seed message added to noise~; many code-level enhancements.
<P> ------------------ 0.48-1 ------------------------------
<P> Many bug fixes and a re-working of font handling that might make font
sizes resemble 0.47 more closely. most of the work was done by Dan Wilcox and
Iohannes Zmoelnig.
<P> ------------------ 0.48-0 ------------------------------
<P> It's possible to save and recall "settings" to files, and/or to erase system
settings. On Pcs, the settings are now stored in the "user" resource area
(before, it was per-machine, and users who weren't administrators apparently
couldn't save their settings.)
<P> On the first startup, Pd queries the user as to whether to create a
directory such as ~/Documents/Pd and set path to point there. Many updates
were also made to the "path" dialog and deken to better integrate downloading
stuff and path maintenance.
<P> The expr family (expr, expr~, fexpr~) got an update from Shahrokh Yadegari,
and the help file was reorganized and updated by Alexandre Porres. Many more
math functions are supported, and the parser was updated so that expressions
using "if" skip evaluating the argument that isn't used.
<P> New "fudiparse", "fudiformat" objects.
<P> New "list store" object for faster and easier concatenation and splitting
apart of lists.
<P> New notification outlet in "text define" so the patch can know when the text
is changed.
<P> New "text insert" object.
<P> "delwrite~" now has a "clear" message.
<P> "soundfiler" now has a right outlet which outputs a list with the
sample rate, header size, number of channels, byte depth, and endianness.
<P> "declare -path" inside abstractions was changed so that, if the declaration
isn't an absolute filename, it's relative to the abstraction's directory, not to
the owning patch's directory. This might be considered an incompatible change; but
since the situation with paths declared inside abstractions has always been so
confused, I think nobody will have got away without editing patches that relied
on it as things changed in the past.
<P> "float" now understands symbol messages that look like floats. The help
files for "float", "value" and "send" were updated to reflect this.
<P> But the biggest changes are under the hood. Pd now can manage more
than one running instance, so that it is possible to make plug-ins of various
sorts out of Pd and they can coexist with each other. This will allow people to
write much better VST plug-ins in Pd. I'm grateful to Carlos Eduardo Batista
for much help on this.
<P> The Pd API allows starting and/or shutting down the GUI dynamically while
Pd is running.
<P> Another internal change: the pd~ object now communicates with sub-processes
in binary by default. This increases the numerical accuracy of signal passing
(it should be exact now) and makes the passing back and forth of audio signals
much more efficient.
<P> Thanks to much effort by Dan Wilcox and IOhannes zmölnig, the
compile-and-build system is much improved, especially for Macintosh computers.
One visible effect is that language support is finally working in the
compiled versions on msp.ucsd.edu.
<P> ------------------ 0.47-1 ------------------------------
<P> Improvements to deken plug-in ("find externals" menu item). Now unzipping
works automatically in windows.
<P> improved "clone" argument parsing and added option to suppress numbering
of clones as first argument
<P> fixed a bug in initbang (didn't work in subpatches)
<P> "improved" zoom-in menu binding again (now '+' or '=' zooms in).
<P> restored a function needed by GUI externs such as 'knob'
<P> ------------------ 0.47-0 ------------------------------
<P> The "deken" plug-in is integrated into the Pd help menu - you can download
and install Pd libraries using the "Find Externals" menu command.
<P> New clone object that opens multiple copies of an abstraction and
routes messages and signals to/from them, for making banks of voices or
whatnot
<P> "Zoom" feature for dealing with high-resolution displays. IEM GUIs are
only somewhat dodgily handled (font sizes of labels aren't managed well).
<P> Controllable font sizes for menus and dialogs: setting the "pd window"
font size also sets font sizes for menus/dialogs.
<P> The expr, expr~, and fexpr~ objects are included in Pd proper, not loaded
as externs as before. This reflects their new license (lgpl) and should allow
them to be used in IOS apps via libpd. Shahrokh Yadegari has updated the
source and made manifold improvements in the objects. Notably, they now allow
access to variables in Pd defined via the "value" object.
<P> Backward messaging to netsend now works in UDP as well as TCP.
<P> Dialogs now work more Apple-ishly (changes taking place without the need
to hit an "apply" button in many cases). Thanks to Dan Wilcox.
<P> API support for "initbang" and "closebang" objects (from IEM library
I think, but anyhow you can now get them in Pd Vanilla via deken (help
menu "Find externals").
<P> "Declare" object path settings now take effect immediately when you edit
the declare object.
<P> (IOhannes) Abstractions, externs, and stuff written in other languages
(python, Lua, etc) are now loaded logically, that is, if you have one patch
that loads an external named X, you can still load abstractions named X in
other patches. Miller now officially Does Not Know How This Works (DNKHTW).
<P> Many bug fixes.
<P> ------------------ 0.46-7 ------------------------------
<P> Fixed non-working declare -stdpath on windows
<P> Fixed bug in which [array min/max] ignored onset argument
<P> Fixed jack audio back-ed not to auto-start the daemon
<P> Various compilation and architecture fixes
<P> ------------------ 0.46-6 ------------------------------
<P> fixed bug selecting and saving/restoring MIDI output devices.
<P> new bob~ object (Moog filter emulation) in extra. (This was intended for
0.47 but it was easiest to leave it in place for this bug-fix release).
<P> ------------------ 0.46-5 ------------------------------
<P> fixed crasher bug (cutting all text in an object then cutting again to
delete the object sometimes crashed Pd)
<P> added two checks to re-sort DSP when arrays are created or renamed
<P> patched Makefile.am for correct list of objects (fixes broken make install)
<P> fixed configure.ac to use fftw3
<P> ------------------ 0.46-4 ------------------------------
<P> fixed crasher bug in 0.364-3
<P> ------------------ 0.46-3 ------------------------------
<P> changed priority settings to agree with new restrictions on linux --
apparently non-root processes can't set to any of the top 5 or so priority
levels.
<P> three minor fixes for array graphics
<P> new "set" messages and wildcard '-' template names for "set", "get",
"elem", "setsize", "getsize", and "append" objects
<P> updated Makefile.am to reflect new and corrected help file names
<P> took out bogus object in rev3~
<P> ------------------ 0.46-2 ------------------------------
<P> fixed bug calculating widths of pre-version-0.39 GOPs
<P> added a pd_getdspstate() function to replace dspstate external variable
which was moved to the pd instance structure. Strictly speaking this doesn't
restore binary compatibility but I believe only one extern writer was using
dspstate (and he's actively maintaining the externs) so I think this is OK.
<P> The old standard-error "realtime priority" debug message under linux
only appears if Pd is started 'verbose'. OTOH, if realtime priority-setting
fails, the user is notified in the Pd window.
<P> fixed debian compile bug.
<P> fixed "array" object to allow a size of 1.
<P> ------------------ 0.46-1 ------------------------------
<P> Bug fix in oscparse (truncated some messages)
<P> Fixed ALSA (on linux) to open devices with fewer channels than requested
<P> Other small bug fixes.
<P> ------------------ 0.46-0 ------------------------------
<P> The biggest change in 0.46 was to make possible loading multiple Pd
instances into a single address space. The instances share symbols (there
are no namespaces) but have different schedulers, DSP networks, and MIDI
I/O structures. In principle it should be possible to design Pd plug-ins
that don't interact with each other using libpd.
<P> New oscparse and oscformat objects to facilitate OSC I/O. No support for
streaming; UDP only so far.
<P> At long last, Pd vanilla compiled for Macintosh computers is distributed
with Jack support.
<P> Bug fixes to IEM GUIs: sliders and radio buttons pass floating-point numbers
through without limiting them to the GUI's range or resolution. Also, the
toggle no longer resets its "value" (the nonzero number it outputs) when
receiving numbers in messages. Set compatibility to 0.45 or earlier to get the
old behavior (using "pd compatibility" message or a startup flag).
<P> Audio and MIDI settings are now saved by device name, not number, so
that, hopefully, adding or reordering devices doesn't change the devices
Pd opens as saved in preferences. You can also specify them by name on
Pd's command line with new flags such as "-audioadddev".
<P> New [text tosymbol] and [text fromsymbol] to allow string manipulation.
<P> Netsend/netreceive can send messages bidirectionally if using TCP protocol.
<P> Added some startup flags (mostly from IOhannes) - -nostderr, etc. Also
added a flag (-noautopatch) to suppress autoconnect.
<P> improved the sound of rev2~ and rev3~ reverberators
<P> Made stdlib and stdpath flags and declarations follow standard search
paths (IOhannes again).
<P> Dozens of small bug fixes.
<P> ------------------ 0.45-3 ---------------------------
<P> fixed a bug pasting text into Pd and an audio problem in Mac OSX (non-default
sample rates with built-in hardware needed huge buffering)
<P> ------------------ 0.45-1,2 ---------------------------
<P> fixed bug in which backspace to dialog windows got sent to the last
edited patch
<P> ------------------ 0.45 ---------------------------
<P> multi-purpose "array" and "text" objects. "Array" is a more general
replacement for the "table", "tabread" and "tabwrite" objects. "text" is
sort of like Max's "coll" but simpler and hopefully more powerful.
"text"s are also available as fields in data structures.
<P> "tempo" messages for delay, metro, timer, and "test sequence". In
particular you can specify or measure time in samples, but you can also use this
for changing the speed of an ensemble of delay loops while keeping them in sync.
<P> binary netsend/netreceive (so you should no longer need an extern for OSC).
<P> pd~ (multiprocessing) works on windows and is less likely to deadlock
although not yet perfect.
<P> Objects/messages/comments have settable box widths. By default they're
auto, but you can change that by dragging on the right-hand-side border. You can
set it back to the default just by dragging or to whatever width the default
would have been. If a box's width isn't "auto" and you open the patch back in
Pd version 0.44 you'll see a warning; if you open it in earlier versions you'll
get pages of error messages but no real harm. You can open and save a patch in
0.44 if you'd like to reset all box widths to auto.
<P> The Pd window now tells you whether PD has an audio device open or not,
and various error and status messages that used to go to standard error now
appear on the Pd window (this improvement was way overdue!)
<P> Fixed hangups exiting when using jack.
<P> Got ASIO working again on PC (it was apparently broken; I don't know for how
long.)
<P> Various other small improvements in audio and midi handling: Notably,
except when using Jack, Pd doesn't open audio on startup; sometimes you want to
get to the dialog panel before audio ever starts (for instance, on Mac,
to prevent Pd from hanging when someone walks in the building with an apple TV --
gee, thanks, Apple!)
<P> Took a patch from IOhannes zmölnig to make Pd source conform to strict
aliasing rules. The vanilla release is still compiled with -fno-strict-aliasing
but this will be dropped after more testing.
<P> The vanilla release now includes a 64 bit binary for MacOS. This is a
separate app and it won't load externs that haven't been compiled with
-arch x86_64. (Externs can be future-proofed by including both i386 and i86_64
binaries by compiling with -arch i386 -arch x86_64).
<P> The soundfiler now writes correct sample rate to AIFF files (was previously
hard-coded to 44100). Still no way to detect the sample rate of a file when
reading it.
<P> ------------------ 0.44-3 ---------------------------
<P> Fix hip~ AC gain once more (still didn't have it right).
<P> Small improvements in MIDI handling (midiin and sysexin device numbering;
two linux-specific fixes).
<P> "open recent" fixed for linux
<P> ------------------ 0.44-2 ---------------------------
<P> Fix underflow problem for Raspberry Pi (no effect on other platforms)
<P> ------------------ 0.44-1 ---------------------------
<P> Fixed default API settings to prefer MMIO over ASIO for MS Windows and
anything over jack (so that first-time users are most likely to get audio
out).
<P> ------------------ 0.44 ---------------------------
<P> many, many changes (hopefully improvements) in audio and MIDI I/O
and in scheduling.
<P> got rid of the "old" (cd src; ./configure etc) build system. src now
contains fallback makefiles for gnu/linux and mac as well as windows. But
the "official" way to build Pd is now to invoke automake.
<P> better handling of reading and writing files with non-ASCII filenames in
Microsoft Windows.
<P> fixed a bug in hip~ (incorrect gain; noticeably different when the cutoff
frequency is set about 5K or higher.) To get the old behavior you can set
Pd to be 0.43 compatible; see the hip~ help window for details.
<P> inlet~ and outlet~, if configured to do upsampling, now use sample/hold
instead of zero padding by default; arguably this is a bug fix as the DC gain
isn't one for zero padding. Also undoable by setting compatibility to 0.43.
<P> ------------------ 0.43.2-3 ---------------------------
<P> bug fixes, notably allowing an increase in incoming MIDI bandwidth.
<P> added an "f" message to canvases which might in the future be used
to specify formatting info (width; font size) box by box.
<P> ------------------ 0.43.1 ---------------------------
<P> bug fix: in "perf mode" (having sent pd the "perf" message to prevent
undesired patch closure) Pd crashed (oops!) when one asked for the patch to
close after all.
<P> Improvements to Mac version of bonk~ -- "learn" parameter handled correctly and
compilation fixes.
<P> Default font size is the same on all platforms.
<P> Bug fixes reading and writing AIFF files, particularly 24 bit ones
<P> "edit mode" menu checkbox should work now.
<P> X Pasting text into boxes now works in linux.
<P> fixed bug that hung Pd when closing more than one pd~ subpatch out of order.
<P> fixed segfault if DSP loop found and main patch had signal inlets/outlets
<P> miscellaneous cleanups.
<P> STILL BUGGY: when you change the contents of a graph-on-parent subpatch the
old stuff often doesn't get erased correctly.
<P> ------------------ 0.43 ---------------------------
<P> Completely new TCL front end, thanks to Hans-Christophe Steiner,
IOhannes zmölnig, and others.
<P> ------------------ 0.42-5 ---------------------------
<P> broken abs~ and log~ fixed
<P> pd~ -ninsig 0 hang fixed
<P> testtone updated and 16ch version added
<P> lrshift~ bug fix
<P> 32 channel limit removed for portaudio (ASIO/Windows and Mac)
<P> ------------------ 0.42-4 ---------------------------
<P> added -noautopatch startup argument to defeat auto-connecting to
new objects (some folks like it and others hate it)
<P> gfxstub bug fix
<P> fixed crash on deleting "s" objects with no args
<P> re-fixed seteuid(0 problem
<P> fixed crash on "find $1" (still not useful though)
<P> ------------------ 0.42.1-3 ---------------------------
<P> Bug fix on Windows(cancelling window close deactivated window).
<P> Bug fix running Pd from command line in MacOS.
<P> "Select all" fixed to select none if everything already selected.
<P> ------------------ 0.42 ---------------------------
<P> The 'struct' object can now be used to catch a small but growing variety of
events (mouse clicks on data, selection/deselection).
<P> The 'tabread4~' object was fixed to allow message-time onset into the table.
This makes it possible (at last) to use tabread4~ effectively with large (> 1
second) samples. New help files 3.audio.examples/B15 and B16 show how to
use it. It's not pretty but it's at least possible.
<P> Took patches from IOhannes zmölnig to make Pd work when compiled to use
64-bit floating-point audio. I didn't test this; doubtless there will still be
some problems. (This isn't the same thing as running in '64 bit mode' which
already works fine and is the default when compiled on a 64-bit linux machine.)
<P> New objects in extra, 'pd~', and 'stdout', allow running a separate Pd
instance in a sub-process. Theoretically this should make it possible to use
multiprocessors efficiently in {d. It's still somewhat experimental; it might
not work well to pass large numbers of messages and/or signals back and forth.
<P> A -batch flag allows Pd to be run efficiently from scripts. You should
probably also specify -nosound. With these flags Pd runs as quickly as it
can without waiting for real time. It's up to the patch to arrange to exit
at the appropriate time via a 'pd quit' message.
<P> Large and sweeping improvements have been made to bonk~ and sigmund~. The
new bonk~ features are documented in its help window; sigmund~ works better but
has the same old features.
<P> Closing and quitting Pd now act more politely, querying the user only if
there are edited windows. There's also a query if the user types into a box
holding an edited abstraction to prevent the changes from getting lost
accidentally. A new 'pd perf' message re-enables the old "really close this
window" behavior, which is appropriate for performances where you don't want the
wrong keyclick to stop Pd brusquely.
<P> The process of reloading multiple copies of a modified abstraction was
sped up.
<P> The 'find' dialog permits searching for substrings. This is useful for
strings containing "$" arguments, where it's unclear what 'find' does or should
do.
<P> New pow~, log~, exp~, abs~, and 'wrap' objects.
<P> The 'print' object takes "-n" flag to suppress "print:" in output
<P> "clear" button in Pd output window
<P> ".pdrc" loading suppressed if pd is started with "-noprefs".
<P> Bug fix in pipe object: if sending a list to pipe, it didn't update the
delay time when asked to.
<P> Binbufs fixed to handle arbitrary length messages. (This fixed a problem
reloading data structures with huge arrays).
<P> various fixes to
<P> ------------------ 0.41-3,4 ---------------------------
<P> 2 fixes for PC: no bonk~, and the audio device selection
dialogs didn't show all the devices.
<P> ------------------ 0.41-2 ----------------------------
<P> More bug fixes: large netsends dropping messages, and crash bug when turning
DSP on and off repeatedly in MS windows
<P> ------------------ 0.41-1 ----------------------------
<P> Fixed a startup problem for Mac OSX 10.5.1 (other platforms should not be affected)
<P> ------------------ 0.41 ----------------------------
<P> Pd may be compiled in 64 bit address spaces; this is well tested on
linux and at least seems to work on Microsoft and MacOS. On linux, in fact,
if you compile Pd in a 64-bit version of the OS it's automatically in the
64 bit address space.
<P> In linux, a "-nosleep" flag causes Pd to poll instead of sleeping as it
waits for dac and adc; this is useful on multiprocessors when you don't mind
having Pd occupy 100% of one processor and want to get latency as low as
possible. (If you don't use this, latency on multiprocessors - Intel Core 2 at
least - is much worse for some reason than it is on uniprocessors.) It's
"experimental" but I use it every day.
<P> added an experimental callback scheduler. This might reduce latency in
MacOS and/or Microsoft, although I haven't seen that actually happen yet.
<P> removed limitation on huge messages from text files; this prevented long
"data" arrays from reloading from disk correctly.
<P> fixed crash bug closing patches with open GOPs.
<P> changed selection strategy so that, right after duplicating a collection
of objects, clicking tends to select an already-selected object.
<P> the cursor changes slightly more appropriately when switching between edit
to run modes.
<P> got really confused about the proper role of "declare 'path" in abstractions;
for the moment they are ignored. I the future, it may be worthwhile to allow
them but to have them act only locally to the abstraction; but this might mean
a lot more computation overhead when opening files.
<P> limited window sizes to that of the screen (otherwise, on Mac OS, it's
impossible to resize them.)
<P> fixed "startup" dialogs to allow unlimited "path" and "lib" entries
<P> started, but didn't finish, the process of getting Pd to compile with
t_float as 64 bits. This would slow Pd down but improve tabread4~'s accuracy.
<P> made IEM Guis respect "-font" flag and friends. New startup flags:
"-font-face" (badly named); "-font-size" synonym of "-font". (Large patch from
HC).
<P> String overflow protection here and there.
<P> migrated to ".net" compiler ("VC 2005", a free download).
<P> ------------------ 0.40-1 --------------------------
<P> Fixed "declare" which wasn't working properly yet in 0.40-0, and
made more objects (notably "soundfiler") respect "declared" paths. Path
entries are relative to the parent patch. Declares inside abstractions are
ignored.
<P> "drawnumbers" are draggable now, even if they're in arrays.
<P> Bug fix opening "html" help from windows.
<P> Changed MACOSX to __APPLE__ in 4 places.
<P> ------------------ 0.40 -----------------------------
<P> A new object, "declare", allows patches to control where Pd looks
for resources such as abstractions and libraries.
<P> Symbols can now be built using multiple dollar sign variables, as in
"$1-$2.$3". Meanwhile, naming subpatches as in "pd $1-foo" now seems to
work correctly.
<P> The switch~ object takes a "bang" message to compute one block of DSP on
demand. Also, block sizes are no longer required to be powers of two
(although reblocking only works between powers of two.)
<P> Externs may have characters in their names that aren't part of valid
C variable names (i.e., outsize the range a-z,A-Z,0-9, _).
<P> Openpanel and savepanel take an argument to set the initial directory to
search.
<P> Support for large (>2G) soundfiles, in operating systems that offer it.
<P> Text copy/paste fixed (I hope) for Macintosh
<P> Intel Mac binaries. New naming scheme for externs to allow disambiguation
(although Pd falls back to the old names for compatibility.)
<P> Templates can get notified when data are selected/deselected. I want
to provide this for mouse actions on locked canvases too, but haven't yet.
<P> Characters like "\", "[", etc., typed into dialogs for labelling
number boxes or other GUI objects, get filtered out so that they at
least don't hang Pd up.
<P> Drawcurve (and the others, filledcurve, drawpolygon, filledpolygon)
have a new "-x" flag that inhibits a scalar getting
selected when the curve is clicked on. This is useful for drawing stuff in
the background (grids, clefs, etc).
<P> 6 or so patches adopted from sourceforge.
<P> A "list length" object
<P> IEM Gui labels (except for the VU meter) default to 10 point fonts
(typically 8 before).
<P> "send" without an argument gets an inlet to set the destination
<P> A -noprefs flag defeats loading startup preferences. This gives you a
way to rescue things if Pd's settings somehow crash Pd on startup.
<P> tabwrite~ takes a "start" message to allow writing into the middle
of the table.
<P> ------------------ 0.39.2 --------------------------
<P> Bug fixes: memory leak in OSX version; problem printing numbers as symbols.
<P> ------------------ 0.39.1 --------------------------
<P> Bug fixes: compatibility problems with older version of TK
<P> ------------------ 0.39.0 --------------------------
<P> 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".
<P> 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 should 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.
<P> Drawing instructions can be turned on and off, either globally
(for all data of the given structure) or by a data field.
<P> The "struct" object has an outlet to notify you when a datum is selected or
deselected.
<P> 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.
<P> The font size of a Graph-on-parent abstraction is that of the abstraction
itself, not the calling patch.
<P> Message boxes now take "addcomma" and similar messages.
<P> A "list" object is provided for joining and splitting lists, and converting
between lists and non-list messages.
<P> 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.
<P> The "pointer" object has a method to rewind to the beginning of a list.
A "sendwindow" message forwards any message to the window continuing the
scalar currently pointed to.
<P> Abstractions don't produce visible windows, even if subwindows of the
abstraction were visible when the abstraction was saved.
<P> MIDI sysex messages should now work on all platforms.
<P> Bug fixes:
<P> sending lists to arrays now correctly interprets the first number of the
list as the starting index (following values are then stored sequentially in the
array.)
<P> The rfft~ object's imaginary part had the wrong sign. Also, the Nyquist
bin is now supplied correctly.
<P> 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.
<P> Bug fix in number2 which sometimes crashed Pd.
<P> Stale-pointer protection made more robust.
<P> Some of Pd's tcl/tk error messages have been tracked down, but probably
not all of them yet.