Code Monkey home page Code Monkey logo

pure-data's Introduction

# Pure Data

This is the README file for Pd, a free real-time computer music system.

## Getting Pd

You can get Pd for Linux, macOS, or Microsoft Windows from:

    http://msp.ucsd.edu/software.html

or from the Pure Data community site:

    https://puredata.info

Installation instructions are in INSTALL.txt and the Pd Manual at:

    http://msp.ucsd.edu/Pd_documentation/index.htm

If you download and unpack Pd, you will also find the Manual locally
in the file "doc/1.manual/index.htm".

Linux (or FreeBSD): In some Linux installations you can download Pd via "apt-get
install puredata" or "dnf install puredata"; otherwise you can download
the source and compile it as described in INSTALL.txt.

Apple macOS: Pd binaries are distributed as a "tar.gz" file. The web browser
will probably download this archive into your Downloads folder. Double click
to extract the archived Mac app which you can then run and/or drag into your
Applications folder.

Microsoft Windows: Pd binaries are distributed as a self-extracting executable
or as a "zip" file.

If you have questions about Pd or if you wish to be notified of releases,
you can browse and/or join the Pd mailing list:

    https://lists.puredata.info/listinfo

Many extensions to Pd are available, for instance to add video and 3D graphics.
The easiest way to get these is to use the "Find externals" command in Pd's Help
menu.

## Copyright

Except as otherwise noted, all files in the Pd distribution are

    Copyright (c) 1997-2024 Miller Puckette and others.

For information on usage and redistribution, and for a DISCLAIMER OF ALL
WARRANTIES, see LICENSE.txt included in the Pd distribution.
(Note that Tcl/Tk, expr, and some other files are copyrighted separately).

## Acknowledgements

Thanks to Harry Castle, Krzysztof Czaja, Mark Danks, Christian Feldbauer,
Guenter Geiger, Kerry Hagan, Trevor Johnson, Fernando Lopez-Lezcano, Adam
Lindsay, Karl MacMillan, Thomas Musil, Toshinori Ohkouchi, Winfried Ritsch,
Vibeke Sorensen, Rand Steiger, Hans-Christoph Steiner, Shahrokh Yadegari, Dan
Wilcox, David Zicarelli, IOhannes m zmoelnig, Christof Ressi, Antoine Rousseau,
Alexandre Torres Porres, Claude Heiland-Allen, Roman Haefeli, Lucarda, Seb Shader
and probably many others for contributions of code, documentation, ideas, and
expertise. This work has received support from Intel, Keith McMillen Instruments,
ZKM, IEM, and UCSD.

pure-data's People

Contributors

abreubacelar avatar ant1r avatar atrashdingdong avatar avilleret avatar bapch avatar ben-wes avatar chr15m avatar claudeha avatar danomatika avatar eighthave avatar eldruin avatar fdch avatar gusano avatar idonotfollowyou avatar jpcima avatar jyg avatar lar0sa avatar lucarda avatar luzpaz avatar millerpuckette avatar mxa avatar njazz avatar pierreguillot avatar porres avatar sebshader avatar smokhov avatar spacechild1 avatar umlaeute avatar valeriorlandini avatar yarons avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pure-data's Issues

Crash pdinstance_free()

I got malloc: *** error for object 0x10051eb50: pointer being freed was not allocatedwhen I call pdinstance_free(). The error is generated when it frees the symbol list here. You can test it by calling pdinstance_free(pd1);at the end of pdtest_multi of libpd.

IMAGE_FILE_LARGE_ADDRESS_AWARE to increase available RAM for 32-bit builds on 64-bit Windows

I stumbled across the FILE_LARGE_ADDRESS_AWARE flag on Windows and apparently it doubles the available RAM for a 32-bit Pd process on 64-Windows from 2 GB to 4 GB.

