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
