Which parts of JUCE are good for accepting plugins?

Im making a DAW and Im not extremely new to JUCE but im not 100% perfect either. I understand C++ ok though, but im looking to see if anyone knows which classes in juce are good for reading in another plugin format so I can accept them and input them into my DAW. Anyone have any good recommendations or do you guys know of any classes that are good for reading audio plugins that have outputted good stable results??

You could look into AudioPluginHost (JUCE/extras/AudioPluginHost) to see how it works there.

If you’re making a fully fledged DAW, you should also definitely look at the Tracktion Engine library. It’s built on top of JUCE and gives you access to all of the components you’ll need on a much higher level. Tracktion can be intimidating at first as it’s not as well documented as JUCE, but it will definitely save you time in the long run.

Yeah I really wanted to use tracktion but they don’t support networking which I had wanted to do
In my daw and is what my patent is over. So I have to code every little detail from scratch in juce.
But tracktion is sick I really like their model and that was a good recommendation. As for the plugin host I’ll take a look at that and see if I can get anything going on that end

What do you mean by that? Without having used it myself by now, I know that the Tracktion Engine is built on JUCE, afaik it is a JUCE module and since JUCE has network functionality you should be able to integrate whatever networking stuff you want to do also when using the engine…?

You will definitively face much more complicated stuff than opening plugins when you are building a DAW engine from scratch, so using tracktion engine could be a huge timesaver for your project.

So you want to load a custom plugin format besides VST(3), AU, AAX et al.?
What is the purpose of that API?

Have a look at AudioPluginFormat
I don’t know if it can be used generally or if it is limited to wrap AudioProcessors. But either way you should find good inspiration in that class/API for your solution.

I don’t know the details of what you’re doing, but Tracktion uses a ValueTree model to describe its internal state, and you can synchronize ValueTrees over a network with ValueTreeSynchronizer.

I knew someone who knew someone at Tracktion and they had asked them earlier in the year if they did networking and they had told me the platform didn’t support it… but If this other path works out then ill let you guys know. Perhaps there are more approaches they weren’t currently aware about. Im not sure???

This thread is full of helpful people trying to guess what you might be talking about, but unless you actually explain what on earth you mean by “supports networking” then you’re not really going to get much useful advice!

What I meant was that I’m building a DAW that supports socket p2p connections so that way people can send updates to the DAW in real time and they can collaborate and make music together. Every time a user access a piece of the DAW it locks out for that person so per say an EG just for one particular user, then another user in a completely different area is using per say an oscillator, and they each are using different tracks like 1 and 2, and on the other end someone is updating a MIDI sequence from their keyboard on track 3, another person is running a guitar through a distortion plugin on track 4, and another person is accessing a VST through their browser on track 5. So all of these people need to be able to connect via the socket. We also support a social media as well so the platform needs to be able to create a social media for people to upload, download and share content as well as message each other in MAIL and Chatboxes in the DAW itself and on the social media. It also will support FaceTime. So networking is vital. I had spoke with someone who said they knew someone at Tracktion and said they would get back to me on if that platform would be able to suffice for the project. However at the time they said it didn’t have the networking functionalities I was looking for. Perhaps they had spoke to the wrong person or maybe there was other factors… im not really sure… But if any one has more information I’d be very grateful for any help or knowledge.

As of right now this thread was mostly for how to accept and read a third party plugin into a custom built DAW, but I suppose I could make another one more concentrated on the Networking aspect of traction and if it would be able to just tie in the juce networking portions of the API

you probably should talk to OhmForce guys instead


Yeah, it does sound like OhmForce beat you to that idea by a long way!

The tracktion engine certainly doesn’t support remote syncing out-of-the-box (the only thing I can think of that does is the OhmForce thing)

But if you’re just trying to synchronise projects across a network, then like LiamG said above, the whole engine is based around ValueTrees, and they can be synchronised, so you could add it.

I know I’m obviously biased, but I’d say that if you wrote this whole thing from scratch, you’d spend 1% of your effort on syncing the data, and 99% on all the playback and editing functionality that the engine already does. IMHO if you really want to tackle the project, you’d be better off modding the tracktion engine to add syncing than trying to replace the vast amount of other stuff in there that you’d need to reinvent.

1 Like

I used a lot Ohmstudio (recorded on more than 700 projects there), became a moderator and involved as well.

Sadly, Ohmstudio announced they are closing soon, hence the little app on github (see https://github.com/GroovemanAndCo/MyOhmStudio) that I rapidly developed after the news to allow all the users to at least retrieve their trophies after 9 years…

I know the great guy that is at the heart of FLiP (the library you seem to be looking for) I can eventually connect you to him if you are interested, just PM me and I’ll forward or just contact one of them on the Irisate website.

To learn more about interesting paradigms of collaborations and how FLiP solve them (in particular the discussion about the preservation of the user intention, was new for me) you can watch these:

1 Like

Thank you so much! this is what I needed for my app! if we can get in touch that would be amazing. I currently have some collaboration good to go but if flip can make it better than that would be optimal. As of right now Im adding more functionality ex. plugin importing, Midi importing, FaceTiming, project forking etc. etc. this seems like an opportunity my company would be interested in.