https://msdn.microsoft.com/en-us/library/aa366778(VS.85).aspx?ranMID=24542&ranEAID=TnL5HPStwNw&ranSiteID=TnL5HPStwNw-Z6NjEgcaJn8pbbYAema89g&tduid=(94e0b4bf83daa242de97c8bfb531e5d9)(256380)(2459594)(TnL5HPStwNw-Z6NjEgcaJn8pbbYAema89g)()

I couldn't find any disadvantages so far...

add-to-path message currently breaks libpd

This is related to #145. The new add-to-path message calls _sys_savepreferences which is not built with libpd:

Undefined symbols for architecture x86_64:
  "_sys_savepreferences", referenced from:
      _glob_addtopath in s_path.o
ld: symbol(s) not found for architecture x86_64

`system` from `stdio.h` is not available on iOS 11

I'm not 100% sure if this is a beta bug with the latest Xcode or a deliberate deprecation/removal, but in any event, when I try to build libpd for iOS in Xcode 9 beta 2, I am seeing a compiler error in the sys_putpreference here. (I also don't have the latest version checked out, but it looks like the other system call in glob_forgetpreferences will also generate this error.

The error is: 'system' is unavailable: not available on iOS

I almost filed this in https://github.com/libpd/libpd or in https://github.com/libpd/pd-for-ios, but since the core of the issue is here in pd itself, I thought this would be a better place.

Unfortunately, I also haven't fully figured out the best way to solve the problem, but it does look like it should be possible to set user defaults analogous to defaults write using Core Foundation.

Asymmetric cos table

The cos table in d_osc.c is constructed in one shot using cos() from math.h. This table is slightly asymmetric, which means it is unstable for FM using [osc~]. [tabosc4~] fares a little better with a similar table constructed in Pd due to cubic interpolation, but for real symmetry, the segment of the cosine table from phase 0 to pi/2 should be copied. See attached Pd patch for an illustration; I have a working d_osc.c modification that fixes the problem, which I can submit if desired.

(This issue was raised by Porres on the list some time before PdCon16, but I think it got lost among everything else)

FM-instability.pd.zip

Filing PD issues here?

Is this a reasonable place to file general PD issues? Seems like @millerpuckette is paying some attention to this repo despite it's unofficial status so it would be great if this were a place people could file issues in a way that doesn't get lost into the mists of pd-users. Also the sourceforge "issue tracker" link here is a 404.

EDIT: clarify which link I'm referring to

Conflict: incoming OSC/FUDI data and DSP on

This problem occurs when, while receiving OSC data from inside the machine (thus using a localhost), DSP is turned on. The OSC data stops visually flowing (the GUI freezes) until the DSP isn't turned off.

Even though it might seem like a GUI glitch, this has a major delay effect also on the digital sound processing. The delay rises up to 5 seconds when the glitch occurs. The same effects appear if the patch is launched with the -nogui command from the terminal.

The only workaround I found to solve this issue is to run two separate instances of Pd: the first one that will act as an OSC parser, not having the need to turn on DSP. Once the data is parsed, the data is sent to a second instance of Pd via FUDI protocol (netsend) where it can coexist with DSP on without causing any issues.

This unfortunately brings up the amount of computing power needed.

The bug can be replicated in two different ways.

  • On MacOS the glitch appears even by simply sending OSC data from pd and receiving it on the same patch at a high rate.

  • On Linux this doesn't happen, but it can easily be reproduced by sending OSC data to Pd from another application, Processing for example, at a high frame-rate.

Example patches are attached below.

Pd_Bug.zip

# UPDATE

The same glitch appears with large amount of data incoming NOT formatted in OSC, but in Pd's native formatting FUDI. To replicate this, run this small python script in the terminal typing first:

python

and then pasting the code below:

import socket
import time

IP="127.0.0.1"
PORT=5005
addr=(IP, PORT)
EOL=';\n'
sock=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

for i in range(10000000):
msg="list foo "+str(i)+" bar"
sock.sendto(msg+EOL, addr)
time.sleep(0.001)

