Chris also mentioned:

============
[...]

I should warn you though that Rubber Band is quite CPU intensive --
much more so than SoundTouch!  You may find that multiple concurrent
real-time uses of it are more demanding than you hoped.  I'd like to
improve this in future versions, but I'm not sure how far it can
practically go.


Chris

============

On Wed, 2008-04-23 at 09:48 -0400, Albert Santoni wrote:
> Hi guys,
> 
> Just talked to Chris Cannam regarding some questions I had about his
> library, for those interested:
> 
> email message attachment, "Forwarded message - Re: Rubberband and
> Multithreading"
> > -------- Forwarded Message --------
> > From: Chris Cannam <[EMAIL PROTECTED]>
> > To: Albert Santoni <[EMAIL PROTECTED]>
> > Subject: Re: Rubberband and Multithreading
> > Date: Wed, 23 Apr 2008 10:37:14 +0100
> > 
> > 2008/4/23 Albert Santoni <[EMAIL PROTECTED]>:
> > >  I'm a developer from Mixxx (http://www.mixxx.org), and I was wondering
> > >  if Rubberband is thread-safe/re-entrant. I'm thinking about
> > >  experimenting with using your library to do some realtime stretching on
> > >  our tracks inside Mixxx, and I couldn't find information on your website
> > >  about this. (SoundTouch isn't thread-safe, as we learnt the hard way...)
> > >
> > >  Any insight or advice is much appreciated!
> > 
> > Albert,
> > 
> > Rubber Band is thread-safe, in the sense that multiple instances of
> > RubberBandStretcher may be created and used in separate threads
> > concurrently without any further locking and without affecting each
> > others' behaviour.  The code is completely intended to support this
> > and if you experience any problems with it I would like to know so I
> > can fix them.
> > 
> > For any single instance of RubberBandStretcher, you may not call
> > process() more than once concurrently, and you may not change the time
> > or pitch ratio while a process() call is being executed (this assumes
> > a stretcher created in "real-time mode"; in "offline mode" you can't
> > change the ratios during use anyway).  So you can run process() in its
> > own thread if you like, but if you want to change ratios dynamically
> > from a different thread, you will need some form of mutex in your
> > code.  Changing the time or pitch ratio is real-time safe, so for most
> > applications that may change these dynamically it probably makes most
> > sense to do so from the same thread as calls process() even if that is
> > a real-time thread.
> > 
> > >  P.S. Do you mind if I forward your reply to our developers' mailing
> > >  list?
> > 
> > Not at all, go ahead.  If you can send me a link to an archive of the
> > thread, that would be good (so I can read the context).
> > 
> > Thanks,
> > 
> > 
> > Chris
> -------------------------------------------------------------------------
> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
> Don't miss this year's exciting event. There's still time to save $100. 
> Use priority code J8TL2D2. 
> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
> _______________________________________________ Mixxx-devel mailing list 
> [email protected] 
> https://lists.sourceforge.net/lists/listinfo/mixxx-devel


-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
Mixxx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mixxx-devel

Reply via email to