Camomile v1.0.1 - An audio plugin with Pure Data embedded
Thanks for the info @Pierre-Guillot!
@Pierre-Guillot said:
I argue that adding external is just a matter of incorporating them in libpd.dll. Am I right?
Yes but the libpd used by Camomile is the static library (.lib/.so/.a) that why libpd is embedded in Camomile.
- In fact, I guess that some of the external libraries are already compatible with multiinstance support because it depends on what parts of the Pd API the libraries use. But to ensure the multiinstance support you must use the C flags
-DPDINSTANCE=1
(and-DPDTHREAD=1
) while compiling the library or libpd and avoid all the static variables (except if they use thread local storage and you ensure to init them well on each thread). Here is one of the 1st posts by Miller about it: https://lists.puredata.info/pipermail/pd-dev/2017-04/020980.html
So i guess i have to remove directly from the external code all the static variable, so basically remove the "static" keyword from the variable declarations.
How can i compile libpd as a .lib/.so/.a and not .dll?
Should i use those flags in the various makefiles or just as a fleg in the command line? (assuming working with msys2 on Win64)
- The same way you did it for the "standard" approach.
So it's enough to use a x64 compiler and a x64 target?
- Including an external library with libpd is pretty straightforward (as long as, in this case, the library has the multiinstance support). See this: https://github.com/libpd/libpd/wiki/Adding-Pure-Data-external-libraries-to-your-project. And if a library is included in libpd it will also be included in Camomile.
So you also have to compile libpd then Camomile (all the instructions are on the Github repository - I updated it a week ago https://github.com/pierreguillot/Camomile/tree/dev/v1.0.6-lv2#compilation - or just do the same steps as on Travis and Appveyor and I can help if needed).
Cheers
I don't really know what Travis and Appeveyor are. I have to check them out.
How to include the static pthread lib for Win compilation? You mention it the Camomile build process readme.
PS: Another approach would have been to ship the libpd dynamic library next to each plugin. i need to try this but I afraid that, on Windows and Linux, the DAW think that the libpd library is another plugin try to load it.
I guess that most hosts have an avoid list for specific .dll. At least Reaper have a config file where is possible to remove a specific .dll from being scanned as a plugin.
thanks!
TimbreID On Raspberry Pi
Compiling only TimbreId against pd (not compiling pd source).
To load timbreIDLib, list the path to the timbreIDLib library file in Pd's startup dialog (e.g., /home/yourname/pd_libs/timbreID/timbreIDLib).
timbreID version 0.7 requires the FFTW library, available at http://www.fftw.org.
FFTW is included pre-compiled with timbreID's Windows binary package available through deken. It's fine to simply leave libfftw3f-3.dll in the timbreID directory for use as a shared library. For Linux and Macintosh, FFTW is statically linked with the timbreIDLib library file, so there is no need for compiling or obtaining FFTW.
If you are compliling FFTW yourself, it must be compiled in single precision. To do so in Linux, configure FFTW like this:
./configure CFLAGS="-fPIC" --enable-float
and like this on a Macintosh:
./configure CFLAGS="-arch i386 -arch x86_64" --enable-float
Then run:
make
sudo make install
The FFTW library for Windows is available precompiled at:
http://www.fftw.org/install/windows.html
You will need the 32-bit version, and the single precision version specifically. The provided zip file contains several compiled versions of FFTW, but only libfftw3f-3.dll is required for timbreID version 0.7.
On Linux and Macintosh, the FFTW library files should be installed to /usr/local/lib by default. Once FFTW is properly built and installed, you can make timbreID using the included Makefile by running:
make
You must specify the location of your Pure Data source code directory in the Makefile beforehand. Compilation from source on Windows can be done with the same Makefile if you use MinGW: http://www.mingw.org
On Linux and Macintosh, timbreIDLib will statically link the FFTW library. On Windows, you will either have to set up an environment variable to point to the location of libfftw3f-3.dll, or simply put libfftw3f-3.dll directly in the timbreID directory.
Cheers~
Lissa Executable / ofxOfelia compile error (Solved)
@cuinjune I tried to compile the lissa seq patch. but when i open the executable it opens only a small empty window.
i also tried to compile a help patch for testing, with the same result.
but your example works fine(Win32Example).
PD-Vanilla will not load PD-Externals--Mint Linux
Hello, I am able to load a couple of PD externals. I am using Pd 0.46.7 on Linux Mint 18.2 Cinnamon 64-bit. I am using the find externals command under the help menu. I see the directories in my ~pd-externals folder. But when I try and use objects like [counter] that are supposed to be in these externals I get a can"t create error?
I get this message when I start PD
sys_midiapi 1
input channels = 2, output channels = 2
priority 6 scheduling failed; running at normal priority
tried /home/lulujoe13/pd-externals/zexy.l_ia64 and failed
tried /home/lulujoe13/pd-externals/zexy.pd_linux and failed
tried /home/lulujoe13/pd-externals/zexy/zexy.l_ia64 and failed
tried /home/lulujoe13/pd-externals/zexy/zexy.pd_linux and failed
/home/lulujoe13/pd-externals/zexy: can't load library
tried /home/lulujoe13/pd-externals/cyclone.l_ia64 and failed
tried /home/lulujoe13/pd-externals/cyclone.pd_linux and failed
tried /home/lulujoe13/pd-externals/cyclone/cyclone.l_ia64 and failed
tried /home/lulujoe13/pd-externals/cyclone/cyclone.pd_linux and succeeded
Cyclone 0.3 beta 2; Released: June 19th, 2017
This is a sub library containing the objects:
[!-], [!-~], [!/], [!/~], [!=~], [%~], [+=~], [<=~], [<~], [==~], [>=~] and [>~]
tried /home/lulujoe13/pd-externals/upp.l_ia64 and failed
tried /home/lulujoe13/pd-externals/upp.pd_linux and failed
tried /home/lulujoe13/pd-externals/upp/upp.l_ia64 and failed
tried /home/lulujoe13/pd-externals/upp/upp.pd_linux and failed
/home/lulujoe13/pd-externals/upp: can't load library
tried /home/lulujoe13/pd-externals/Gem.l_ia64 and failed
tried /home/lulujoe13/pd-externals/Gem.pd_linux and failed
tried /home/lulujoe13/pd-externals/Gem/Gem.l_ia64 and failed
tried /home/lulujoe13/pd-externals/Gem/Gem.pd_linux and succeeded
/home/lulujoe13/pd-externals/Gem/Gem.pd_linux: libftgl.so.2: cannot open shared object file: No such file or directory
/home/lulujoe13/pd-externals/Gem: can't load library
deken-plugin.tcl (Pd externals search) in /home/lulujoe13/pd-externals/deken-plugin loaded.
Platform detected: Linux-x86_64-64bit
'deken-plugin.tcl' already loaded, ignoring: '/home/lulujoe13/pd-externals/deken-plugin/deken-plugin.tcl'
Opened Alsa Client 128 in:0 out:2
counter 1
... couldn't create
Can anyone offer suggestions and help? Thanks. JoeF.
mrpeach on Raspberry
Hi there,
Thanks for taking the time. I am getting a little bit frustrated here, so I guess it’s best to ask the community:
How do I get MrPeach to work on 0.47.1? I am using a Raspberry Pi 3 (running Linux version 4.9.20-v7+) and Pure Data 0.47.1.
I installed mrpeach using the “find externals” functionality. Of course I edited the path to “/home/pi/pd-externals” and created a “mrpeach” entry in the startup preferences.
Some background information: I want my Python code to “communicate” with pd but actually I do not care how they do this. OSC-Messages seem to be the easiest solution.
Well, seemed. I am a total beginner to pd
Help much appreciated
Daniel
By the way here is the log:
tried ./osc/routeOSC.l_arm and failed
tried ./osc/routeOSC.pd_linux and failed
tried ./osc/routeOSC/routeOSC.l_arm and failed
tried ./osc/routeOSC/routeOSC.pd_linux and failed
tried ./osc/routeOSC.pd and failed
tried ./osc/routeOSC.pat and failed
tried ./osc/routeOSC/osc/routeOSC.pd and failed
tried /home/pi/pd-externals/osc/routeOSC.l_arm and failed
tried /home/pi/pd-externals/osc/routeOSC.pd_linux and succeeded
tried ./mrpeach.l_arm and failed
tried ./mrpeach.pd_linux and failed
tried ./mrpeach/mrpeach.l_arm and failed
tried ./mrpeach/mrpeach.pd_linux and failed
tried ./mrpeach.pd and failed
tried ./mrpeach.pat and failed
tried ./mrpeach/mrpeach.pd and failed
tried /home/pi/pd-externals/mrpeach.l_arm and failed
tried /home/pi/pd-externals/mrpeach.pd_linux and failed
tried /home/pi/pd-externals/mrpeach/mrpeach.l_arm and failed
tried /home/pi/pd-externals/mrpeach/mrpeach.pd_linux and failed
tried /home/pi/pd-externals/mrpeach.pd and failed
tried /home/pi/pd-externals/mrpeach.pat and failed
tried /home/pi/pd-externals/mrpeach/mrpeach.pd and failed
mrpeach: can't load library
Load Libraries, plug-ins
@Balwyn I've follow your steps but still nothing this is what i got in the console:
'pd-gui' connecting to 'pd' on localhost 5400 ...
------------------ done with main ----------------------
Default font: DejaVu Sans Mono
tried ./Gem.m_i386 and failed
tried ./Gem.dll and failed
tried ./Gem/Gem.m_i386 and failed
tried ./Gem/Gem.dll and failed
tried ./Gem.pd and failed
tried ./Gem.pat and failed
tried ./Gem/Gem.pd and failed
tried C:/Users/Jose/pd-externals/Gem.m_i386 and failed
tried C:/Users/Jose/pd-externals/Gem.dll and failed
tried C:/Users/Jose/pd-externals/Gem/Gem.m_i386 and failed
tried C:/Users/Jose/pd-externals/Gem/Gem.dll and succeeded
C:\Users\Jose\pd-externals\Gem\Gem.dll: couldn't load
tried C:/Users/Jose/pd-externals/Gem.pd and failed
tried C:/Users/Jose/pd-externals/Gem.pat and failed
tried C:/Users/Jose/pd-externals/Gem/Gem.pd and failed
tried C:/Users/Jose/pd-externals/Gem/Gem.m_i386 and failed
tried C:/Users/Jose/pd-externals/Gem/Gem.dll and succeeded
C:\Users\Jose\pd-externals\Gem\Gem.dll: couldn't load
tried C:/Users/Jose/pd-externals/Gem/Gem.pd and failed
tried C:/Users/Jose/pd-externals/Gem/Gem.pat and failed
tried C:/Users/Jose/pd-externals/Gem/Gem/Gem.pd and failed
Gem: can't load library
Loading plugin: C:/Program Files (x86)/Pd/tcl/pd_deken.tcl
The Pd window filtered 26 lines
The Pd window filtered 27 lines
How to install externals, libraries, gui plug-ins, etc.
Hello, having trouble installing external libraries in pd, I'm in Xubuntu, so I'm new to Pd and Linux both.
tried almost everything in posts but there's not a lot of information on the topic, thanks in advance
I have three folder containing one sample library (according to pd web site and other resources these are standard folders for external libraries)
~/Pd-externals/moonlib; /usr/local/lib/pd-externals/moonlib; and /usr/lib/pd/extra/moonlib
My path config in Pd is: ~/Pd-externals; /usr/local/lib/pd-externals; and /usr/lib/pd/extra
I've tried the next Startup configs (and every other logic folder variation):
-helppath ~/Pd-externals
-stdpath ~/Pd-externals
Console print at startup:
tried /home/sosimicro/Pd-externals and failed /home/sosimicro/Pd-externals: can't open
Console prints a long list of errors when I try to create a library object like [mkob]
I'm in a dead end, I really don't want to install pd-extended, there must be a way
Compiling Pd-extended on Windows
Hello,
I created a new thread as the older post [Problem compiling on windows] (http://forum.pdpatchrepo.info/topic/967/problem-compiling-external-on-windows/16) seems to have ended and my problem has a different nature.
Moreover. I have not been able to find an answer on the puredata sites (puredata.info or puredata.org).
My problem:
My end goal is to play with the 'grid' external in pd-extended/externals/unauthorized/grid but since I do not get this one working and I have never compiled an external before I started with the simpler tutorials in Pd/doc/6.externs.
My steps and error are as follows:
**1. **Adap path in 'makefile' in Pd/doc/6.externs to 'C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC'
(this path contains a /lib folder with .lib and .obj files on my machine)
**2. **Start ( Admin) Visual C++ 2008 64-bit command prompt
**3. **Locate directory Pd/doc/6.externs
**4. ** run 'nmake pd_nt' command
**5. ** gives error in locating the libc.lib file
(LINK: fatal error LNK1181: cannot open input file 'C:...\VC\lib\libc.lib'
When I remove this instruction from the makefile, I does not find the kernel32.lib file also.
When I finally remove the former instruction, I get an error creating the library obj1,lib and object obj1,exp as I have 6 unresolved external symbols ex. obj1.ob : error LNK2019: unresolved external symbol __imp_post referenced in function obj1_float
Could someone help me solve these issues and help me succeed in making this external work?
Then, any additional explanation in getting grid to work afterwards?
Any additional info regarding Pd's treatment of externals/libraries etc is appreciated as well.. I just can't get a grip on it,
External (oggread~) compilation problem
Hello all,
After a few weeks of reading, researching, and attempting to find a reliable way to compile externals, I have most simple cases working such as the tutorial objects found from the IEM tutorials and Eric Lyon's book on the subject.
However, trying to compile Oggread~ from the pdogg library (https://goo.gl/WvPLnW) results in an external that fails to load in PD, throwing the error:
"oggread~.pd_darwin: dlopen(/path/to/external/oggread~.pd_darwin, 10): symbol not found: _ov_bitrate referenced from: /path/to/external/oggread~.pd_darwin
Expected in: flat namespace"
the reference to ov_bitrate is contained in vorbisfile.h, and as far as I can tell, has been linked and compiled correctly.
I hate to ask for help from a community I've just joined, but I've been struggling with this for a few weeks on my own to no avail, so absolutely any insight or help would be appreciated.
I've uploaded the files in question below. The compiled external can be found in the build folder, and all vorbis/ogg header files can be found in the libs folder.
Thank you,
James
Pd-extended 0.40.3 released, dedicated to Jamie Tittle
@hans said:
Finally, it's done! The most polished release of Pd yet. We are further refining Pd into a truly powerful and usable programming platform.
http://puredata.org/downloads/
This release is dedicated to Jamie Tittle, aka tigital, who recently died of cancer. He was a long time and key contributor to Gem and Pd in general, even while he was in the hospital undergoing treatment. He is sorely missed in this community, and I am sure by many others.
Some highlights of this release:
* more functional namespace tools ([declare] and [import])
* new appearance designed to enhance readability
* GLSL shader support in Gem
* usability improvements
* on Mac OS X, you can now build "standalone" applications
* standard locations for user-installed externals
* many bug fixesHere's the rough changelog:
next visual appearance designed for readability
default locations for user-installed externals, helpfiles, etc.
GNU/Linux: /usr/local/lib/pd-externals and ~/pd-externals
Mac OS X: /Library/Pd and ~/Library/Pd
Windows: %ProgramFiles%/Common Files/Pd and %UserProfile%/Application Data/Pdlots of standard key bindings added:
Enter/Return for OK
Escape for Cancel
Ctrl/Cmd-W closes all windows
on Mac OS X, Cmd-` cycles thru open windows
on Mac OS X, Cmd-m minimizes windows
Ctrl/Cmd-R raises/lowers Pd window
Ctrl/Cmd-Shift-R shrinks/grows Pd window
Ctrl/Cmd-Shift-L clears Pd window's text console
Ctrl/Cmd-B opens the Help Browseryou can now use "~" in all paths to mean home folder, and on Windows you can use environment variables, lie %UserProfile% in paths
improved Cut/Copy/Paste support for working in object and message boxes
fixed Cut/Copy/Paste for the Pd window's console
[declare] and [import] now sorted out for loading (but much work needs to be done before there namespace support is complete)
"File -> Save As" defaults to the Home folder (~/) on Mac OSX
new patches default to the folder last saved in
included pgp_opengl aka 3dp on GNU/Linux and Mac OS X
'hardware' and 'deprecated' removed from libraries loaded by default
On Debian/Ubuntu, the packages now install into /usr rather than /usr/local
On Mac OS X, you can now build "standalone" applications from the File menu.
bug fixes and clean up of [hid] and mapping externals
included config in Info.plist for the Spotlight Importer
KNOWN BUGS
check http://puredata.info/dev/bugtracker before reporting bugs
Escape, Enter, and Ctrl/Cmd-W don't close the Path and Startup preferences
pdp_opengl is alpha and will definitely crash Pd
loading pdp_opengl will crash Pd if X11 is not open before trying to load it
the GUI runs slower in some situations
The new visual style is very nice indeed,