This example sends data to PD via FUDI using the local host on the port 5005 every millisecond. As said previously if DSP is turned on the GUI freezes. The issue is avoided if the data is throttled once every 10 milliseconds. (This is achieved by changing the last line of the python code to: time.sleep(0.01)

Are text colours hardcoded?

After looking around the code I found pdtk_text_new:8 which takes a variable color.

This function appears to be used in g_rtext.c:312-320 where it appears the the colours "black" and "blue" are hardcoded, although I don't understand the C code to figure this out myself sorry.

Is this true?

FFT crash with large blocks sizes

When I use a block size >= 2^20 (and sometimes >= 2^19) with [rfft~], pd crashes.
I tried with Pd 0.47.1-32 & 64bits on MacOS 10.12.5.
Here the console report:

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 pd 0x00082bd4 mayer_realfft + 36
1 pd 0x0007a46c sigrfft_perform + 28
2 pd 0x0006ce55 dsp_tick + 37
3 pd 0x00059ef6 sched_tick + 214
4 pd 0x0005ad63 m_mainloop + 1875
5 pd 0x0005e8b9 sys_main + 1577
6 pd 0x00001f19 _start + 208
7 pd 0x00001e48 start + 40

Here the files to test it (FFT-tests-1.pd makes Pd crash and FFT-tests-2.pd is alright - remove the extension .txt):
FFT-test.pd.txt
FFT-tests-1.pd.txt
FFT-tests-2.pd.txt

[PD] Pd 0.48.0.test1 fails to create all the gop objects of an existing patch

I uninstalled 0.47.1 and installed 0.48.0.test1 and tried to open a file of
seven placed abstractions but only two appear as the expected gop objects.
(the dark green canvas was moved manually). Screenshot 1
Uninstalled 0.48 and reinstalled 0.47.1 and the file opens correctly. Screenshot 2
Forgot to mention system is win 10 when I sent this to Pd-lists
Cheers
David Adams

screenshot1 pd 0 48 0test1
screenshot2 pd 0 47 1

Fat macOS app bundle

The osx-app.sh script only copies the minimal requirements into the Pd macOS app bundle: the binaries, help files, translations, etc. The source files are left out in favor of the headers only.

Recently, it's come up that the entire source tree should be included inside the app bundle: pure-data/pd-lib-builder#33

A solution to this could be to add a "--fat" flag to the script which optionally copies in the full source tree.

issue with turning off GOP area

There is a small bug in PD while turning off the GOP area through the properties menu. Let's say you have a subpatch or abstraction on the canvas which has "GOP" and "hide object name and arguments" selected. If you go to the properties menu and deselect GOP and hit apply, it won't turn off.

What does work is to turn the "hide..." option off, apply, then turn the GOP off and apply. But I'd imagine that a lot of users will get confused searching for this.

Confusion between objects while resizing them

On MacOs with Pd 0.47.1

When I try to resize an object close to another one (but doesn't overlaps it visually), there is a confusion between the objects about which one must be resized.
I think this happens when one is above another, when you want to resize the one at the bottom this is the one at the top that is resized.
I guess the good object to select can be found easily because it is selected anyway - even if the wrong object is resized.
See the example with comments:

giphy

single quotes added to macOS guiprefs strings

I've been noticing that with the new GUI prefs, the recent files entries do not work after restarting Pd since they all have a single quote char suffix ala some-patch.pd'.

In digging into pd_guiprefs.tcl, I see embedded single quotes in the string are escaped properly but that the string is enclosed by single quotes when passed to the defaults command to update the macOS preferences plist. From what I can tell, Tcl treats single quotes as regular string characters so the single quotes are not actually treated as marking the beginning and ending of a string but as being added to the string itself aka this in Tcl:

set path /path/to/some-patch.pd
set quoted '$path'
puts $quoted

prints:

'/path/to/some-patch.pd'

So this string now contains the quotes and those are then added as the string into the defaults file. When Pd restarts and loads the recent files list, the single quotes are there and the ' suffix means the file path is invalid.

I'm digging into how to pass the single quotes along to exec so they are treated as actual string delimiters and not as part of the string. This is all down to the fact the defaults man page states that single quotes should be used, annoying.

suggestion: make [declare -path] also search user added paths

This is an issue that relates to other Pull requests and parallel discussions, like: #183

In short, some of us were used to relying on "additional standard paths" for managing externals, but @millerpuckette points out (and I quote) "the way forward is to somehow get the "path" mechanism to do what people are asking for." see full message at: https://lists.puredata.info/pipermail/pd-list/2017-07/119839.html

Regarding that, there is a user case related to [declare] if you use "standard paths" and the -stdlib and -stdpath flags that I hope we can achieve with the -lib and -path flags as well.

Say you have externals elsewhere than Standard Paths (which should only be the "extra" folder, according to Pd's manual). The idea is that you have to add them to pd's Path, but if you wanna use [declare], you can only use relative or absolute paths, which I think are much more complicated to manage. So we could make the "-path" flag also search and find subdirectories in user added paths.

Let me illustrate. If I have cyclone in a standard path, I can keep the search path empty and just use declare to call it. This seems to be what Miller suggests it's a good practice in #152 (comment) - and I agree it's a nice one, but we need an enhancement to [declare] so it really works.

See the picture below: search path is empty, and declare is being used to load cyclone with the "-stdpath" flag.

29137682-85ada536-7d17-11e7-9bda-447dca5e092a

So, now we do not want to mess with standard paths no more, and we can put it in a different folder, such as ~/Documents/Pd/externals - if I have cyclone in there, I cannot use [declare] in a simple way like this:

29137866-2446d852-7d18-11e7-97a2-21c394a31b66

Unless I do an absolute path, and that is much more complicated than before with standard paths. But if [declare -path] also searches in the added search paths, this would happen.

cheers

Struct crash

I don't find a way (or create a simple patch) to reproduce the error but Pd crashes when I perform some actions on a abstractions that manage a graphical data structures system.
I don't know if it's relevant but for example my patch contains one or more [struct] objects and it automatically draws at loading (mostly with [append] objects) inside a canvas (given as an argument). If I make a patch that I can share (with no dependencies) that crashes I'll add it to this issue.
I tried with Pd 0.47.1-32 & 64bits on MacOS 10.12.5.
Here the crash report:

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread

0 pd 0x0000000103c0a82f pd_findbyclass + 63 (m_pd.c:191)
1 pd 0x0000000103bde102 template_findbyname + 66 (g_template.c:489)
2 pd 0x0000000103bdc9eb scalar_vis + 107
3 pd 0x0000000103bdc35f scalar_doredraw + 31
4 pd 0x0000000103c13b75 sys_flushqueue + 293 (s_inter.c:809)
5 pd 0x0000000103c12956 sys_poll_togui + 86 (s_inter.c:832)
6 pd 0x0000000103c128e7 sys_pollgui + 39 (s_inter.c:893)
7 pd 0x0000000103c0bfde m_pollingscheduler + 462 (m_sched.c:523)
8 pd 0x0000000103c0bd32 m_mainloop + 50 (m_sched.c:597)
9 pd 0x0000000103c15a83 sys_main + 595 (s_main.c:363)
10 pd 0x0000000103c0f282 main + 34 (s_entry.c:32)
11 libdyld.dylib 0x00007fffb43f0235 start + 1

It seems that the problems come from the name (sc_template) of the structure in a scalar. Sometime the symbol is not valid. I tried to add conditions that check if the symbol isn't NULL in template_findbyname and scalar_vis, it seems to solve some of the crashes but not all.

Make Jackmp.framework optional on macOS

Currently, Pd on macOS connects to jackd only when Jack was installed with the JackOSX package, which installs something called Jackmp.framework. When using jackd from homebrew or a self-compiled binary (with traditional lib format), Pd won't detect it and complains:

"Can't open Jack (it seems not be installed on this Mac)"

If it's technically feasible, it would be nice, if Pd would talk to jackd without Jackmp.framework.

pdsend errorname: >>error writing "sock14": broken pipe<<

I get this error running test7 pd from terminal, but I haven't had any problems and I don't know what it means, so I just copy it here:

The error happens after quitting pd from the gui (even if no patch was opened).

Pd-0.48.0 ("test7") compiled 18:17:00 Aug  9 2017
port 5402
"/Applications/Pd-0.48-0test7.app/Contents/Resources/../MacOS/Pd" 5402
Waiting for connection request... 
... connected
Pt_Start() called
pdsend errorname: >>error writing "sock14": broken pipe<<

How to use sys_startgui

I started to update my project zpd (that is a kind of libpd) with the last version of Pd (before testing the new features in libpd). I don't really understand how sys_startgui should be used and what it does. In the Miller's branch of libpd, the example use a relative path but I don't know what is the path to my application and what should be the target of the path. The solution I found for the moment is to copy the static function sys_fakefromgui but it's dirty. Anyone has a solution?

SIGFPE crash when Tk is installed without xft support

Whilst I was packaging Pd (0.47-1 as well as current master) for gentoo I ran into the following issue: Pd compiled and ran fine but it would crash because of a SIGFPE when I tried to add any of the 5 default objects.
This is the accompanying backtrace

#0  0x000000000045c62a in rtext_senditup ()
#1  0x000000000045d454 in rtext_height ()
#2  0x000000000046b6cf in text_vis ()
#3  0x000000000043f06c in gobj_vis ()
#4  0x0000000000448e19 in glist_add ()
#5  0x0000000000468715 in canvas_objtext ()
#6  0x0000000000468ae5 in canvas_obj ()
#7  0x0000000000483a08 in pd_typedmess ()
#8  0x000000000044ccc9 in guiconnect_anything ()
#9  0x0000000000483edc in pd_typedmess ()
#10 0x000000000047dacf in binbuf_eval ()
#11 0x000000000048ddb7 in socketreceiver_read ()
#12 0x000000000048d0cb in sys_domicrosleep ()
#13 0x000000000048d152 in sys_microsleep ()
#14 0x000000000048881e in m_pollingscheduler ()
#15 0x000000000048895f in m_mainloop ()
#16 0x000000000049107b in sys_main ()
#17 0x000000000048b071 in main ()

After some digging I found out this was caused by my Tk being installed without xft/libXft support.
Now I did get a warning in the Pd console that Pd couldn't load it's font, but no errors.

AFAIK this is a compile time dependency that should be catched at configure time.
This can be done by passing --static and --libs to pkg-config, like this

pkg-config --static --libs tk

And then checking if -lXft is in the list.

In case that's problematic checking at runtime is, according to Tk's docs, relatively easy as wel

tk::pkgconfig get fontsystem

This should return xft

"Font" dialog only opens once

On current state (0e32313) built for Linux, after Font dialog is closed, the Font entry in the Edit menu is then greyed (for every window).

edit: actually opening most dialogs (preferences, help browser, Find, ...) then disables the Font entry.

keyboard shortcuts and capital letters

It would be really super wonderful if Ctrl + s, e, c, v, and d worked with capital letters also. Reason: you can't use these handy shortcuts if caps lock is on. Seems like this would be an easy fix.

guiprefs defaults bug on macOS

There is currently still a bug with saving the guiprefs on macOS. It's related to quote & string escaping. I fixed the issue with single quotes being added to the recent files paths but that approach now breaks saving filenames with parens. (Can't win.)

In any case, I'm opening this as a reminder that it needs to be fixed (and I'm working on it).

some bugs with DSP

Below follow some DSP bugs I encountered while doing patches on pd:

  • if the frequency of oscillators is set to 0 you will, most likely have DC Offset (that isn't a good idea)
  • if you unplug a patch cord, that is routing some form of audio, the same thing may eventually happen as well

Looking forward,
T.

Pd.app packaged with embedded Tcl/Tk framework crashes on launch

Furthering recent chats on the mailing list, I've tried packaging Pd.app with the included scripts, specifically with an embedded Tcl/Tk framework, and the resulting Pd.app is crashing on launch.

I've removed ActiveTcl/Tk entirely from my system first, just leaving the Apple system Tcl/Tk.

Steps from git clone:

$ ./autogen.sh
[...]
$ ./configure
[...]
$ make
[...]
$ cd mac/
$ ./osx-app.sh -t 8.6.6 prod
[...]
$ open Pd-prod.app

Backtrack here:
https://gist.github.com/rnkn/0f6fafa718b164ad7ebc0a58d90e254e

Recent files menu only saving 1 entry

This may be macOS only, but I'm seeing that the recent files menu is not being updated after the first file in the list. It looks like that value is being written as a string an not an array, so the list grows but only the first item remains. I'm also seeing that the log level is being saved as an empty array at start.

I'm making some progress so far...

[WIP] usable mingw32 builds

currently, Pd-for-windows is built with both msvc (to create a usable pd.lib) and mingw32 (for the distributed binary).
it seems that the pd.lib as created by mingw32 is not really usable, yet.

this should of course be fixed.

here's a few tests if the created binaries are usable (new means Pd-binaries/libs/externals created solely by mingw; old refers to the traditional double-compilation)

  • the new pd loads
  • the new pd can load new externals
  • the new pd can load old externals
  • an old pd can load new externals
  • an existing external can be built (linked) against the new pd.lib using mingw (without modifications of the build-system)
  • an existing external can be built (linked) against the new pd.lib using MSVC (without modifications of the build-system)

fft: ooura_init lock consistency error

Hello, I am trying to make a version of libpd which is up to date with Pd's master branch.
The pd-test program fails on test-extra.pd, having Pd built with PDINSTANCE defined.

bonk version 1.5
fiddle version 1.1 TEST4
pique 0.1 for PD version 23
sigmund~ version 0.07
error: consistency check failed: pd_globallock

This traces back to ooura_init. The bug condition suggests a pd_globallock() is attempted without a previous sys_lock(). It works for me using this solution, is this a correct fix?

diff --git a/src/d_fft_fftsg.c b/src/d_fft_fftsg.c
index 36853b2..d915008 100644
--- a/src/d_fft_fftsg.c
+++ b/src/d_fft_fftsg.c
@@ -48,6 +48,7 @@ static int ooura_init( int n)
         return (0);
     if (n > ooura_maxn)
     {
+        sys_lock();
         pd_globallock();
         if (n > ooura_maxn)    /* recheck in case it got set while we waited */
         {
@@ -64,6 +65,7 @@ static int ooura_init( int n)
                 error("out of memory allocating FFT buffer");
                 ooura_maxn = 0;
                 pd_globalunlock();
+                sys_unlock();
                 return (0);
             }
             ooura_costab = (FFTFLT *)t_getbytes(n * sizeof(FFTFLT)/2);
@@ -73,12 +75,14 @@ static int ooura_init( int n)
                 t_freebytes(ooura_bitrev, ooura_bitrevsize);
                 ooura_maxn = 0;
                 pd_globalunlock();
+                sys_unlock();
                 return (0);
             }
             ooura_maxn = n;
             ooura_bitrev[0] = 0;
         }
         pd_globalunlock();
+        sys_unlock();
     }
     return (1);
 }

