From 99a63a7a0c96b302c25079105b4ac3f77bd4b141 Mon Sep 17 00:00:00 2001 From: Miller Puckette Date: Thu, 24 Jan 2008 00:39:51 +0000 Subject: release 0.41-0 svn path=/trunk/; revision=9157 --- pd/doc/1.manual/x1.htm | 26 ++-- pd/doc/1.manual/x3.htm | 167 +++------------------ pd/doc/1.manual/x5.htm | 50 ++++++ pd/portaudio/include/pa_asio.h | 2 +- pd/portaudio/include/pa_linux_alsa.h | 2 +- pd/portaudio/include/pa_win_wmme.h | 2 +- pd/portaudio/include/portaudio.h | 2 +- pd/portaudio/src/common/pa_allocation.c | 2 +- pd/portaudio/src/common/pa_allocation.h | 2 +- pd/portaudio/src/common/pa_converters.c | 2 +- pd/portaudio/src/common/pa_converters.h | 2 +- pd/portaudio/src/common/pa_cpuload.c | 2 +- pd/portaudio/src/common/pa_cpuload.h | 2 +- pd/portaudio/src/common/pa_debugprint.c | 2 +- pd/portaudio/src/common/pa_dither.c | 2 +- pd/portaudio/src/common/pa_dither.h | 2 +- pd/portaudio/src/common/pa_endianness.h | 2 +- pd/portaudio/src/common/pa_front.c | 2 +- pd/portaudio/src/common/pa_hostapi.h | 2 +- pd/portaudio/src/common/pa_process.c | 2 +- pd/portaudio/src/common/pa_process.h | 2 +- pd/portaudio/src/common/pa_ringbuffer.c | 2 +- pd/portaudio/src/common/pa_ringbuffer.h | 2 +- pd/portaudio/src/common/pa_skeleton.c | 2 +- pd/portaudio/src/common/pa_stream.c | 2 +- pd/portaudio/src/common/pa_stream.h | 2 +- pd/portaudio/src/common/pa_trace.c | 2 +- pd/portaudio/src/common/pa_trace.h | 2 +- pd/portaudio/src/common/pa_util.h | 2 +- pd/portaudio/src/hostapi/alsa/pa_linux_alsa.c | 2 +- pd/portaudio/src/hostapi/asio/pa_asio.cpp | 2 +- .../src/hostapi/coreaudio/pa_mac_core_old.c | 2 +- pd/portaudio/src/hostapi/jack/pa_jack.c | 2 +- pd/portaudio/src/hostapi/oss/pa_unix_oss.c | 2 +- pd/portaudio/src/hostapi/wmme/pa_win_wmme.c | 2 +- pd/portaudio/src/os/mac_osx/pa_mac_hostapis.c | 2 +- pd/portaudio/src/os/unix/pa_unix_hostapis.c | 2 +- pd/portaudio/src/os/unix/pa_unix_util.c | 2 +- pd/portaudio/src/os/unix/pa_unix_util.h | 2 +- pd/portaudio/src/os/win/pa_win_hostapis.c | 2 +- pd/portaudio/src/os/win/pa_win_util.c | 2 +- pd/src/m_pd.h | 2 +- pd/src/notes.txt | 9 +- pd/src/s_loader.c | 37 +++++ pd/src/s_main.c | 31 +--- 45 files changed, 165 insertions(+), 233 deletions(-) diff --git a/pd/doc/1.manual/x1.htm b/pd/doc/1.manual/x1.htm index a9d8caaf..f1f884d1 100644 --- a/pd/doc/1.manual/x1.htm +++ b/pd/doc/1.manual/x1.htm @@ -102,21 +102,19 @@ it from: http://iem.kug.ac.at/GEM .

At least three video processing packages are available for Pd. The oldest is Framestein, by Juha Vehvilainen. This runs on Windows only: http://framestein.org . - -

The newer href="http://zwizwa.fartit.com/pd/pdp/overview.html"> PDP - library, by Tom Schouten, and its extension PiDiP by Yves Degoyon, run well -in linux and has been ported to Windows and MacOS. Video is extremely fast in -PDP, but is currently limited to 240x320 resolution. - -

Mathieu Bouchard has written +in linux and have been ported to Windows and MacOS. +Mathieu Bouchard has written Gridflow , which runs on linux and MacOSX. The mathematical operators are more powerful than in PDP, and the design makes smarter use of cache behavior in modern CPUs. -All this and much more is described in detail at the - -first Pd Convention . +

the Pd extended package, maintained by Hans-Christof Steiner, can be +downloaded from the Pd's +sourceforge site . All this and much more is described in detail on http://puredata.info/.

@@ -125,14 +123,8 @@ Here are some more Pd links (in the order I found them):
Miller Puckette's home page
Guenter Geiger's home page
Mark Dank's home page
-Pd page on Wonk (Klaus)
Johannes M Zmoelnig
- Norbert Math's Pd page
- -Nicolas Lhommet's WikiWikiWeb page for Pd
- Norbert's searchable list of all known -Pd objects
Krzysztof Czaja's MIDI file support
@@ -142,7 +134,7 @@ new, highly detailed help windows
Fernando Pablo Lopez's augmented Pd RPMs from Planet CCRMA
Cyclone - Krzysztof Czaja's Max compatibility library
-On-line book project: +On-line book: Theory and Techniques of Electronic Music
diff --git a/pd/doc/1.manual/x3.htm b/pd/doc/1.manual/x3.htm index 9bc0f537..833d6ac7 100644 --- a/pd/doc/1.manual/x3.htm +++ b/pd/doc/1.manual/x3.htm @@ -17,12 +17,11 @@

-

Pd runs under Irix, Microsoft Windows, Linux, and MacOS 10.2 (Jaguar). -How to get Pd up and running depends on your operating system, -but the overall strategy is the same. -You must first get and install it, and -then untangle whatever problems arise in handling audio and MIDI input -and output, and finally get Pd to meet its real-time obligations reliably. +

