Re: [Sursound] problem with jconvolver on osx
On Wed, Oct 12, 2011 at 02:58:40PM -0700, Aaron Heller wrote: http://threadingbuildingblocks.org/ I haven't studied zita-convolver in any detail, so I don't know how amenable it would be to that kind of approach. Not very much probably. Zita-convolver is not designed to optimize the use of multiple CPUs, although it will do this if you run multiple instances, even if they a have a sequential data dependency. One of the design goals was to run long multichannel convolutions (e.g. AMB reverbs) efficiently *and* wihout processing delay. For this it uses multiple partition sizes, in a sequence determined by the number of input and outputs, the maximum length of any IR, and the density of the matrix. A second design goal was to run mixed-size convolutions efficiently. Imagine a 3-D matrix, the two first dimensions are the inputs and outputs, the third is the time axis - a sequence of individual partitions. Each cell of this matrix takes CPU time only if there is some IR for the input, output and time range it corresponds to. FFTs are optimized in a similar way, and the logic controlling all of this is very lightweight. An absolute requirement was also that the convolver should be a 'well behaved' processing unit, one that takes a constant time for each call processing a block of samples, even if that block size is a small fraction of the longer partition sizes used. So you don't e.g. call a 1024 point FFT in each 16th call processing 64 samples. This is in fact the main reason why zita-convolver is multithreaded at all. All of this means that you want rather explicit control over how things are scheduled. Ciao, -- FA ___ Sursound mailing list Sursound@music.vt.edu https://mail.music.vt.edu/mailman/listinfo/sursound
Re: [Sursound] problem with jconvolver on osx
On Wed, Oct 12, 2011 at 01:41:41AM -0400, Hector Centeno wrote: I've been looking into an alternative and came across this: http://sememu.sourceforge.net/ I'm not a C expert so not sure if this could work. I tried to build zita-convolver using this but got errors: ... I've known sememu for some time. The MP** calls could be used, but not in the way sememu does it. Anyway they are deprecated so I don't see this as a solution. OTOH this could mean that Lion now provides a working alternative. If you have the docs or man pages, have a look there. In zita-convolver 3.0 the sema implementation is put into a separate class which is defined for Linux only. This means 3.0 will not compile in OSX unless that class is implemented explicitly (instead of compiling fine and then failing at run time). You could try doing that using the MP** calls, it should be fairly easy. Also 3.0 does not depend on a working get_value(). Ciao, -- FA ___ Sursound mailing list Sursound@music.vt.edu https://mail.music.vt.edu/mailman/listinfo/sursound
Re: [Sursound] problem with jconvolver on osx
For N x M channel convolutions on MacOS (or Windows), there's BrahmaVolver. It is a VST plugin, that I've used with Bidule on MacOS with good results. http://www.aurora-plugins.com/Public/Brahma/Brahmavolver/ It comes up as a 2x2 initially, but you can adjust that in the Setup panel. Then you have to delete that instance and make another one. As far as multithreaded, cross platform stuff, I've switched to using the Intel Threaded Building Blocks (TBB) for my image processing and machine learning work. It let's you code at a higher level of abstraction (functors, multidimensional iterators, parallel for-loops, flow graphs, and so forth), and then manages the threads and synchronization for you. There is a free and open source version, licensed under GPLv2 with the runtime exception. See http://threadingbuildingblocks.org/ I haven't studied zita-convolver in any detail, so I don't know how amenable it would be to that kind of approach. Best... Aaron Heller hel...@ai.sri.com Menlo Park, CA US ___ Sursound mailing list Sursound@music.vt.edu https://mail.music.vt.edu/mailman/listinfo/sursound
Re: [Sursound] problem with jconvolver on osx
brahmavolver is a standalone program, not a vst plug in. or so i thought/ (i have version .71 for windows with me)umashankar i have published my poems. read (or buy) at http://stores.lulu.com/umashankar Date: Wed, 12 Oct 2011 14:58:40 -0700 From: hel...@ai.sri.com To: sursound@music.vt.edu Subject: Re: [Sursound] problem with jconvolver on osx For N x M channel convolutions on MacOS (or Windows), there's BrahmaVolver. It is a VST plugin, that I've used with Bidule on MacOS with good results. http://www.aurora-plugins.com/Public/Brahma/Brahmavolver/ It comes up as a 2x2 initially, but you can adjust that in the Setup panel. Then you have to delete that instance and make another one. As far as multithreaded, cross platform stuff, I've switched to using the Intel Threaded Building Blocks (TBB) for my image processing and machine learning work. It let's you code at a higher level of abstraction (functors, multidimensional iterators, parallel for-loops, flow graphs, and so forth), and then manages the threads and synchronization for you. There is a free and open source version, licensed under GPLv2 with the runtime exception. See http://threadingbuildingblocks.org/ I haven't studied zita-convolver in any detail, so I don't know how amenable it would be to that kind of approach. Best... Aaron Heller hel...@ai.sri.com Menlo Park, CA US ___ Sursound mailing list Sursound@music.vt.edu https://mail.music.vt.edu/mailman/listinfo/sursound -- next part -- An HTML attachment was scrubbed... URL: https://mail.music.vt.edu/mailman/private/sursound/attachments/20111013/bdf4de34/attachment.html ___ Sursound mailing list Sursound@music.vt.edu https://mail.music.vt.edu/mailman/listinfo/sursound
Re: [Sursound] problem with jconvolver on osx
Umashankar is correct. I meant X-volver. Sorry for the confusion. http://www.ramsete.com/Public/Xvolver/ There is a screenshot here: http://www.desknotes.it/siten/Software_files/XVolver8x8.png Aaron On Wed, Oct 12, 2011 at 7:30 PM, umashankar mantravadi umasha...@hotmail.com wrote: brahmavolver is a standalone program, not a vst plug in. or so i thought/ (i have version .71 for windows with me)umashankar i have published my poems. read (or buy) at http://stores.lulu.com/umashankar Date: Wed, 12 Oct 2011 14:58:40 -0700 From: hel...@ai.sri.com To: sursound@music.vt.edu Subject: Re: [Sursound] problem with jconvolver on osx For N x M channel convolutions on MacOS (or Windows), there's BrahmaVolver. It is a VST plugin, that I've used with Bidule on MacOS with good results. http://www.aurora-plugins.com/Public/Brahma/Brahmavolver/ It comes up as a 2x2 initially, but you can adjust that in the Setup panel. Then you have to delete that instance and make another one. As far as multithreaded, cross platform stuff, I've switched to using the Intel Threaded Building Blocks (TBB) for my image processing and machine learning work. It let's you code at a higher level of abstraction (functors, multidimensional iterators, parallel for-loops, flow graphs, and so forth), and then manages the threads and synchronization for you. There is a free and open source version, licensed under GPLv2 with the runtime exception. See http://threadingbuildingblocks.org/ I haven't studied zita-convolver in any detail, so I don't know how amenable it would be to that kind of approach. Best... Aaron Heller hel...@ai.sri.com Menlo Park, CA US ___ Sursound mailing list Sursound@music.vt.edu https://mail.music.vt.edu/mailman/listinfo/sursound -- next part -- An HTML attachment was scrubbed... URL: https://mail.music.vt.edu/mailman/private/sursound/attachments/20111013/bdf4de34/attachment.html ___ Sursound mailing list Sursound@music.vt.edu https://mail.music.vt.edu/mailman/listinfo/sursound ___ Sursound mailing list Sursound@music.vt.edu https://mail.music.vt.edu/mailman/listinfo/sursound
Re: [Sursound] problem with jconvolver on osx
Hello, I've been looking into an alternative and came across this: http://sememu.sourceforge.net/ I'm not a C expert so not sure if this could work. I tried to build zita-convolver using this but got errors: ./sememu.c:342: warning: ‘MPSignalSemaphore’ is deprecated (declared at /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Multiprocessing.h:725) In file included from zita-convolver.cc:23: zita-convolver.h: At global scope: zita-convolver.h:268: warning: declaration does not declare anything zita-convolver.cc:315: error: expected unqualified-id before ‘{’ token make: *** [zita-convolver.o] Error 1 The warning is because I'm on Lion and MPSignalSemaphore has been deprecated, but I guess still should work. Also sememu is in C and zita-convolver in C++ so I wonder if that's the issue. Cheers, Hector On Fri, Sep 30, 2011 at 3:38 AM, Fons Adriaensen f...@linuxaudio.org wrote: *** the zita-convolver library DOES NOT WORK on OSX.*** The reason for this is the crippled implementation of POSIX semaphores (sem_t) on OSX: 1. Only named semaphores (i.e. having a file system name) are available. 2. The sem_init() function does not work. 3. The sem_getvalue() function does not work. While (1) is not a final showstopper and there are (clumsy) solutions to work around it, (2) and (3) are. Future versions of the library will even use more semaphores, so this problem is not going away. The only solution is that some OSX expert/hacker writes a complete, correct and efficient version of sem_t, which will probably be based on the system's MACH semaphores. It should not be difficult at all for someone with the right background. Ciao, -- FA ___ Sursound mailing list Sursound@music.vt.edu https://mail.music.vt.edu/mailman/listinfo/sursound ___ Sursound mailing list Sursound@music.vt.edu https://mail.music.vt.edu/mailman/listinfo/sursound
Re: [Sursound] problem with jconvolver on osx
On Fri, Sep 30, 2011 at 01:25:26AM +0200, Gregorio Garcia Karman wrote: Dear Sursounders, today I built jconvolver on a mac. Config files and impulse responses are loading fine, I can see jconv registered as a jack client and am able to connect and send / receive audio from other applications. But I can't get rid of this problem: audio output from jconvvolver is screwed up and the CPU load is wy too high. This is what I did to install (includes using some of the workarounds proposed in previous posts): I can't repeat this often enough: even if you manage to compile it, *** the zita-convolver library DOES NOT WORK on OSX.*** The reason for this is the crippled implementation of POSIX semaphores (sem_t) on OSX: 1. Only named semaphores (i.e. having a file system name) are available. 2. The sem_init() function does not work. 3. The sem_getvalue() function does not work. While (1) is not a final showstopper and there are (clumsy) solutions to work around it, (2) and (3) are. Future versions of the library will even use more semaphores, so this problem is not going away. The only solution is that some OSX expert/hacker writes a complete, correct and efficient version of sem_t, which will probably be based on the system's MACH semaphores. It should not be difficult at all for someone with the right background. Ciao, -- FA ___ Sursound mailing list Sursound@music.vt.edu https://mail.music.vt.edu/mailman/listinfo/sursound
Re: [Sursound] problem with jconvolver on osx
On 30 Sep 2011, at 09:38, Fons Adriaensen wrote: The reason for this is the crippled implementation of POSIX semaphores (sem_t) on OSX: 1. Only named semaphores (i.e. having a file system name) are available. 2. The sem_init() function does not work. 3. The sem_getvalue() function does not work. Has this been officially reported as a bug with Apple? Ronald ___ Sursound mailing list Sursound@music.vt.edu https://mail.music.vt.edu/mailman/listinfo/sursound
Re: [Sursound] problem with jconvolver on osx
On Fri, Sep 30, 2011 at 09:50:38AM +0200, Ronald C.F. Antony wrote: On 30 Sep 2011, at 09:38, Fons Adriaensen wrote: The reason for this is the crippled implementation of POSIX semaphores (sem_t) on OSX: 1. Only named semaphores (i.e. having a file system name) are available. 2. The sem_init() function does not work. 3. The sem_getvalue() function does not work. Has this been officially reported as a bug with Apple? I don't know, but a Unix based OS without a full sem_t is like a French typewriter without accented characters, so I guess it has been reported by now. Probably for Apple it's not a bug but a feature, and it may be one designed to discourage porting of non-Apple software to OSX. Anyway OSX users should complain about this. Ciao, -- FA ___ Sursound mailing list Sursound@music.vt.edu https://mail.music.vt.edu/mailman/listinfo/sursound
[Sursound] problem with jconvolver on osx
Dear Sursounders, today I built jconvolver on a mac. Config files and impulse responses are loading fine, I can see jconv registered as a jack client and am able to connect and send / receive audio from other applications. But I can't get rid of this problem: audio output from jconvvolver is screwed up and the CPU load is wy too high. This is what I did to install (includes using some of the workarounds proposed in previous posts): 1. Built clthreads 2.4.0 with Makefile-osx 2. Create the symbolic links to avoid the warnings and build clxclient 3.6.1 ~$ sudo ln -s /usr/X11R6/lib /usr/X11R6/lib64 ~$ sudo ln -s /usr/local/lib /usr/local/lib64 ~$ make -f Makefile-osx 3. Compile fftw-3.3 with the float option ~$ ./configure --enable-float ~$ make; sudo make install 4. Make zita-convolver-2.0.0/libs. The changes to Makefile were: comment #CPPFLAGS += -march=686 change option -soname to -dylib_install_name comment #ldconfig ~$ make -f Makefile-osx 5. Compile libsndfile-1.0.25. (I was missing x64 libsndfile required by jconvolver) 6. Compile jconvolver-0.8.7 removing occurrences of -lrt from the Makefile ~$ make -f Makefile-osx The BSD version of _install_ does not have the -D option so I took care of the permissions / copied the files manually: ~$ chmod 755 fconvolver ; chmod 755 jconvolver; chmod 755 makemulti ~$ sudo mv makemulti jconvolver fconvolver /usr/local/bin/ 7. Create a symbolic link to libzita-convolver.so.2 ~$ sudo ln -s /usr/local/lib/libzita-convolver.so.2.0.0 /usr/local/lib/libzita-convolver.so.2 After that everything seems well except for a warning that is displayed when starting up jconvolver _Warning: mlockall:: Function not implemented_. Different combinations of jack buffer sizes / partition sizes don't get ri9d of the odd behaviour (i checked that the rest of jack apps behave well). System is OSX 10.6.8 running on an Intel mbp with the 64 bit kernel enabled. I'm hoping that someone will point out how stupid my mistake is and suggest how to fix it. thanks for reading my best regards Gregorio Garcia Karman ggkar...@musicologia.com ___ Sursound mailing list Sursound@music.vt.edu https://mail.music.vt.edu/mailman/listinfo/sursound