extra redundant "pd Help" option in Help Menu

There's a new menu entry in "Help" named "Pd Help" which just opens the browser, so it the same thing as the "Browser" option below, thus, completely redundant.

Was this supposed to open something else?

cheers

Pd crashes with "-rt" and missing pd-watchdog

If Pd cannot find the pd-watchdog for whatever reasons, but is started with -rt (real-time scheduling), it wlil crash

bang@foobar:~/src/pd/bin$  ls
pd  pd-gui  pdreceive  pdsend  pd-watchdog
bang@foobar:~/src/pd/bin$  mv pd-watchdog pd-watchcat
bang@foobar:~/src/pd/bin$  ./pd -rt
disabling real-time priority due to missing pd-watchdog (../bin/pd-watchdog)
sh: 1: ../bin/pd-watchdog: not found
Cannot lock down 1186 byte memory area (Operation not permitted)
Cannot lock down 82274202 byte memory area (Operation not permitted)
Cannot lock down 422 byte memory area (Operation not permitted)
pd: watchdog process died
bang@foobar:~/src/pd/bin$ pdsend errorname: >>error writing "sock5563782e16a0": broken pipe<<
^C
$ 

copy / paste puts objects over the top of copied objects

this has been around a while and thought i would submit as issue.

when copy/paste selected objects, objects are pasted over the top of the original copied objects.

  1. copy / paste could paste offset like duplicate does
  2. copy / paste could paste based on mouse location so as to have different functionality than duplicate.