Pd runs under Microsoft Windows, Linux, and MacOS (10.2 or later). How to +get Pd up and running depends on your operating system, but the overall strategy +is the same. You must first get and install it, and then untangle whatever +problems arise in handling audio and MIDI input and output, and finally get Pd +to meet its real-time obligations reliably.

Installation instructions are platform-specfic; the following four sections @@ -145,9 +144,8 @@ port, 17-32 the second one, and so on. The midiin, sysexin, midiout objects give you a separate inlet to specify which of the open MIDI port numbers you want. -

System exclusive MIDI message input and output is theoretically supported -in version 0.37 but does not work correctly on windows, even in 0.38. - +

System exclusive MIDI message input and output are theoretically supported +but does not work uniformly across all operating systems..

3.2. Installing Pd in Microsoft Windows

@@ -211,32 +209,17 @@ your situation. (If not, you can read the Pd mailing list archives for recent problems; if you have found a new problem you're welcome to post it to the list.) -

If you're running RedHat or Mandrake you might want to use RPM to install -Pd. For other linux distributions, download the "tar.gz" version and compile -Pd. - -

Getting Pd as an RPM

- -

Download Pd, perhaps from - - http://www.crca.ucsd.edu/~msp/software.html , -to a file such as "pd-0.33-0.i386.rpm". -Open a "shell" window, cd to -the directory containing the file, and type the command, -

-    rpm -i pd-0.33-0.i386.rpm
-
- -

(substituting the real file name.) Then you should be able to type "pd" -to a shell and watch the Pd main window appear. +

Pd is available via the package systems for some linux distributions, +but not always in the most recent version possible. It's relatively easy to +compile your own copy of Pd and that is the approach described here.

Getting Pd as a .tar.gz

Before you start, you might want to check that you have the resources Pd needs. The main things you need are the C compiler, X windows (including -the X development package for Pd to link against) and TK. If you're running -Redhat or Mandrake 7.x or up, I think these are all present by default. -The RedHat X client developer "RPM" package is called XFree86-devel. +the X development package for Pd to link against) and TK. It's almost +always enough to load "tcl-devel" and "tk-devel" packages using yum or +apt-get.

Download Pd, perhaps from @@ -254,7 +237,6 @@ to "pd/src" and type


./configure -
make depend
make

@@ -410,15 +392,8 @@ always compile Pd for yourself, whether to make your own improvements, or possibly so that you can get the newest version before it shows up compiled for Mac OS X. -

To be able to compile Pd, you must have installed Tcl/Tk -specifically in -/Applications/Wish Shell.app -and /Library/Frameworks/Tk.framework and /Library/Frameworks/Tcl.framework. - -

First download and install TK for OSX. I get it from: - -http://tcltkaqua.sourceforge.net/. - +

To be able to compile Pd, you must have Tcl/Tk installed in the standard +places. I think this is true fro all reasoably recent releases of OSX.

Then, just as for linux, just unload pd-whatever.tar.gz into a directory such as ~/pd-0.36-0, cd to pd-0.36-0/src, type "./configure" @@ -446,109 +421,6 @@ as needed. MIDI interface installed. I've seen this done with Midisport devices and I think you just download the OSX driver and follow directions. -

3.5. Installing Pd in IRIX (SGI machines)

- -

(NOTE: as of release 0.35 I haven't had an IRIX machine to compile -Pd on. Soeren Bovbjerg has kindly compiled 0.35 and 0.36 for IRIX; -you can find these at - http://www.cvmt.dk/~sb/ .) - -

Download Pd, which will be a "tar.Z" file. You can unpack this by -typing "zcat [name].tar.Z | tar xf -" to a shell. This creates a directory -named "pd". - -

-Starting with release 0.25, Pd should come in "n32" and "o32" versions. -"o32" is the default and will run on IRIX 5.x and up. "n32" runs faster, -but only on 6.x and up. Also, "externs" have to be updated for n32. The -"pd" executable (bin/pd in the distribution) is a symbolic link to either -"pd-o32" or "pd-n32." - -

NOTE: "externs" appear to be broken in the N32 version... I'm not sure -how long this has been true. If you want to use external objects, you have -to use the O32 version. - -

-If for example you put Pd in ~, the executable program -will be ~/pd/bin/pd. The program looks at its command line to -figure out where it is, so it's best to invoke Pd by its full pathname. -You should always invoke Pd from a Unix shell because many important -messages appear on the standard error. - -

-The simplest way to invoke Pd is to -make an alias in your ".cshrc" file (assuming you use the "c" shell) such as: -

-
-
-    alias pd ~/pd/bin/pd
-
-
-

(assuming your Pd distribution landed in ~, for example). - -

-Pd will open the "default" audio input and output devices, without regard -for whether they are in sync or not. This will be bad if they aren't; use -the "-noadc" or "-nodac" flag to disable either the input or output. Pd is -supposed to handle up to 8 channels of audio in and/or out. (But at least -one user had to recompile Pd on his Onyx to get 8 channels working.) - -

-As to MIDI, Pd simply attempts to open all available MIDI devices for input and -output, which is probably very bad on anything more recent than my Indy. If -any MIDI ports fail to open either for input or output, all MIDI is disabled. - -

Pd has not been fixed to request real-time priority from Irix; it will -compete with all other processes on your machine for CPU time. - -

Audio and MIDI in IRIX

- -

-Pd takes command line arguments to set the number of input and output channels -and the sample rate. These don't affect the SGI's audio settings, which you -have to set separately using the "audio panel." Pd does detect the audio -sample rate if you don't specify one on the command line. - -

-On SGI machines, you have to work to get MIDI running. Before you start Pd, verify -that least one MIDI port is configured open. Pd opens the FIRST MIDI port -that's open. You might want to get rid of the "software" MIDI port if you're -running 6.x. On Indys, the usual practice is to open serial port number 2 -because some systems configure port 1 as "console" by default. You can use the -GUI if you want, or else just type -

-
-    startmidi -d /dev/ttyd2
-
-
- -

to get port 2 speaking MIDI, and - -

-
-    stopmidi
-
-
- -

to stop it. You can test whether MIDI is configured by typing, - -

-
-    ps -dafe | grep midi
-
-
- -

and looking for "startmidi" processes. - -

-It's a good idea to connect your serial port to your MIDI interface before -typing the "startmidi" command, not afterward, at least in 5.x. We use the -Opcode Studio 3 interface but in principle any Mac-compatible one should work. - -

-The O2 apparently has RS232 ports, not RS422. I think SGI's web site says -something about how to deal with this. -

3.6. Preferences and startup options

Pd's behavior may be customized to instruct it where to find files, which @@ -639,13 +511,12 @@ audio configuration flags: -listdev -- list audio and MIDI devices (linux specific audio:) --frags <n> -- specify number of audio fragments (defeats audiobuf) --fragsize <n> -- specify log of fragment size ('blocksize' is better...) -oss -- use ALSA audio drivers -alsa -- use ALSA audio drivers -pa -- use portaudio (experimental version 19) --alsadev <n> ----- obsolete: use -audiodev --32bit ---- (probably obsolete) -- use 32 bit OSS extension +-alsadev <n> -- obsolete: use -audiodev +-32bit -- (probably obsolete) -- use 32 bit OSS extension +-alsaadd <dev> -- add a device to the ALSA device list (Windows specific audio:) -mmio -- use MMIO drivers and API @@ -658,6 +529,7 @@ MIDI configuration flags: -nomidiin -- suppress MIDI input -nomidiout -- suppress MIDI output -nomidi -- suppress MIDI input and output +-alsamidi -- use ALSA midi API general flags: -path <path> -- add to file search path @@ -678,6 +550,7 @@ general flags: -send "msg..." -- send a message at startup (after patches are loaded) -rt or -realtime -- use real-time priority (needs root privilege) -nrt -- don't use real-time priority +-nosleep -- never relinquish CPU (only for multiprocessors!) diff --git a/pd/doc/1.manual/x5.htm b/pd/doc/1.manual/x5.htm index ab950b9e..70744f90 100644 --- a/pd/doc/1.manual/x5.htm +++ b/pd/doc/1.manual/x5.htm @@ -20,6 +20,56 @@

5.1. release notes

+

------------------ 0.41 ---------------------------- + +

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

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

added an experimental callback scheduler. This might reduce latency in +MacOS and/or Microsoft, although I haven't seen that actually happen yet. + +

removed limitation on huge messages from text files; this prevented long +"data" arrays from reloading from disk correctly. + +

fixed crash bug closing patches with open GOPs. + +

changed selection strategy so that, right after duplicating a collection +of objects, clicking tends to select an already-selected object. + +

the cursor changes slightly more apprpriately when switching between edit +to run modes. + +

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

limited window sizes to that of the screen (otherwise, on Mac OS, it's +impossible to resize them.) + +

fixed "startup" dialogs to allow unlimited "path" and "lib" entries + +

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

made IEM Guis respect "-font" flag and friends. New startup flags: +"-font-face" (badly named); "-font-size" sysnonym of "-font". (Large patch from +HC). + +

String overflow protection here and there. + +

migrated to ".net" compiler ("VC 2005", a free download). + +

------------------ 0.40-1 --------------------------

Fixed "declare" which wasn't working properly yet in 0.40-0, and diff --git a/pd/portaudio/include/pa_asio.h b/pd/portaudio/include/pa_asio.h index 47b69593..e6865833 100644 --- a/pd/portaudio/include/pa_asio.h +++ b/pd/portaudio/include/pa_asio.h @@ -1,7 +1,7 @@ #ifndef PA_ASIO_H #define PA_ASIO_H /* - * $Id: pa_asio.h,v 1.4 2008-01-16 21:54:08 millerpuckette Exp $ + * $Id: pa_asio.h,v 1.5 2008-01-24 00:39:50 millerpuckette Exp $ * PortAudio Portable Real-Time Audio Library * ASIO specific extensions * diff --git a/pd/portaudio/include/pa_linux_alsa.h b/pd/portaudio/include/pa_linux_alsa.h index 40921564..dd59fcfc 100644 --- a/pd/portaudio/include/pa_linux_alsa.h +++ b/pd/portaudio/include/pa_linux_alsa.h @@ -2,7 +2,7 @@ #define PA_LINUX_ALSA_H /* - * $Id: pa_linux_alsa.h,v 1.4 2008-01-16 21:54:08 millerpuckette Exp $ + * $Id: pa_linux_alsa.h,v 1.5 2008-01-24 00:39:50 millerpuckette Exp $ * PortAudio Portable Real-Time Audio Library * ALSA-specific extensions * diff --git a/pd/portaudio/include/pa_win_wmme.h b/pd/portaudio/include/pa_win_wmme.h index e1c0da7a..104c427b 100644 --- a/pd/portaudio/include/pa_win_wmme.h +++ b/pd/portaudio/include/pa_win_wmme.h @@ -1,7 +1,7 @@ #ifndef PA_WIN_WMME_H #define PA_WIN_WMME_H /* - * $Id: pa_win_wmme.h,v 1.4 2008-01-16 21:54:08 millerpuckette Exp $ + * $Id: pa_win_wmme.h,v 1.5 2008-01-24 00:39:50 millerpuckette Exp $ * PortAudio Portable Real-Time Audio Library * MME specific extensions * diff --git a/pd/portaudio/include/portaudio.h b/pd/portaudio/include/portaudio.h index 3a2f1f6e..cda1742e 100644 --- a/pd/portaudio/include/portaudio.h +++ b/pd/portaudio/include/portaudio.h @@ -2,7 +2,7 @@ #ifndef PORTAUDIO_H #define PORTAUDIO_H /* - * $Id: portaudio.h,v 1.4 2008-01-16 21:54:08 millerpuckette Exp $ + * $Id: portaudio.h,v 1.5 2008-01-24 00:39:50 millerpuckette Exp $ * PortAudio Portable Real-Time Audio Library * PortAudio API Header File * Latest version available at: http://www.portaudio.com/ diff --git a/pd/portaudio/src/common/pa_allocation.c b/pd/portaudio/src/common/pa_allocation.c index d5696505..d1c68a86 100644 --- a/pd/portaudio/src/common/pa_allocation.c +++ b/pd/portaudio/src/common/pa_allocation.c @@ -1,5 +1,5 @@ /* - * $Id: pa_allocation.c,v 1.4 2008-01-16 21:54:09 millerpuckette Exp $ + * $Id: pa_allocation.c,v 1.5 2008-01-24 00:39:50 millerpuckette Exp $ * Portable Audio I/O Library allocation group implementation * memory allocation group for tracking allocation groups * diff --git a/pd/portaudio/src/common/pa_allocation.h b/pd/portaudio/src/common/pa_allocation.h index 1a7586c3..d2725b2d 100644 --- a/pd/portaudio/src/common/pa_allocation.h +++ b/pd/portaudio/src/common/pa_allocation.h @@ -1,7 +1,7 @@ #ifndef PA_ALLOCATION_H #define PA_ALLOCATION_H /* - * $Id: pa_allocation.h,v 1.4 2008-01-16 21:54:09 millerpuckette Exp $ + * $Id: pa_allocation.h,v 1.5 2008-01-24 00:39:50 millerpuckette Exp $ * Portable Audio I/O Library allocation context header * memory allocation context for tracking allocation groups * diff --git a/pd/portaudio/src/common/pa_converters.c b/pd/portaudio/src/common/pa_converters.c index df6d4e45..6a887086 100644 --- a/pd/portaudio/src/common/pa_converters.c +++ b/pd/portaudio/src/common/pa_converters.c @@ -1,5 +1,5 @@ /* - * $Id: pa_converters.c,v 1.4 2008-01-16 21:54:09 millerpuckette Exp $ + * $Id: pa_converters.c,v 1.5 2008-01-24 00:39:50 millerpuckette Exp $ * Portable Audio I/O Library sample conversion mechanism * * Based on the Open Source API proposed by Ross Bencina diff --git a/pd/portaudio/src/common/pa_converters.h b/pd/portaudio/src/common/pa_converters.h index cde2af7d..89e1d962 100644 --- a/pd/portaudio/src/common/pa_converters.h +++ b/pd/portaudio/src/common/pa_converters.h @@ -1,7 +1,7 @@ #ifndef PA_CONVERTERS_H #define PA_CONVERTERS_H /* - * $Id: pa_converters.h,v 1.4 2008-01-16 21:54:09 millerpuckette Exp $ + * $Id: pa_converters.h,v 1.5 2008-01-24 00:39:50 millerpuckette Exp $ * Portable Audio I/O Library sample conversion mechanism * * Based on the Open Source API proposed by Ross Bencina diff --git a/pd/portaudio/src/common/pa_cpuload.c b/pd/portaudio/src/common/pa_cpuload.c index e07b4561..111d9df0 100644 --- a/pd/portaudio/src/common/pa_cpuload.c +++ b/pd/portaudio/src/common/pa_cpuload.c @@ -1,5 +1,5 @@ /* - * $Id: pa_cpuload.c,v 1.4 2008-01-16 21:54:09 millerpuckette Exp $ + * $Id: pa_cpuload.c,v 1.5 2008-01-24 00:39:50 millerpuckette Exp $ * Portable Audio I/O Library CPU Load measurement functions * Portable CPU load measurement facility. * diff --git a/pd/portaudio/src/common/pa_cpuload.h b/pd/portaudio/src/common/pa_cpuload.h index 66923dab..a57d64ce 100644 --- a/pd/portaudio/src/common/pa_cpuload.h +++ b/pd/portaudio/src/common/pa_cpuload.h @@ -1,7 +1,7 @@ #ifndef PA_CPULOAD_H #define PA_CPULOAD_H /* - * $Id: pa_cpuload.h,v 1.4 2008-01-16 21:54:09 millerpuckette Exp $ + * $Id: pa_cpuload.h,v 1.5 2008-01-24 00:39:50 millerpuckette Exp $ * Portable Audio I/O Library CPU Load measurement functions * Portable CPU load measurement facility. * diff --git a/pd/portaudio/src/common/pa_debugprint.c b/pd/portaudio/src/common/pa_debugprint.c index e85696ba..de9cc487 100644 --- a/pd/portaudio/src/common/pa_debugprint.c +++ b/pd/portaudio/src/common/pa_debugprint.c @@ -1,5 +1,5 @@ /* - * $Id: pa_debugprint.c,v 1.4 2008-01-16 21:54:09 millerpuckette Exp $ + * $Id: pa_debugprint.c,v 1.5 2008-01-24 00:39:50 millerpuckette Exp $ * Portable Audio I/O Library Multi-Host API front end * Validate function parameters and manage multiple host APIs. * diff --git a/pd/portaudio/src/common/pa_dither.c b/pd/portaudio/src/common/pa_dither.c index a09317a6..6d769ea2 100644 --- a/pd/portaudio/src/common/pa_dither.c +++ b/pd/portaudio/src/common/pa_dither.c @@ -1,5 +1,5 @@ /* - * $Id: pa_dither.c,v 1.4 2008-01-16 21:54:09 millerpuckette Exp $ + * $Id: pa_dither.c,v 1.5 2008-01-24 00:39:50 millerpuckette Exp $ * Portable Audio I/O Library triangular dither generator * * Based on the Open Source API proposed by Ross Bencina diff --git a/pd/portaudio/src/common/pa_dither.h b/pd/portaudio/src/common/pa_dither.h index e6d7fae9..aaa71554 100644 --- a/pd/portaudio/src/common/pa_dither.h +++ b/pd/portaudio/src/common/pa_dither.h @@ -1,7 +1,7 @@ #ifndef PA_DITHER_H #define PA_DITHER_H /* - * $Id: pa_dither.h,v 1.4 2008-01-16 21:54:09 millerpuckette Exp $ + * $Id: pa_dither.h,v 1.5 2008-01-24 00:39:50 millerpuckette Exp $ * Portable Audio I/O Library triangular dither generator * * Based on the Open Source API proposed by Ross Bencina diff --git a/pd/portaudio/src/common/pa_endianness.h b/pd/portaudio/src/common/pa_endianness.h index 6fd0e151..9b56738d 100644 --- a/pd/portaudio/src/common/pa_endianness.h +++ b/pd/portaudio/src/common/pa_endianness.h @@ -1,7 +1,7 @@ #ifndef PA_ENDIANNESS_H #define PA_ENDIANNESS_H /* - * $Id: pa_endianness.h,v 1.4 2008-01-16 21:54:09 millerpuckette Exp $ + * $Id: pa_endianness.h,v 1.5 2008-01-24 00:39:50 millerpuckette Exp $ * Portable Audio I/O Library current platform endianness macros * * Based on the Open Source API proposed by Ross Bencina diff --git a/pd/portaudio/src/common/pa_front.c b/pd/portaudio/src/common/pa_front.c index c6b379ec..cf6c0cdc 100644 --- a/pd/portaudio/src/common/pa_front.c +++ b/pd/portaudio/src/common/pa_front.c @@ -1,5 +1,5 @@ /* - * $Id: pa_front.c,v 1.4 2008-01-16 21:54:09 millerpuckette Exp $ + * $Id: pa_front.c,v 1.5 2008-01-24 00:39:50 millerpuckette Exp $ * Portable Audio I/O Library Multi-Host API front end * Validate function parameters and manage multiple host APIs. * diff --git a/pd/portaudio/src/common/pa_hostapi.h b/pd/portaudio/src/common/pa_hostapi.h index 09926f84..7d515c9a 100644 --- a/pd/portaudio/src/common/pa_hostapi.h +++ b/pd/portaudio/src/common/pa_hostapi.h @@ -1,7 +1,7 @@ #ifndef PA_HOSTAPI_H #define PA_HOSTAPI_H /* - * $Id: pa_hostapi.h,v 1.4 2008-01-16 21:54:09 millerpuckette Exp $ + * $Id: pa_hostapi.h,v 1.5 2008-01-24 00:39:50 millerpuckette Exp $ * Portable Audio I/O Library * host api representation * diff --git a/pd/portaudio/src/common/pa_process.c b/pd/portaudio/src/common/pa_process.c index befa876d..35ec46fb 100644 --- a/pd/portaudio/src/common/pa_process.c +++ b/pd/portaudio/src/common/pa_process.c @@ -1,5 +1,5 @@ /* - * $Id: pa_process.c,v 1.4 2008-01-16 21:54:09 millerpuckette Exp $ + * $Id: pa_process.c,v 1.5 2008-01-24 00:39:50 millerpuckette Exp $ * Portable Audio I/O Library * streamCallback <-> host buffer processing adapter * diff --git a/pd/portaudio/src/common/pa_process.h b/pd/portaudio/src/common/pa_process.h index 9f1206a7..dc75a5b1 100644 --- a/pd/portaudio/src/common/pa_process.h +++ b/pd/portaudio/src/common/pa_process.h @@ -1,7 +1,7 @@ #ifndef PA_PROCESS_H #define PA_PROCESS_H /* - * $Id: pa_process.h,v 1.4 2008-01-16 21:54:09 millerpuckette Exp $ + * $Id: pa_process.h,v 1.5 2008-01-24 00:39:50 millerpuckette Exp $ * Portable Audio I/O Library callback buffer processing adapters * * Based on the Open Source API proposed by Ross Bencina diff --git a/pd/portaudio/src/common/pa_ringbuffer.c b/pd/portaudio/src/common/pa_ringbuffer.c index 19b7fcdc..61559387 100644 --- a/pd/portaudio/src/common/pa_ringbuffer.c +++ b/pd/portaudio/src/common/pa_ringbuffer.c @@ -1,5 +1,5 @@ /* - * $Id: pa_ringbuffer.c,v 1.4 2008-01-16 21:54:09 millerpuckette Exp $ + * $Id: pa_ringbuffer.c,v 1.5 2008-01-24 00:39:50 millerpuckette Exp $ * Portable Audio I/O Library * Ring Buffer utility. * diff --git a/pd/portaudio/src/common/pa_ringbuffer.h b/pd/portaudio/src/common/pa_ringbuffer.h index 15a39b87..8cb820d6 100644 --- a/pd/portaudio/src/common/pa_ringbuffer.h +++ b/pd/portaudio/src/common/pa_ringbuffer.h @@ -1,7 +1,7 @@ #ifndef PA_RINGBUFFER_H #define PA_RINGBUFFER_H /* - * $Id: pa_ringbuffer.h,v 1.4 2008-01-16 21:54:09 millerpuckette Exp $ + * $Id: pa_ringbuffer.h,v 1.5 2008-01-24 00:39:50 millerpuckette Exp $ * Portable Audio I/O Library * Ring Buffer utility. * diff --git a/pd/portaudio/src/common/pa_skeleton.c b/pd/portaudio/src/common/pa_skeleton.c index 6dfcd444..7043a56f 100644 --- a/pd/portaudio/src/common/pa_skeleton.c +++ b/pd/portaudio/src/common/pa_skeleton.c @@ -1,5 +1,5 @@ /* - * $Id: pa_skeleton.c,v 1.4 2008-01-16 21:54:09 millerpuckette Exp $ + * $Id: pa_skeleton.c,v 1.5 2008-01-24 00:39:50 millerpuckette Exp $ * Portable Audio I/O Library skeleton implementation * demonstrates how to use the common functions to implement support * for a host API diff --git a/pd/portaudio/src/common/pa_stream.c b/pd/portaudio/src/common/pa_stream.c index a4d0de6e..6d6d897c 100644 --- a/pd/portaudio/src/common/pa_stream.c +++ b/pd/portaudio/src/common/pa_stream.c @@ -1,5 +1,5 @@ /* - * $Id: pa_stream.c,v 1.4 2008-01-16 21:54:09 millerpuckette Exp $ + * $Id: pa_stream.c,v 1.5 2008-01-24 00:39:50 millerpuckette Exp $ * Portable Audio I/O Library * * diff --git a/pd/portaudio/src/common/pa_stream.h b/pd/portaudio/src/common/pa_stream.h index 98dcf489..17171713 100644 --- a/pd/portaudio/src/common/pa_stream.h +++ b/pd/portaudio/src/common/pa_stream.h @@ -1,7 +1,7 @@ #ifndef PA_STREAM_H #define PA_STREAM_H /* - * $Id: pa_stream.h,v 1.4 2008-01-16 21:54:09 millerpuckette Exp $ + * $Id: pa_stream.h,v 1.5 2008-01-24 00:39:50 millerpuckette Exp $ * Portable Audio I/O Library * stream interface * diff --git a/pd/portaudio/src/common/pa_trace.c b/pd/portaudio/src/common/pa_trace.c index 9afe70e3..21ace1c3 100644 --- a/pd/portaudio/src/common/pa_trace.c +++ b/pd/portaudio/src/common/pa_trace.c @@ -1,5 +1,5 @@ /* - * $Id: pa_trace.c,v 1.4 2008-01-16 21:54:09 millerpuckette Exp $ + * $Id: pa_trace.c,v 1.5 2008-01-24 00:39:50 millerpuckette Exp $ * Portable Audio I/O Library Trace Facility * Store trace information in real-time for later printing. * diff --git a/pd/portaudio/src/common/pa_trace.h b/pd/portaudio/src/common/pa_trace.h index 7fb7a903..c0d97b17 100644 --- a/pd/portaudio/src/common/pa_trace.h +++ b/pd/portaudio/src/common/pa_trace.h @@ -1,7 +1,7 @@ #ifndef PA_TRACE_H #define PA_TRACE_H /* - * $Id: pa_trace.h,v 1.4 2008-01-16 21:54:09 millerpuckette Exp $ + * $Id: pa_trace.h,v 1.5 2008-01-24 00:39:50 millerpuckette Exp $ * Portable Audio I/O Library Trace Facility * Store trace information in real-time for later printing. * diff --git a/pd/portaudio/src/common/pa_util.h b/pd/portaudio/src/common/pa_util.h index 060394d4..fbfd3bc4 100644 --- a/pd/portaudio/src/common/pa_util.h +++ b/pd/portaudio/src/common/pa_util.h @@ -1,7 +1,7 @@ #ifndef PA_UTIL_H #define PA_UTIL_H /* - * $Id: pa_util.h,v 1.4 2008-01-16 21:54:09 millerpuckette Exp $ + * $Id: pa_util.h,v 1.5 2008-01-24 00:39:50 millerpuckette Exp $ * Portable Audio I/O Library implementation utilities header * common implementation utilities and interfaces * diff --git a/pd/portaudio/src/hostapi/alsa/pa_linux_alsa.c b/pd/portaudio/src/hostapi/alsa/pa_linux_alsa.c index 653eb94a..482a04fa 100644 --- a/pd/portaudio/src/hostapi/alsa/pa_linux_alsa.c +++ b/pd/portaudio/src/hostapi/alsa/pa_linux_alsa.c @@ -1,5 +1,5 @@ /* - * $Id: pa_linux_alsa.c,v 1.4 2008-01-16 21:54:09 millerpuckette Exp $ + * $Id: pa_linux_alsa.c,v 1.5 2008-01-24 00:39:50 millerpuckette Exp $ * PortAudio Portable Real-Time Audio Library * Latest Version at: http://www.portaudio.com * ALSA implementation by Joshua Haberman and Arve Knudsen diff --git a/pd/portaudio/src/hostapi/asio/pa_asio.cpp b/pd/portaudio/src/hostapi/asio/pa_asio.cpp index 262a634d..472a98f7 100644 --- a/pd/portaudio/src/hostapi/asio/pa_asio.cpp +++ b/pd/portaudio/src/hostapi/asio/pa_asio.cpp @@ -1,5 +1,5 @@ /* - * $Id: pa_asio.cpp,v 1.4 2008-01-16 21:54:09 millerpuckette Exp $ + * $Id: pa_asio.cpp,v 1.5 2008-01-24 00:39:50 millerpuckette Exp $ * Portable Audio I/O Library for ASIO Drivers * * Author: Stephane Letz diff --git a/pd/portaudio/src/hostapi/coreaudio/pa_mac_core_old.c b/pd/portaudio/src/hostapi/coreaudio/pa_mac_core_old.c index df119484..ed8cfbae 100644 --- a/pd/portaudio/src/hostapi/coreaudio/pa_mac_core_old.c +++ b/pd/portaudio/src/hostapi/coreaudio/pa_mac_core_old.c @@ -1,5 +1,5 @@ /* - * $Id: pa_mac_core_old.c,v 1.4 2008-01-16 21:54:09 millerpuckette Exp $ + * $Id: pa_mac_core_old.c,v 1.5 2008-01-24 00:39:51 millerpuckette Exp $ * pa_mac_core.c * Implementation of PortAudio for Mac OS X CoreAudio * diff --git a/pd/portaudio/src/hostapi/jack/pa_jack.c b/pd/portaudio/src/hostapi/jack/pa_jack.c index e2f43353..6bdfcfd4 100644 --- a/pd/portaudio/src/hostapi/jack/pa_jack.c +++ b/pd/portaudio/src/hostapi/jack/pa_jack.c @@ -1,5 +1,5 @@ /* - * $Id: pa_jack.c,v 1.4 2008-01-16 21:54:09 millerpuckette Exp $ + * $Id: pa_jack.c,v 1.5 2008-01-24 00:39:51 millerpuckette Exp $ * PortAudio Portable Real-Time Audio Library * Latest Version at: http://www.portaudio.com * JACK Implementation by Joshua Haberman diff --git a/pd/portaudio/src/hostapi/oss/pa_unix_oss.c b/pd/portaudio/src/hostapi/oss/pa_unix_oss.c index 34c8d220..92a2a654 100644 --- a/pd/portaudio/src/hostapi/oss/pa_unix_oss.c +++ b/pd/portaudio/src/hostapi/oss/pa_unix_oss.c @@ -1,5 +1,5 @@ /* - * $Id: pa_unix_oss.c,v 1.4 2008-01-16 21:54:09 millerpuckette Exp $ + * $Id: pa_unix_oss.c,v 1.5 2008-01-24 00:39:51 millerpuckette Exp $ * PortAudio Portable Real-Time Audio Library * Latest Version at: http://www.portaudio.com * OSS implementation by: diff --git a/pd/portaudio/src/hostapi/wmme/pa_win_wmme.c b/pd/portaudio/src/hostapi/wmme/pa_win_wmme.c index e754bb3f..efa05d76 100644 --- a/pd/portaudio/src/hostapi/wmme/pa_win_wmme.c +++ b/pd/portaudio/src/hostapi/wmme/pa_win_wmme.c @@ -1,5 +1,5 @@ /* - * $Id: pa_win_wmme.c,v 1.4 2008-01-16 21:54:09 millerpuckette Exp $ + * $Id: pa_win_wmme.c,v 1.5 2008-01-24 00:39:51 millerpuckette Exp $ * pa_win_wmme.c * Implementation of PortAudio for Windows MultiMedia Extensions (WMME) * diff --git a/pd/portaudio/src/os/mac_osx/pa_mac_hostapis.c b/pd/portaudio/src/os/mac_osx/pa_mac_hostapis.c index 5e1dfb1e..2e964a60 100644 --- a/pd/portaudio/src/os/mac_osx/pa_mac_hostapis.c +++ b/pd/portaudio/src/os/mac_osx/pa_mac_hostapis.c @@ -1,5 +1,5 @@ /* - * $Id: pa_mac_hostapis.c,v 1.4 2008-01-16 21:54:09 millerpuckette Exp $ + * $Id: pa_mac_hostapis.c,v 1.5 2008-01-24 00:39:51 millerpuckette Exp $ * Portable Audio I/O Library Macintosh initialization table * * Based on the Open Source API proposed by Ross Bencina diff --git a/pd/portaudio/src/os/unix/pa_unix_hostapis.c b/pd/portaudio/src/os/unix/pa_unix_hostapis.c index 0ec69bc3..98617b0a 100644 --- a/pd/portaudio/src/os/unix/pa_unix_hostapis.c +++ b/pd/portaudio/src/os/unix/pa_unix_hostapis.c @@ -1,5 +1,5 @@ /* - * $Id: pa_unix_hostapis.c,v 1.4 2008-01-16 21:54:09 millerpuckette Exp $ + * $Id: pa_unix_hostapis.c,v 1.5 2008-01-24 00:39:51 millerpuckette Exp $ * Portable Audio I/O Library UNIX initialization table * * Based on the Open Source API proposed by Ross Bencina diff --git a/pd/portaudio/src/os/unix/pa_unix_util.c b/pd/portaudio/src/os/unix/pa_unix_util.c index ab7aba9e..c15270cc 100644 --- a/pd/portaudio/src/os/unix/pa_unix_util.c +++ b/pd/portaudio/src/os/unix/pa_unix_util.c @@ -1,5 +1,5 @@ /* - * $Id: pa_unix_util.c,v 1.4 2008-01-16 21:54:09 millerpuckette Exp $ + * $Id: pa_unix_util.c,v 1.5 2008-01-24 00:39:51 millerpuckette Exp $ * Portable Audio I/O Library * UNIX platform-specific support functions * diff --git a/pd/portaudio/src/os/unix/pa_unix_util.h b/pd/portaudio/src/os/unix/pa_unix_util.h index cb75512e..96a628af 100644 --- a/pd/portaudio/src/os/unix/pa_unix_util.h +++ b/pd/portaudio/src/os/unix/pa_unix_util.h @@ -1,5 +1,5 @@ /* - * $Id: pa_unix_util.h,v 1.4 2008-01-16 21:54:09 millerpuckette Exp $ + * $Id: pa_unix_util.h,v 1.5 2008-01-24 00:39:51 millerpuckette Exp $ * Portable Audio I/O Library * UNIX platform-specific support functions * diff --git a/pd/portaudio/src/os/win/pa_win_hostapis.c b/pd/portaudio/src/os/win/pa_win_hostapis.c index 86761019..a33cdcba 100644 --- a/pd/portaudio/src/os/win/pa_win_hostapis.c +++ b/pd/portaudio/src/os/win/pa_win_hostapis.c @@ -1,5 +1,5 @@ /* - * $Id: pa_win_hostapis.c,v 1.4 2008-01-16 21:54:09 millerpuckette Exp $ + * $Id: pa_win_hostapis.c,v 1.5 2008-01-24 00:39:51 millerpuckette Exp $ * Portable Audio I/O Library Windows initialization table * * Based on the Open Source API proposed by Ross Bencina diff --git a/pd/portaudio/src/os/win/pa_win_util.c b/pd/portaudio/src/os/win/pa_win_util.c index 9e414c57..f304c481 100644 --- a/pd/portaudio/src/os/win/pa_win_util.c +++ b/pd/portaudio/src/os/win/pa_win_util.c @@ -1,5 +1,5 @@ /* - * $Id: pa_win_util.c,v 1.4 2008-01-16 21:54:09 millerpuckette Exp $ + * $Id: pa_win_util.c,v 1.5 2008-01-24 00:39:51 millerpuckette Exp $ * Portable Audio I/O Library * Win32 platform-specific support functions * diff --git a/pd/src/m_pd.h b/pd/src/m_pd.h index e7417da7..f494ff52 100644 --- a/pd/src/m_pd.h +++ b/pd/src/m_pd.h @@ -11,7 +11,7 @@ extern "C" { #define PD_MAJOR_VERSION 0 #define PD_MINOR_VERSION 41 #define PD_BUGFIX_VERSION 0 -#define PD_TEST_VERSION "test11" +#define PD_TEST_VERSION "" /* old name for "MSW" flag -- we have to take it for the sake of many old "nmakefiles" for externs, which will define NT and not MSW */ diff --git a/pd/src/notes.txt b/pd/src/notes.txt index b00b03da..168bd184 100644 --- a/pd/src/notes.txt +++ b/pd/src/notes.txt @@ -1,11 +1,4 @@ ---------------- dolist -------------------- -fixed crash bug closing patches with open GOPs -fixed PC device counting problem (first device invoked by -audiodev 0) -fixed MSTACKSIZE limitation in m_binbuf.c -fixed so that if more than one object is selected, clicking prefers to - "hit" a selected one (better dragging after "duplicate") - - test: compile on various versions of linux windows: @@ -56,6 +49,8 @@ real-time spectrum grapher document ||, |, etc, better features: +change config.h to #ifdef _MSC_VER (include MSW fake) else include a real one +stick snprintf alias in the MSW fake. flag to prevent unlocking patches clickless connection (hit 'c' key? see Bouchard paper) messages to suppress menus&accelerators, and invisibilize Pd window diff --git a/pd/src/s_loader.c b/pd/src/s_loader.c index 4788c13c..aac50898 100644 --- a/pd/src/s_loader.c +++ b/pd/src/s_loader.c @@ -20,6 +20,9 @@ #include "m_pd.h" #include "s_stuff.h" #include +#ifdef _MSC_VER /* This is only for Microsoft's compiler, not cygwin, e.g. */ +#define snprintf sprintf_s +#endif typedef void (*t_xxx)(void); @@ -238,3 +241,37 @@ int sys_load_lib(t_canvas *canvas, char *classname) return ok; } +int sys_run_scheduler(const char *externalschedlibname, + const char *sys_extraflagsstring) +{ + typedef int (*t_externalschedlibmain)(const char *); + t_externalschedlibmain externalmainfunc; + char filename[MAXPDSTRING]; + snprintf(filename, sizeof(filename), "%s.%s", externalschedlibname, + sys_dllextent); + sys_bashfilename(filename, filename); +#ifdef MSW + { + HINSTANCE ntdll = LoadLibrary(filename); + if (!ntdll) + { + post("%s: couldn't load external scheduler lib ", filename); + return (0); + } + externalmainfunc = + (t_externalschedlibmain)GetProcAddress(ntdll, "main"); + } +#else + { + void *dlobj = dlopen(filename, RTLD_NOW | RTLD_GLOBAL); + if (!dlobj) + { + post("%s: %s", filename, dlerror()); + return (0); + } + externalmainfunc = (t_externalschedlibmain)dlsym(dlobj, + "pd_extern_sched"); + } +#endif + return((*externalmainfunc)(sys_extraflagsstring)); +} diff --git a/pd/src/s_main.c b/pd/src/s_main.c index d8d8602d..877ed41f 100644 --- a/pd/src/s_main.c +++ b/pd/src/s_main.c @@ -77,7 +77,8 @@ int sys_externalschedlib; char sys_externalschedlibname[MAXPDSTRING]; int sys_extraflags; char sys_extraflagsstring[MAXPDSTRING]; - +int sys_run_scheduler(const char *externalschedlibname, + const char *sys_extraflagsstring); /* here the "-1" counts signify that the corresponding vector hasn't been specified in command line arguments; sys_set_audio_settings will detect it @@ -168,7 +169,11 @@ int sys_fontheight(int fontsize) } int sys_defaultfont; +#ifdef MSW +#define DEFAULTFONT 12 +#else #define DEFAULTFONT 10 +#endif static void openit(const char *dirname, const char *filename) { @@ -291,28 +296,8 @@ int sys_main(int argc, char **argv) if (sys_startgui(sys_guidir->s_name)) /* start the gui */ return(1); if (sys_externalschedlib) - { -#ifdef MSW - typedef int (*t_externalschedlibmain)(char *); - t_externalschedlibmain externalmainfunc; - HINSTANCE ntdll; - char filename[MAXPDSTRING]; - - snprintf(filename, sizeof(filename), "%s.dll", sys_externalschedlibname); - sys_bashfilename(filename, filename); - ntdll = LoadLibrary(filename); - if (!ntdll) - { - post("%s: couldn't load external scheduler lib ", filename); - return (0); - } - externalmainfunc = (t_externalschedlibmain)GetProcAddress(ntdll, - "main"); - return((*externalmainfunc)(sys_extraflagsstring)); -#else - return (0); -#endif - } + return (sys_run_scheduler(sys_externalschedlibname, + sys_extraflagsstring)); else { /* open audio and MIDI */ -- cgit v1.2.1