Calculation Frame Size --\> Latency issues
Hi everybody,
I use PD as part of my PhD project. Since audio/haptic asynchronity is an issue I have to keep latency down. My test subjects have to press buttons and virutally instantly hear the sound they triggered. The sounds are stored in arrays and played back using tabplay~
I have just checked the delay between the press of a button and the resulting sound. The buttons are connected to my computer using a custom microcontroller board which is quite common at my university and send the trigger command to a PD comport object. The baud rate is set to 230400 bps and only one byte is needed as command. Latency of the entire button-microcontroller-serial output should be way below 1 ms.
For sound output I use a Lexicon Lambda USB interface at 96000 kHz and 5 ms latency.
When I monitor the delay between physical trigger and output I get latency times ranging from just under 10 ms to over 25 ms. More annoyingly, this latency is not stable but but changes every time I trigger.
Since my "hardware" latency should be just over 5 ms and PD adds up to 20 ms to this I assume PD interally processes things at a certain framerate which should be arround 50 Hz or 20 ms. Is it possible to increase this framerate in any way?
The system runs on Ubuntu Studio 8.04, it would be possible to switch another audio interface (RME Hammerfall).
Any ideas are greatly appreciated.
Alex
Can't run PD 0.42-4 under OSX 10.4.11
I hope I did this right: I opened Console, then launched PD. I've pasted the contents of the console window below (after that I pasted the contents of pd.crash.log
===== Saturday, March 28, 2009 11:45:29 AM America/New_York =====
2009-03-28 11:46:02.321 BOMArchiveHelper[343] opened /Users/larz/Downloads/.BAHh1Ptn/pd-0.42-4.mac.tar
Pt_Start() called
Mar 28 11:46:42 KlipperBook crashdump[394]: pd crashed
Mar 28 11:46:43 KlipperBook crashdump[394]: crash report written to: /Users/larz/Library/Logs/CrashReporter/pd.crash.log
pd_gui: pd process exited
================
pd.crash.log:
**********
Host Name: KlipperBook
Date/Time: 2009-03-28 11:46:40.715 -0400
OS Version: 10.4.11 (Build 8S2167)
Report Version: 4
Command: pd
Path: /Applications/Pd-0.42-4.app/Contents/Resources/Scripts/../bin/pd
Parent: Pd [351]
Version: (0.38)
PID: 352
Thread: 3
Exception: EXC_BAD_ACCESS (0x0001)
Codes: KERN_PROTECTION_FAILURE (0x0002) at 0x00000004
Thread 0:
0 libSystem.B.dylib 0x9001a1cc select + 12
1 pd 0x00044706 sys_microsleep + 19 (s_inter.c:207)
2 pd 0x000423a7 m_mainloop + 468 (m_sched.c:511)
3 pd 0x000444a2 sys_main + 1642 (s_main.c:313)
4 pd 0x00002876 _start + 216
5 pd 0x0000279d start + 41
Thread 1:
0 libSystem.B.dylib 0x90009cd7 mach_msg_trap + 7
1 com.apple.CoreFoundation 0x9082d21b CFRunLoopRunSpecific + 2014
2 com.apple.CoreFoundation 0x9082ca36 CFRunLoopRunInMode + 61
3 com.apple.audio.CoreAudio 0x91469356 HALRunLoop::OwnThread(void*) + 158
4 com.apple.audio.CoreAudio 0x91469171 CAPThread::Entry(CAPThread*) + 93
5 libSystem.B.dylib 0x90024227 _pthread_body + 84
Thread 2:
0 libSystem.B.dylib 0x90047dd7 semaphore_timedwait_signal_trap + 7
1 com.apple.audio.CoreAudio 0x914765a4 CAGuard::WaitFor(unsigned long long) + 212
2 com.apple.audio.CoreAudio 0x914764c6 CAGuard::WaitUntil(unsigned long long) + 66
3 com.apple.audio.CoreAudio 0x91474e42 HP_IOThread::WorkLoop() + 690
4 com.apple.audio.CoreAudio 0x91474b8b HP_IOThread::ThreadEntry(HP_IOThread*) + 17
5 com.apple.audio.CoreAudio 0x91469171 CAPThread::Entry(CAPThread*) + 93
6 libSystem.B.dylib 0x90024227 _pthread_body + 84
Thread 3 Crashed:
0 pd 0x00074746 PaUtil_SetInputFrameCount + 13 (pa_process.c:464)
1 pd 0x00079b60 AudioIOProc + 1925 (pa_mac_core.c:1879)
Thread 3 crashed with X86 Thread State (32-bit):
eax: 0x00000000 ebx: 0x000793ec ecx: 0x00000000 edx: 0x00000000
edi: 0x00000000 esi: 0xb0182190 ebp: 0xb0182168 esp: 0xb0182168
ss: 0x0000001f efl: 0x00010246 eip: 0x00074746 cs: 0x00000017
ds: 0x0000001f es: 0x0000001f fs: 0x00000000 gs: 0x00000037
Binary Images Description:
0x1000 - 0x8cfff pd /Applications/Pd-0.42-4.app/Contents/Resources/bin/pd
0x4ad000 - 0x4b2fff com.apple.audio.AppleHDAHALPlugIn 1.3.7 (1.3.7a23) /System/Library/Extensions/AppleHDA.kext/Contents/PlugIns/AppleHDAHALPlugIn.bundle/Contents/MacOS/AppleHDAHALPlugIn
0x6cc000 - 0x6cffff com.apple.LiveType.component 2.1.3 /Library/QuickTime/LiveType.component/Contents/MacOS/LiveType
0x6d4000 - 0x739fff com.apple.LiveType.framework 2.1.3 /System/Library/PrivateFrameworks/LiveType.framework/Versions/A/LiveType
0x761000 - 0x7cefff com.DivXInc.DivXDecoder 6.6.0 /Library/QuickTime/DivX Decoder.component/Contents/MacOS/DivX Decoder
0x7dd000 - 0x7e0fff Motion /Library/Frameworks/Motion.framework/Versions/A/Motion
0x1008000 - 0x10a7fff com.apple.QuickTimeImporters.component 7.4.5 (67) /System/Library/QuickTime/QuickTimeImporters.component/Contents/MacOS/QuickTimeImporters
0x10cb000 - 0x1111fff com.apple.motion.component 1.0 /Library/QuickTime/Motion.component/Contents/MacOS/Motion
0x1117000 - 0x11b7fff net.sourceforge.webcam-osx.common 0.9.1 /Library/QuickTime/macam.component/Contents/MacOS/macam
0x70000000 - 0x700fafff com.apple.audio.units.Components 1.4.7 /System/Library/Components/CoreAudio.component/Contents/MacOS/CoreAudio
0x8fe00000 - 0x8fe4afff dyld 46.16 /usr/lib/dyld
0x90000000 - 0x90171fff libSystem.B.dylib /usr/lib/libSystem.B.dylib
0x901c1000 - 0x901c3fff libmathCommon.A.dylib /usr/lib/system/libmathCommon.A.dylib
0x901c5000 - 0x90202fff com.apple.CoreText 1.1.3 (???) /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreText.framework/Versions/A/CoreText
0x90229000 - 0x902fffff ATS /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/ATS
0x9031f000 - 0x90774fff com.apple.CoreGraphics 1.258.77 (???) /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics
0x9080b000 - 0x908d3fff com.apple.CoreFoundation 6.4.10 (368.33) /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
0x90911000 - 0x90911fff com.apple.CoreServices 10.4 (???) /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices
0x90913000 - 0x90a07fff libicucore.A.dylib /usr/lib/libicucore.A.dylib
0x90a57000 - 0x90ad6fff libobjc.A.dylib /usr/lib/libobjc.A.dylib
0x90aff000 - 0x90b63fff libstdc++.6.dylib /usr/lib/libstdc++.6.dylib
0x90bd2000 - 0x90bd9fff libgcc_s.1.dylib /usr/lib/libgcc_s.1.dylib
0x90bde000 - 0x90c51fff com.apple.framework.IOKit 1.4.8 (???) /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit
0x90c66000 - 0x90c78fff libauto.dylib /usr/lib/libauto.dylib
0x90c7e000 - 0x90f24fff com.apple.CoreServices.CarbonCore 682.28 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore
0x90f67000 - 0x90fcffff com.apple.CoreServices.OSServices 4.1 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices
0x91008000 - 0x91047fff com.apple.CFNetwork 129.22 (129.23) /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CFNetwork.framework/Versions/A/CFNetwork
0x9105a000 - 0x9106afff com.apple.WebServices 1.1.3 (1.1.0) /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/WebServicesCore.framework/Versions/A/WebServicesCore
0x91075000 - 0x910f4fff com.apple.SearchKit 1.0.7 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit
0x9112e000 - 0x9114cfff com.apple.Metadata 10.4.4 (121.36) /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata
0x91158000 - 0x91166fff libz.1.dylib /usr/lib/libz.1.dylib
0x91169000 - 0x91308fff com.apple.security 4.5.2 (29774) /System/Library/Frameworks/Security.framework/Versions/A/Security
0x91406000 - 0x9140efff com.apple.DiskArbitration 2.1.2 /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration
0x91415000 - 0x9141cfff libbsm.dylib /usr/lib/libbsm.dylib
0x91420000 - 0x91446fff com.apple.SystemConfiguration 1.8.6 /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration
0x91458000 - 0x914cefff com.apple.audio.CoreAudio 3.0.5 /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio
0x9151f000 - 0x9151ffff com.apple.ApplicationServices 10.4 (???) /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices
0x91521000 - 0x9154dfff com.apple.AE 314 (313) /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE
0x91560000 - 0x91634fff com.apple.ColorSync 4.4.10 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSync.framework/Versions/A/ColorSync
0x9166f000 - 0x916e2fff com.apple.print.framework.PrintCore 4.6 (177.13) /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore
0x91710000 - 0x917b9fff com.apple.QD 3.10.25 (???) /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/QD
0x917df000 - 0x9182afff com.apple.HIServices 1.5.2 (???) /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices
0x91849000 - 0x9185ffff com.apple.LangAnalysis 1.6.3 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LangAnalysis.framework/Versions/A/LangAnalysis
0x9186b000 - 0x91886fff com.apple.FindByContent 1.5 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/FindByContent.framework/Versions/A/FindByContent
0x91891000 - 0x918cefff com.apple.LaunchServices 182 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices
0x918e2000 - 0x918eefff com.apple.speech.synthesis.framework 3.5 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis
0x918f5000 - 0x91935fff com.apple.ImageIO.framework 1.5.6 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/ImageIO
0x91948000 - 0x919fafff libcrypto.0.9.7.dylib /usr/lib/libcrypto.0.9.7.dylib
0x91a40000 - 0x91a56fff libcups.2.dylib /usr/lib/libcups.2.dylib
0x91a5b000 - 0x91a79fff libJPEG.dylib /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib
0x91a7e000 - 0x91addfff libJP2.dylib /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libJP2.dylib
0x91aef000 - 0x91af3fff libGIF.dylib /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libGIF.dylib
0x91af5000 - 0x91b7dfff libRaw.dylib /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libRaw.dylib
0x91b81000 - 0x91bbefff libTIFF.dylib /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib
0x91bc4000 - 0x91bdefff libPng.dylib /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib
0x91be3000 - 0x91be5fff libRadiance.dylib /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libRadiance.dylib
0x91be7000 - 0x91cc5fff libxml2.2.dylib /usr/lib/libxml2.2.dylib
0x91ce2000 - 0x91ce2fff com.apple.Accelerate 1.3.1 (Accelerate 1.3.1) /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate
0x91ce4000 - 0x91d72fff com.apple.vImage 2.5 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/vImage
0x91d79000 - 0x91d79fff com.apple.Accelerate.vecLib 3.3.1 (vecLib 3.3.1) /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib
0x91d7b000 - 0x91dd4fff libvMisc.dylib /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib
0x91ddd000 - 0x91e01fff libvDSP.dylib /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib
0x91e09000 - 0x92212fff libBLAS.dylib /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
0x9224c000 - 0x92600fff libLAPACK.dylib /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib
0x9262d000 - 0x9271afff libiconv.2.dylib /usr/lib/libiconv.2.dylib
0x9271c000 - 0x9279afff com.apple.DesktopServices 1.3.7 /System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A/DesktopServicesPriv
0x927db000 - 0x92a0bfff com.apple.Foundation 6.4.10 (567.37) /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
0x92b25000 - 0x92b40fff libGL.dylib /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib
0x92b4c000 - 0x92ba4fff libGLU.dylib /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib
0x92bb8000 - 0x92bb8fff com.apple.Carbon 10.4 (???) /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon
0x92bba000 - 0x92bcafff com.apple.ImageCapture 3.0.4 /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/ImageCapture.framework/Versions/A/ImageCapture
0x92bd9000 - 0x92be1fff com.apple.speech.recognition.framework 3.6 /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SpeechRecognition.framework/Versions/A/SpeechRecognition
0x92be7000 - 0x92bedfff com.apple.securityhi 2.0.1 (24742) /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SecurityHI.framework/Versions/A/SecurityHI
0x92bf3000 - 0x92c84fff com.apple.ink.framework 101.2.1 (71) /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Ink.framework/Versions/A/Ink
0x92c98000 - 0x92c9cfff com.apple.help 1.0.3 (32.1) /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Help.framework/Versions/A/Help
0x92c9f000 - 0x92cbdfff com.apple.openscripting 1.2.5 (???) /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/OpenScripting.framework/Versions/A/OpenScripting
0x92ccf000 - 0x92cd5fff com.apple.print.framework.Print 5.2 (192.4) /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Print.framework/Versions/A/Print
0x92cdb000 - 0x92d3efff com.apple.htmlrendering 66.1 (1.1.3) /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HTMLRendering.framework/Versions/A/HTMLRendering
0x92d65000 - 0x92da6fff com.apple.NavigationServices 3.4.4 (3.4.3) /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/NavigationServices.framework/Versions/A/NavigationServices
0x92dcd000 - 0x92ddbfff com.apple.audio.SoundManager 3.9.1 /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/CarbonSound.framework/Versions/A/CarbonSound
0x92de2000 - 0x92de7fff com.apple.CommonPanels 1.2.3 (73) /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/CommonPanels.framework/Versions/A/CommonPanels
0x92dec000 - 0x930e1fff com.apple.HIToolbox 1.4.10 (???) /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox
0x931e7000 - 0x931f3fff com.apple.opengl 1.5.1 /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL
0x93263000 - 0x93263fff com.apple.Cocoa 6.4 (???) /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa
0x93265000 - 0x9391bfff com.apple.AppKit 6.4.10 (824.45) /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit
0x93c9c000 - 0x93d17fff com.apple.CoreData 91 (92.1) /System/Library/Frameworks/CoreData.framework/Versions/A/CoreData
0x93d50000 - 0x93e09fff com.apple.audio.toolbox.AudioToolbox 1.4.7 /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox
0x93e4c000 - 0x93e4cfff com.apple.audio.units.AudioUnit 1.4.3 /System/Library/Frameworks/AudioUnit.framework/Versions/A/AudioUnit
0x93e4e000 - 0x9400ffff com.apple.QuartzCore 1.4.12 /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore
0x94055000 - 0x94096fff libsqlite3.0.dylib /usr/lib/libsqlite3.0.dylib
0x9409e000 - 0x940e1fff libGLImage.dylib /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib
0x940e5000 - 0x940fbfff com.apple.CoreVideo 1.4.2 /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo
0x9410b000 - 0x945c7fff libGLProgrammability.dylib /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLProgrammability.dylib
0x948d3000 - 0x94beafff com.apple.QuickTime 7.4.5 (67) /System/Library/Frameworks/QuickTime.framework/Versions/A/QuickTime
0x96cbe000 - 0x96cf4fff com.apple.audio.midi.CoreMIDI 1.5.1 (41) /System/Library/Frameworks/CoreMIDI.framework/Versions/A/CoreMIDI
0x970c7000 - 0x970c7fff com.apple.vecLib 3.3.1 (vecLib 3.3.1) /System/Library/Frameworks/vecLib.framework/Versions/A/vecLib
0x97641000 - 0x97646fff com.apple.agl 2.6.2 (AGL-2.6.2) /System/Library/Frameworks/AGL.framework/Versions/A/AGL
0x9896d000 - 0x998fefff com.apple.QuickTimeComponents.component 7.4.5 (67) /System/Library/QuickTime/QuickTimeComponents.component/Contents/MacOS/QuickTimeComponents
Pd-extended 0.40.3 released, dedicated to Jamie Tittle
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 fixes
Here'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/Pd -
lots 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 Browser -
you 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
Problem compiling external on Windows
Alberto,
I figured it out. I made a few changes to your makefile, though:
1. added a path to m_pd.h
2. changed "rm -f $*.o ../$*.dll" to "rm -f $*.o $*.dll"
(the .dll file wasn't being removed from the working directory)
3. forced DEST to the pd/extra directory
4. removed CSYM since it's not being used
5. removed "current: pd_win"; changed "pd_win: $(NAME).dll" to "all: $(NAME).dll"
6. removed non-win stuff
7. removed the clean and install targets for right now
Hopefully these changes make it easier for the complete newbie. Anyway, with enormous thanks to AlbertoZ, here's a mini-tutorial for using my makefile.
1. if you're using pd-extended, save this as "m_pd.h" (into the same directory with
helloworld.c). If you're using pd-vanilla, you can skip this step.
2. save this code as "mk.mk" (into the same directory with helloworld.c):
# mk.mk -- invoke with "make -f mk.mk"
NAME = helloworld
PDPATH = "c:/Progra~1/pd"
LDFLAGS = --export-dynamic -shared
WININCLUDE = -I $(PDPATH)/src
WINCFLAGS = -DPD -DNT -W3 -WX -Werror -Wno-unused \
-mms-bitfields -Wno-parentheses -Wno-switch \
-O6 -funroll-loops -fomit-frame-pointer
all: $(NAME).dll
.SUFFIXES: .dll
.c.dll:
gcc $(WINCFLAGS) $(WININCLUDE) -c -o $*.o $*.c
gcc $(LDFLAGS) -o $*.dll $*.o $(PDPATH)/bin/pd.dll
strip --strip-unneeded $*.dll
cp $*.dll $(PDPATH)/extra
rm -f $*.o $*.dll
2. modify the PDPATH variable if needed to reflect the actual location of pd on your
system (MSYS will interpret c:/Program Files/pd as C:/Program, so use
c:/Progra~1/pd instead)
3. if you're using pd-extended, remove line 6 (WININCLUDE = -I $(PDPATH)/src) and
remove $(WININCLUDE) from line 14.
4. close all pd windows if any are open
5. in MSYS, navigate to the directory with helloworld.c and type: make -f mk.mk
(type make -s -f mk.mk if you want to hide the lengthy shell response)
6. the shell should respond with something like:
gcc -DPD -DNT -W3 -WX -Werror -Wno-unused -mms-bitfields -Wno-parentheses
-Wno-switch -O6 -funroll-loops -fomit-frame-pointer -I "c:/Progra~1/pd"/src -c -o
helloworld.o helloworld.c
gcc --export-dynamic -shared -o helloworld.dll helloworld.o
"c:/Progra~1/pd"/bin/pd.dll
strip --strip-unneeded helloworld.dll
cp helloworld.dll "c:/Progra~1/pd"/extra
rm -f helloworld.o helloworld.dll
7. a new helloworld.dll file should be saved into the pd/extra folder, and you should be
able to create the "helloworld" object in a new pd window.
Good luck!
middlepedal
Soundflower to Decrease CPU usage for those with Firewire interfaces
Hey Guys,
I've noticed, consistently, that if I select my MOTU 828mkII as both Audio In and Audio Out in PD .39extended (newest build from Hans in daily builds, RC4) my CPU usage jumps to almost double as compared to CPU usage with my Built In audio as Audio In and Audio Out. I have not seen this behaviour in any other Mac OS X application.
I've found a way around this.
If you're a Mac OS X user, go ahead and download Soundflower from Cycling74's website: http://www.cycling74.com/downloads/soundflower
Soundflower mirrors Jack in function, but is only available for OS X. It creates a virtual 2 channel and 16 channel interface in your OS so you can route audio between applications and out the soundcard.
To work around this CPU usage bug with firewire interfaces, select Soundflower 2ch or Soundflower 16ch as your default Audio Out / Audio In within Pd. Then within the Soundflowerbed menu, select your firewire interface as your soundflower output. I don't know why this works, but it does. You can now decrease your CPU usage up to about 2x when using a firewire interface. Screenshots follow.
Builtin audio OR soundflower as output while playing the 7. datastructure sequencer demo
Firewire as audio output while playing the 7. datastructure sequencer demo
Soundflower config
PD newbie help. PD makes sense, but I don't know how to implement it.
Hi, I've been messing around with making electronic music on the computer for about a year and a half. I started out with project 5, and still use project 5. At first I just used the preset instruments and fooled around for a bit, but I didn't like the cheesey factory settings, which gave everything a out-of-the-box fruityloops feel. Somehow I found out about absynth, and have since put a lot of time into understanding it and learning how to use it to make decent music.
I've grown fairly competent with it, and have a pretty good grasp of how to sculpt the sounds I want with oscillators, envelopes, filters, and lfo's. But I feel somewhat limited, regardless of the fact that I haven't come close to pushing absynth as far as it can go, and I want to open up opportunities for making more complex sounds in different ways. pd seemed the logical choice as it's free, while reaktor isn't.
I'm not a bad mathematician and have a bit of programming experience, so using pd for the basics hasn't been too difficult. I completed most of the tutorial/documentation that was included without too much trouble. I still need to learn a lot more about all the elements I'll need to create to make good synths and whatnot, but pd makes enough sense that I'm pretty sure I'll be able to figure out how to do what I want to do with some study and practice.
My problems are with how to implement pd as a tool to create music. How does one do this? Is it easy to make pd patches into vst's for use with project 5, or say, minihost? If so, how? I don't have any midi controllers and so I want to use pd to create instruments that I can use with the sequencers I'm already familiar with. Or with minihost for when I get a midi controller, so I can quickly switch between a pd patch and other vsts. I understand the basics of programming, but first and foremost I'm just a guy that likes to make music on the computer. Not a programming guru, so I don't really plan on making sequencers or environments, as it seems it would be a lot more difficult than just making synths.
Are there any pd guides out there for people that are predominantly electronic musicians?
I'd appreciate advice from anyone, whether you've been in my shoes or not.
I wonder....
I think this is a cultural question, not a technical one Shankar, and there's a cultural answer. For almost 15 years in "the west" there's been an industry pushing quick and easy solutions to making music. That quick and easy approach is "buy our sample libaries".
I could write you a PhD thesis type essay on why this sucks, why the sample peddlers
have triumphed over the possiblity of human programmable synthesisers, why the cult of emulation and "hip hop" producers sampling loops of other peoples records has brought music down to the lowest common denominator. But I can sum it up in
one... creativity is hard. (And nobody wants to pay for it any longer, or invest
time in cultivating it)
I'm trying, in my own gentle way, to spread a little understanding and fresh enthusiasm for what I think has become a hidden art. Really understanding sound and synthesis is orders of magnitude (if there were such a scale) more difficult than grabbing a breakbeat from a record or going out with a microphone to collect material. Music making with preset tools has become so easy, and producers so lazy, that even the top paid studio producers do little except arrange other peoples work, and many lack even the most basic engineering skills to do recording and preproduction work on live material. Everyone wants to be a musician these days and put their "original" creations up on MySpace, and they can be - with Acid, FruityLoops and Reason you can just audition a few loops, press the "good" button and voila! Except your "original creation" is just a permutation on the same sound everybody else is making. That's why much music is so dreary, predictable and stale these days I think. The mainstream tools have become so rigid that it's impossible to subvert their use, and subversion is the essence of creative art.
Anyway, it would be arrogant to judge other peoples approach to music making this way. I myself spent many years hooked into the cult of sampling and making music
from other peoples work - it just became a boring creative cul-de-sac.
However, I would argue as a professional producer who has seen the industry go though many changes that the easy route to music making with sample libraries, combined with the mainstream medias greed for fast and cheap products has basically killed off a generation of really creative musicians and producers.
I've revised my paraphrasing of Miller about "undoing the sampling revolution".
There never was a sampling revolution. Sampling is the status quo, and the synthetic
revolution is still waiting to happen.
I say, stick with Pd, put in the effort to really understand manipulating and creating sound from first principles and you will harvest the fruits of its power and let your genuine creativity shine through.
GEM differences on mac and windows
Hi pure people,
I am new to pure but an experienced software developer.
I use PD for an interactive audio installation and especially GEM for the actual video processing and movement detection. Allthough it works fine on my development plattform, an old ibook G4, a few differences of the behaviour betweeb Mac and Windows of some GEM objects make me worry.
My development machine (on the go... is an old ibook with tiger (and an ati 9200) and a new pc with xp sp2 and a geforce 7600. The target plattform will likely be a pc also with xp sp2.
The software I use is the pd-extended 0.38-4 release.
My development works as this: I use a movie that is prerecorded and shows movement of a single object (like an elevator moving up and down with stops in between).
My patch is partially build like the GEM documentation example Gem - 04.video - 0.3.movement_detection.pd. Additionally to this I have subpatches that do movement analysis patches for speed and accelleration of a single moving object.
On the mac (with an ATI 9200) the initial view of the prerecorded movie is quite dark and the basic movement detection is very sensible and works quite well (and also the analysis).
On windows (with a geforce 7600) it is different. The movie looks quite normal, with the normal brightness (the mac was very dark), and the movement detection is very insensitive and does not really work.
Things that I recognized and resulting questions:
1. Is there a difference in initial values the GEM objects have if there is no explicit initialisation?
2. The colormodel seems to be different. A color of 1 1 1 is black on the ibook (with the ATI card) and white at the PC (with the geforce)
3. What reason can it have, that the displayed video on the mac (with the given example) is initially way darker than expected.
4. On the mac, the prerecorded movie cycles infinitely with the auto option of pix_film whereas pure on windows stops after one cycle. Is there a reason for this behaviour?
5. Is there actually a difference between the way GEM objects are initialized between Windows and Mac and also between different opengl vendors (like the color model between ati and nvidia).
Hope someone can share some experiences with GEM and how to work around the difficulties of GEM on different plattforms.
Regards,
Michael.
Anyone interested in hacking plugin~ for OSX?!?
Running pd on the mac has upsides and downsides...
I use both. The PC is handy for running wierd stuff like the VST~ objects, but my mac has better audio support, plus its a laptop so its more handy for gigs etc... An added bonus is my mac doesn't sound like a harrier jump jet, unlike the fan on my PC. However, the PC does keep my feet nice and warm under the desk at this time of year.
Sad to say it, but the mac actually crashes more often than the PC now days, something i never thought i would find myself saying
As for running linux on the mac, you could run a linux build with a nice GUI, however, having tried the mac-linux install myself in the past I wouldn't recomend it unless you really know what your doing and don't mind messing about with various bits of your mac's built in kit (especialy wifi cards) for a few weeks to get the damn things to work...