there is much discussion on the list/forum about this and i think it makes it difficult for students, beginners when that are used to just copy/paste to paste a large selection of patch, try to more section and just get one object move and then fast lose selection.

the issue is for in same doc NOT when copy paste from one doc to another.

maybe this is just up for discussion. im taking to @porres on facebook about it now.

[clone] prevents [loadbang] to fire inside abstraction on creation.

let's say there's an abstraction called 'foo'. if you create [clone foo 16], loadbangs inside foo instances don't fire as they would if you created a single instance (without clone). they do fire however if you save and reopen the patch OR if you click on [clone] and save [foo]. since the latter method is an easy workaround, it's not a big deal once you're aware of the issue. if you're not aware, however, you easily end up scratching your head why your abstraction isn't working as expected...

Deken should add to libs or print user help

The major stumbling block for installing Gem via Deken is that Gem also needs to be added to the startup libs. Deken currently does not do this by default, so Gem is installed but not loaded, leading to confusion.

Two possible solutions:

  1. Deken can add to the startup libs. It would need to do a string search to make sure Gem is not already there.
  2. Deken can add the ability to print a library post-install message. In the case of Gem, a message could be printed telling users they need to add Gem to the startup libs.

Unnecessary buffer allocation in atom_getsymbol

line 24 of m_atom.c

