Re: [Sursound] problem with jconvolver on osx

2011-10-13 Thread Fons Adriaensen
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

2011-10-12 Thread Fons Adriaensen
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

2011-10-12 Thread Aaron Heller
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

2011-10-12 Thread umashankar mantravadi

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

2011-10-12 Thread Aaron Heller
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

2011-10-11 Thread Hector Centeno
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

2011-09-30 Thread Fons Adriaensen
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

2011-09-30 Thread Ronald C.F. Antony

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

2011-09-30 Thread Fons Adriaensen
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

2011-09-29 Thread Gregorio Garcia Karman
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