VFLib: A collection of JUCE modules! (MIT Licensed)

I’m working up a full demonstration application that covers every aspect of concurrency and synchronization using the primitives in VFLib.

Is there any interest for this?

yes

SimpleDJ in AppletJUCE now uses ParallelFor and ThreadGroup to process the decks in parallel:

Mixer.cpp

vf::ParallelFor().loop (m_sources.size(), &MixerImp::processSource, this);

and

  void processSource (int sourceIndex)
  {
    AudioSampleBuffer sourceBuffer (
      m_sourceBuffer.getArrayOfChannels () + 2 * sourceIndex,
      2, m_sourceBuffer.getNumSamples ());

    m_sources [sourceIndex]->getNextAudioBlock (AudioSourceChannelInfo (sourceBuffer));
  }

I guess I forgot to mention, this is done. It’s called “SimpleDJ” in AppletJUCE:

https://github.com/vinniefalco/AppletJUCE

Who would be more interested in this if it was MIT licensed (instead of GPL) ?

I’m thinking to change the license.

Me, for sure. It’s great stuff, but I don’t get to do GPL work, generally.

Bruce

I would like to use GuiCallQueue in some closed source stuff - maybe some other bits and pieces too

[quote=“TheVinn”]Who would be more interested in this if it was MIT licensed (instead of GPL) ?[/quote]Absolutely! I for one can’t even consider GPL, for a myriad of reasons, and this is good stuff.

surely it would bring more interest from my side as well!

I changed the license to the MIT License. You can see these changes in both the “develop” branch (work in progress) and the “release” branch (candidates for release). The MIT-Licensed version is tagged 1.1rc1.

Feel free to use this version, and if you find any problems please let me know right away so I can fix it. I will publish the latest release candidate to “master” when there are no complaints for 7 days in a row. The documentation could certainly use a bit of work so if there’s anything that is unclear let me know.

VFLib 1.1 has been published under the terms of the MIT License

Thank you Vincent for this contribution

Hey Vinn, thanks for the MIT license! I tried to build SimpleDJ with the latest master of VFLib but ran into errors with vf_Bind.h. I “fixed” it by reverting to the previous tr1 versions. (I’m on OSX 10.7)

//vf_Bind.h
#elif JUCE_MAC
//replaced these with tr1 versions
  using std::ref;
  using std::bind;
  using std::function;
  using std::placeholders::_1;
  using std::placeholders::_2;
//vf_core.h
#elif JUCE_MAC
//replaced this with tr1 version
# include <functional>

We appreciate this. Thanks for a very nice lib.

Thanks! I’m very interested in feedback from usage of the library. Which parts are popular, which are not understood, what needs work, etc…, including the documentation.

Hi,
I’m trying to compile VFLib under linux.
I cannot solve problems related to

#include <bind> in vf_core.h

the compiler says:

and then a lot of errors appear.

Where can I found this lib?

I have already used VFLib with success under Windows

Thank you

No idea really. “bind” should be part of the standard C++ library. Maybe you need to install some package?

I don’t think stl has a header titled “bind”; I don’t have it…

If you’re using a function called bind, you have to include stl’s functional.

#include <functional>

//some code before
std::bind (/*stuff*/);
//other code after

It looks like I fixed this already in the “develop” branch, can you please try that?