t_symbol *atom_getsymbol(t_atom *a)  /* LATER think about this more carefully */
{
    char buf[30];
    if (a->a_type == A_SYMBOL) return (a->a_w.w_symbol);
    else return (&s_float);
}

'buf' is not used at all!

-path startup flag saved to preferences

It looks like temporary paths passed to pd via the -path startup flag are being saved to the preferences since they are added to $::sys_searchpath:

  1. start pd with pd -path some/path
  2. open the Path dialog & see the temp path is in the list
  3. save by hitting the Ok button
  4. restart pd and the temp path is now saved in the preferences

We need some way to differentiate between the two so we only save paths manually added via the Path dialog & not the command line.

README

greetings. My name is Tiago Morais Morgado I have been using pure data since 2007, although not always in a systematic way, once I also work with other tools. I would suggest you guys to create a duplicate version of README in both txt and md format, so that we can actually stylize the README file using stylization

Patch names beginning with "Untitled" always open saveas when saving

I know this is not much a priority but thought I would log issue anyway since maybe there is easy fix:

when creating a new doc and saving it without retitling it (ex. Untitled.pd) when the user "save" doc the "save as" dialog appears rather than just resaving "Untitled.pd"

I am not sure I am even explaining this correctly. I think this has been brought up on the list but considered a minor issue, which I agree with, but and issue none the less.

