I have some difficulties to compile Pd-extended-0.43.4
I woold like to write an ebuild for GNU/Gentoo Linux for pd-overlay.
First, i try to compile by hand:
cd pd-extended/pd
./autogen.sh
./configure --enable-jack --prefix=`pwd`/../../install
make
make install
no error in compilation
but when I
cd ../../install/bin
./pd
I have this error:
willy@music-linux-desktop ~/install/bin $ ./pd
disabling real-time priority due to missing pd-watchdog (/home/willy/install/bin/../bin/pd-watchdog)
Error in startup script: couldn't read file "/home/willy/install/bin/../tcl//pd-gui.tcl": no such file or directory
I found a patch for solve this problem (for 0.43.0) at http://sourceforge.net/p/pure-data/patches/380/
application of the first patch make some Hunk failed:
willy@music-linux-desktop ~/pd-extended/pd $ patch < ../../0001-fix-install-targets-add-enable-unix-layout-and-insta.patch
patching file Makefile.am
Hunk #2 FAILED at 50.
1 out of 2 hunks FAILED -- saving rejects to file Makefile.am.rej
patching file configure.ac
Hunk #2 succeeded at 78 (offset -4 lines).
patching file Makefile.am
Hunk #1 FAILED at 5.
1 out of 1 hunk FAILED -- saving rejects to file Makefile.am.rej
patching file Makefile.am
Hunk #1 FAILED at 20.
1 out of 1 hunk FAILED -- saving rejects to file Makefile.am.rej
patching file Makefile.am
Hunk #1 FAILED at 12.
Hunk #2 FAILED at 94.
Hunk #3 FAILED at 109.
Hunk #4 FAILED at 122.
Hunk #5 FAILED at 130.
5 out of 5 hunks FAILED -- saving rejects to file Makefile.am.rej
patching file pd-gui
patching file Makefile.am
Hunk #1 FAILED at 2.
1 out of 1 hunk FAILED -- saving rejects to file Makefile.am.rej
So, I try to write new patch for pd 0.43.4
When I do this, I see that "a/extra/Makefile.am" does not exist anymore.
For doing the patch:
diff -Naur pd_original pd_modified > pd-extended_0.43.4-fix-install-targets.patch
And for apply after:
willy@music-linux-desktop ~/pd-extended/pd $ patch -p1 < ../../pd-extended_0.43.4-fix-install-targets.patch
patching file Makefile.am
patching file configure.ac
patching file po/Makefile.am
patching file src/Makefile.am
patching file src/pd-gui
patching file tcl/Makefile.am
Finally we configure with:
./configure --enable-jack --enable-unix-layout --prefix=`pwd`/../../install
But I still have the same problem:
willy@music-linux-desktop ~/install/bin $ ./pd
disabling real-time priority due to missing pd-watchdog (/home/willy/install/bin/../bin/pd-watchdog)
Error in startup script: couldn't read file "/home/willy/install/bin/../tcl//pd-gui.tcl": no such file or directory
Did I forget something??
The patch
----------
diff -Naur pd_original/Makefile.am pd_modified/Makefile.am
--- pd_original/Makefile.am 2013-01-19 21:02:04.000000000 +0100
+++ pd_modified/Makefile.am 2013-07-31 16:10:20.582094468 +0200
@@ -2,7 +2,7 @@
ACLOCAL_AMFLAGS = -I m4/generated -I m4
CFLAGS += @DEFS@
-EXTRA_SUBDIRS =
+EXTRA_SUBDIRS =
# pkg-config support
pkgconfigdir = $(libdir)/pkgconfig
@@ -29,15 +29,12 @@
# subdirs that are always included in the dist, etc.
DIST_SUBDIRS = asio man po portaudio portmidi src tcl
-BUILT_SOURCES =
+BUILT_SOURCES =
if MSGFMT
BUILT_SOURCES += locales
endif
-## FIXXXME
-## $(pkglibdir) is used throughout the other Makefile.amS
-## simply ignoring the special case for other OSs...
-if LINUX
+if UNIX_LAYOUT
libpddir = $(pkglibdir)
else
libpddir = $(prefix)
@@ -54,6 +51,11 @@
$(INSTALL) -d $(DESTDIR)$(libpddir)/extra
$(INSTALL_DATA) extra/output~.pd extra/output~-help.pd $(DESTDIR)$(libpddir)/extra
$(INSTALL) -d $(DESTDIR)$(libpddir)/startup
+if UNIX_LAYOUT
+# so pd-gui.tcl can find ../bin/pd and pd can find pd-watchdog
+ $(INSTALL) -d $(DESTDIR)$(pkglibdir)
+ $(LN_S) $(prefix)/bin $(DESTDIR)$(pkglibdir)/bin
+endif
# this is at the end because its loooong
# these files go into libpddir defined above
diff -Naur pd_original/configure.ac pd_modified/configure.ac
--- pd_original/configure.ac 2013-01-19 21:02:04.000000000 +0100
+++ pd_modified/configure.ac 2013-07-31 16:11:50.228098604 +0200
@@ -45,6 +45,10 @@
EXTERNAL_CFLAGS="-fPIC"
EXTERNAL_LDFLAGS="-Wl,--export-dynamic -shared -fPIC"
EXTERNAL_EXTENSION=pd_linux
+ # on GNU/Linux use the complicated, UNIX-style install by default
+ if test -z $unix_layout; then
+ unix_layout=yes
+ fi
;;
*mingw*)
WINDOWS=yes
@@ -74,6 +78,12 @@
LDFLAGS="${LDFLAGS} ${ARCH_LDFLAGS}"
fi
+AC_ARG_ENABLE([unix_layout],
+ [AS_HELP_STRING([--enable-unix-layout],
+ [use the "complicated", UNIX-style directory layout for installing the build products using 'make install'])],
+ [unix_layout=$enableval])
+AM_CONDITIONAL(UNIX_LAYOUT, test x$unix_layout = xyes)
+
AM_CONDITIONAL(ANDROID, test x$ANDROID = xyes)
AM_CONDITIONAL(IPHONEOS, test x$IPHONEOS = xyes)
AM_CONDITIONAL(LINUX, test x$LINUX = xyes)
@@ -121,7 +131,7 @@
AC_HEADER_STDC
-dnl Cygwin has sys/soundcard.h but Pd isn't ready for Cygwin since it only
+dnl Cygwin has sys/soundcard.h but Pd isn't ready for Cygwin since it only
dnl includes OSS for UNIX
AC_CHECK_HEADER(sys/soundcard.h, [oss=yes], [oss=no])
AM_CONDITIONAL(OSS, test x$oss = xyes)
@@ -189,7 +199,7 @@
AC_ARG_ENABLE([portaudio],
[AS_HELP_STRING([--disable-portaudio],
[do not use portaudio])],
- [portaudio=$enableval])
+ [portaudio=$enableval])
AM_CONDITIONAL(PORTAUDIO, test x$portaudio = xyes)
dnl portmidi
@@ -260,7 +270,5 @@
AS_IF([test x$windows = xyes], [
AS_IF([test x$asio = xno], [
AC_MSG_RESULT(
-ASIO SDK not found! You need to download asiosdk2.2.zip from:
+ASIO SDK not found! You need to download asiosdk2.2.zip from:
http://www.steinberg.net/en/company/developer.html)])])
-
-
diff -Naur pd_original/po/Makefile.am pd_modified/po/Makefile.am
--- pd_original/po/Makefile.am 2013-01-19 21:02:04.000000000 +0100
+++ pd_modified/po/Makefile.am 2013-07-31 16:15:08.639107759 +0200
@@ -12,14 +12,19 @@
FILES = $(addprefix ../tcl/, $(TCLFILES)) iemgui_dynamic_strings.tcl pd_dynamic_strings.tcl
-# these are the supported languages,
+# these are the supported languages,
ALL_LINGUAS = af az be bg ca cs da de el en_ca en_gb es es_mx eu fr gd gu he hi hu it ja ko lt lv nl pa pt pt_pt ru sk sq sv tr vi zh_cn zh_tw
POFILES = $(ALL_LINGUAS:=.po)
MSGFILES = $(ALL_LINGUAS:=.msg)
TEMPLATE = template.pot
+if UNIX_LAYOUT
libpdpodir = $(pkglibdir)/po
+else
+libpdpodir = $(prefix)/po
+endif
+
libpdpo_DATA = $(MSGFILES)
dist_libpdpo_DATA =
diff -Naur pd_original/src/Makefile.am pd_modified/src/Makefile.am
--- pd_original/src/Makefile.am 2013-01-19 21:02:00.000000000 +0100
+++ pd_modified/src/Makefile.am 2013-07-31 16:17:11.017113405 +0200
@@ -3,19 +3,20 @@
pd_CFLAGS = -DPD -DINSTALL_PREFIX=\"$(prefix)\"
pd_LDFLAGS =
-pdsend_CFLAGS =
-pdreceive_CFLAGS =
-pd_watchdog_CFLAGS =
-LIBS =
+pdsend_CFLAGS =
+pdreceive_CFLAGS =
+pd_watchdog_CFLAGS =
+LIBS =
INCLUDES = @INCLUDES@
SUFFIXES = .@EXTENSION@ .@SHARED_LIB@
bin_PROGRAMS = pd pdsend pdreceive
+bin_SCRIPTS = pd-gui
pdsend_SOURCES = u_pdsend.c
pdreceive_SOURCES = u_pdreceive.c
pd_watchdog_SOURCES = s_watchdog.c
-pd_LDADD =
+pd_LDADD =
pd_SOURCES = g_canvas.c g_graph.c g_text.c g_rtext.c g_array.c g_template.c \
g_io.c g_scalar.c g_traversal.c g_guiconnect.c g_readwrite.c g_editor.c \
g_all_guis.c \
@@ -101,7 +102,6 @@
pd_SOURCES += s_midi_pm.c
endif
-
# FIXXXME
# GNU/HURD, IPHONEOS, ... have no MIDI (not even OSS)
# i think it would be better to add s_midi_dummy.c only if no other midi API can be found
@@ -115,10 +115,7 @@
pd_SOURCES += s_midi_dummy.c
endif
-if LINUX
-libpdbindir = $(pkglibdir)/bin
-libpdbin_DATA =
-libpdbin_PROGRAMS = pd-watchdog pd
+if LINUX
# this flag has to have a single leading "-" for libtool, even though ld uses
# --export-dynamic, and libtool sends -Wl,--export-dynamic to ld...
pd_LDFLAGS += -export-dynamic
@@ -129,7 +126,6 @@
if MACOSX
LIBS += -framework Carbon
pd_CFLAGS += -DMACOSX #kludge, should use auto macro __APPLE__
-bin_SCRIPTS =
bin_PROGRAMS += pd-watchdog
endif
@@ -137,7 +133,6 @@
LIBS += -lwsock32 -lwinmm -lole32
pd_CFLAGS += -DUSEAPI_MMIO -DPD_INTERNAL
pd_SOURCES += s_audio_mmio.c s_midi_mmio.c scandir.c
-bin_SCRIPTS =
endif
if MINGW
diff -Naur pd_original/src/pd-gui pd_modified/src/pd-gui
--- pd_original/src/pd-gui 1970-01-01 01:00:00.000000000 +0100
+++ pd_modified/src/pd-gui 2013-07-31 16:17:39.996114742 +0200
@@ -0,0 +1,4 @@
+#!/bin/sh
+# this script launches Pd by running the GUI first, which then starts pd
+
+`dirname $0`/../lib/pd/tcl/pd-gui.tcl $@
diff -Naur pd_original/tcl/Makefile.am pd_modified/tcl/Makefile.am
--- pd_original/tcl/Makefile.am 2013-01-19 21:01:59.000000000 +0100
+++ pd_modified/tcl/Makefile.am 2013-07-31 16:18:30.255117060 +0200
@@ -2,11 +2,13 @@
SUFFIXES = .tcl
-bin_SCRIPTS = pd-gui.tcl
-
+if UNIX_LAYOUT
libpdtcldir = $(pkglibdir)/tcl
+else
+libpdtcldir = $(prefix)/tcl
+endif
+
dist_libpdtcl_SCRIPTS = pd-gui.tcl
dist_libpdtcl_DATA = apple_events.tcl dialog_canvas.tcl dialog_gatom.tcl dialog_path.tcl pd_bindings.tcl pd_menus.tcl pdwindow.tcl scrollboxwindow.tcl AppMain.tcl dialog_data.tcl dialog_iemgui.tcl dialog_startup.tcl pd_connect.tcl pdtk_array.tcl pkgIndex.tcl wheredoesthisgo.tcl dialog_array.tcl dialog_find.tcl dialog_message.tcl helpbrowser.tcl makeapp.tcl pdtk_canvas.tcl pkg_mkIndex.tcl dialog_audio.tcl dialog_font.tcl dialog_midi.tcl opt_parser.tcl pd_menucommands.tcl pdtk_text.tcl scrollbox.tcl pd_guiprefs.tcl pd.gif
ETAGS_ARGS = $(ETAGS) --language=none --regex="/proc[ \t]+\([^ \t]+\)/\1/" *.tcl
-
--
Willy WOLFF
Two things from me:
* missing a "Pd-extended" theme aka grey filled boxes
* the Apple interface guidelines generally frown on "Apply" buttons like the "Connect" button in the audio/midi dialogs. The expected behavior is that you also connect when you select the device in the drop down, the idea being you don't require 2 steps. At least that's how I would do it. It's a niggle, but thought I'd throw it in.
Oh and in case my poorly formatted last email didn't get through, your donations page is down ...
On Jul 30, 2013, at 6:00 AM, pd-list-request(a)iem.at wrote:
> From: Jonathan Wilkes <jancsika(a)yahoo.com>
> Subject: Re: [PD] Reverse Kickstarter Update
> Date: July 29, 2013 9:47:15 PM EDT
> To: pd-list(a)iem.at
>
>
> Ok, with Dan's help I've now got a quick demo of the dialog preferences for OSX (intel):
> http://puredata.info/Members/jancsika/Pd-with-prefs-0.43.zip/view?searchter…
>
> Turns out the ability to build for ppc arch is no longer supported in recent versions of XCode (if I understand it correctly).
>
> I guess I built without support for any other audio APIs, so the dropdown is permanently empty which is a little weird. Also you need at least tcl/tk 8.5 on your system. But other than that it should work.
>
> If you try it out then me some feedback on the preferences dialog.
--------
Dan Wilcox
@danomatika
danomatika.comrobotcowboy.com
I dont see the point of getting pd dir since we can run several instances of same bin with the shell.
Patrice ColetÂ
-------- Message d'origine --------
De : Jonathan Wilkes <jancsika(a)yahoo.com>
Date : 30/07/2013 19:43 (GMT+00:00)
A : pd-list(a)iem.at
Objet : Re: [PD] get dir of current pd
On 07/30/2013 07:48 AM, yvan volochine wrote:
> On 30/07/13 08:41, Jonathan Wilkes wrote:
>> Ok, I figured out how to do this
>
> and how do you do?
In GNU/Linux on some _distros_ you can check the symlink
/proc/self/exe
If you do a readink from within C in Pd you'll get the absolute
path and name of the executable.
However, if you use the command "readlink" to [shell] I imagine
the readlink binary will look in the mirror and give you its own
name back.
I don't think /proc/self/exe is a requirement of all Linux flavors,
and I don't know what the BSD OSes do, or OSX. So I'm reluctant
to add this to [pdinfo].
Windows has its own function accessible from C to return the full
path and name of the executable.
-Jonathan
>
> y
>
_______________________________________________
Pd-list(a)iem.at mailing list
UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
To everybody, is it possible to run a pd patch with an 8 channel desk on a raspberry pi with an external USB sound card ?
Features used:Â
Raspberry PI: Model BÂ
Audio usb sound card : Tascam us 1800Â http://tascam.com/product/us-1800/
Thanks !
How do we give you money if the page isn't available? :P
On Jul 30, 2013, at 6:00 AM, pd-list-request(a)iem.at wrote:
> From: Jonathan Wilkes <jancsika(a)yahoo.com>
> Subject: Re: [PD] Reverse Kickstarter Update
> Date: July 29, 2013 9:47:15 PM EDT
> To: pd-list(a)iem.at
>
>
> Ok, with Dan's help I've now got a quick demo of the dialog preferences for OSX (intel):
> http://puredata.info/Members/jancsika/Pd-with-prefs-0.43.zip/view?searchter…
>
> Turns out the ability to build for ppc arch is no longer supported in recent versions of XCode (if I understand it correctly).
>
> I guess I built without support for any other audio APIs, so the dropdown is permanently empty which is a little weird. Also you need at least tcl/tk 8.5 on your system. But other than that it should work.
>
> If you try it out then me some feedback on the preferences dialog.
>
> And if you have some money and like what you see, show me some beans and rice: :)
> https://jwilkes.nfhost.com/donations.php
>
> -Jonathan
--------
Dan Wilcox
@danomatika
danomatika.comrobotcowboy.com
Hi List,
Update on the Preferences dialog window for Pd.
* Now it has a "Help" button with a first stab at help patches for
"Audio", "Midi", and "GUI" prefs
* Works in OSX and Windows as well as GNU/Linux
* On OSX, lives in Apple "Preferences" menu
* Looks native on OSX and Windows and looks not-so-terrible under X11
* Includes a general purpose "dropdown" widget that looks native on OSX
and Windows can be used for other parts of Pd
* Includes a "dropdown_by_index" widget to associate a variable with
index instead of label
* precompiled demo binaries to try out:
http://puredata.info/search?SearchableText=pd+with+prefs
1) pdprefswindows - 0.44-3 built on Windows XP. Unzip, find the "bin"
directory and double-click pd to run.
2) pdprefslinux32 - 0.44-3 built with Debian Jessie on 32-bit arch.
untar and run "./pd" in the "pd" directory.
3) pdprefslinux64 - 0.44-3 built with Debian Wheezy on amd64 arch. untar
and run "./pd" in the "pd" directory.
(Note: windows version fixes the "Use multiple devices" button by
greying it out unless your machine supports
multiple cards.)
No OSX app yet, but ini the meantime you can download any of the above,
make clean and try compiling yourself.
***Reverse Kickstarter***
In true "Reverse Kickstarter"[1] fashion, I wanted to wait until I got a
working, cross-platform dialog finished
and only _after_ that ask for money. I set up a "Donate" button on my
webpage which is:
http://www.jonathanwilkes.net
The "Donate" link navigates to an ssl page on my host
(https://jwilkes.nfshost.com) and uses the Stripe API
so payment info never touches my server.[2]
If people have other payment methods they'd like to use to show support
(cryptocurrencies, Paypal, etc.)
just email me.
***More Work***
The GUI preferences should let users save a preset color scheme, and
should also probably let them
define their own.
Also, I know from looking at Pd-l2ork's code that the global color
scheme conflicts with Pd-l2ork's
"per-canvas" color scheme. In pd-extended it just replaces static tcl
colors. I'll work with either or
both projects to find the best way to integrate these color themes with
their existing code. Once
you try it out, I think you'll see that one-click color changes to all
existing and future patches of
a running Pd-instance is very handy.
More ***More Work***:
* improve the "Put" menu array changes I made awhile back
* add methods to pdinfo, canvasinfo, and classinfo
* integrate a Xapian backend into the Search plugin for quicker and
better search results
* test Jack, ALSA, (and Pulse) API latencies
-Jonathan
[1] I just made up the phrase "Reverse Kickstarter" as a way to mean "do
and complete work first, then
ask for funds". I guess I should preemptively find a better term so
that the Kickstarter people don't come
complaining to my inbox. Punchender?
[2] I tried getting a "free" ssl cert for my domain but something got
borked in the process. It turns out
it's $50 bucks to revoke a "free" ssl cert. So rather than go down an
infinite rabbit hole of support from
a cert company I just learned about a few weeks ago, I'm utilizing my
host's method of doing ssl using
their domain name because a) they know (for a living) how to set up ssl,
and b) I've had them for years
and can trust them more than companies whose certificate-granting
business models include the words
"free" or "cheap". (And if they don't include those words, the
certificates are too expensive for me.)