Pd-GUI no longer honours "-path"

older versions of Pd (up to Pd-0.47; i guess starting with the Pd-GUI rewrite) would take the Pd-paths into account when looking for gui-plugins.
it seems that Pd-0.48 has dropped this.

looking at the output of "-d 1", it seems that this has happened accidentally, as the extra paths are transmitted to Pd-GUI, but are then cleared (before the built-in paths are transmitted).

$ ./bin/pd -nostdpath -noprefs -nrt -path /tmp/:/usr/bin/ -verbose -d 1

gives:

::pdwindow::post {running at normal (non-real-time) priority.\n}
set ::tmp_path {}
lappend ::tmp_path {/tmp/}
lappend ::tmp_path {/usr/bin/}
set ::STUFF->st_searchpath $::tmp_path
set ::tmp_path {}
lappend ::tmp_path {/home/zmoelnig/.local/lib/pd/extra/}
lappend ::tmp_path {/home/zmoelnig/pd-externals}
lappend ::tmp_path {/usr/local/lib/pd-externals}
lappend ::tmp_path {./extra}
lappend ::tmp_path {./doc/5.reference}
set ::sys_staticpath $::tmp_path

also that ::STUFF->st_searchpath looks a bit suspicious...

tcltk-wish.sh: command not found

Hi @danomatika I think there's a tiny error in osx-app.sh on line 173.

I think it should be:

@@ -170,7 +170,7 @@ if [ $included_wish == true ] ; then
 elif [ "$WISH" == "" ] ; then
     if [ "$TK" != "" ] ; then
         echo "Using custom $TK Wish.app"
-        tcltk-wish.sh $universal $TK
+        ./tcltk-wish.sh $universal $TK
         WISH=Wish-${TK}.app
     elif [ "$SYS_TK" != "" ] ; then
         echo "Using system $SYS_TK Wish.app"

Pd doesn't print anymore

Pd-0.48-0test3 doesn't produce any output with

[bang(
|
[print]

the problem seems to be, that when upgrading from Pd<0.48-0test3, no loglevel settings are stored in the preferences, so Pd assumes a value of 0 (aka fatal); thus not showing the printout by default.

manually setting the loglevel to 2=normal fixes this, but i think this is going to cause a lot of confusion.

Bug with the size of the subpatches

When a subpatch has his size specified (after resizing it for example), the size is well saved at the end of the restore line (#X restore 15 16 pd zaza 10, f 55; for example). But when the parent patch is reloaded (from the file) this is the last object in the graph of the subpatch (an [outlet] for example) that is resized. Then if the patch is saved, the size is saved for this object (#X obj 22 18 outlet, f 55; for example) and ignored for the subpatch (#X restore 15 16 pd zaza 10; for example).

ezgif-3-573ab5a01e
Behind, this is the patch in the text format.
The video starts when the subpatch is resized.

Patch window title path stripped of slashes on Windows

On Windows. it looks like the string encoding from the Pd core to the GUI strips the Windows backslashes from the Patch path displayed in the Patch window titlebar.

I don't have a screenshot, but it basically looks like:

Untitled C:UsersNameDocumentsPd

When it should be

Untitled C:\Users\Name\Documents\Pd

I can confirm the string is sent to the GUI without the slashes.

Request: query number of channels from [soundfiler] or something else

I need to get the number of channels to automatically load multi channel files into a set of tables according to the number of channels in the original sound file.

But maybe [soundfiler] is not the best place for this, as it would spit it out after the file has already been put into a table. If so, maybe the only way out is with another object that gives us info.

cheers

static code analysis

i've configured Travis CI and Coverity Scan to automatically build and analyse the code-base of Pd.

Currently the configuration is only active in the travis-ci branch, but eventually i will create a pull-request to merge it into master.

If anybody wants access to the Coverity Scan dashboard to see the actual bugs/vulnerabilities/issues, drop me an email.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.