I’m just about to implement a cross-platform generative music engine plugin, with a complex GUI.
I want to figure-out if I should do this with wxWidgets, Juce, or some alternative (maybe even write my own simple layer). I have done many years of cross-platform coding, both audio and GUI, and would like to be able to take advantage of pre-written cross-platform GUI layer to accelerate development if at all possible.
It looks like I have a couple of basic options, including writing an MFX for Cakewalk (MIDI sub-variant of DXi), or a MIDI effect for VST-compatible hosts. I’ve looked at the various SDKs, and
amongst other places.
If I want to write a generative MIDI plugin for VST, then as far as I can tell, that requires me to implement the plugin as a “MIDI effect” using the “Steinberg MIDI Effect API” that is part of the “VST Module Architecture”. If anybody is interested, this is all documented here:
Now then… on to the meat of this post. Juce looks like an interesting alternative to wxWidgets, which raises the following questions:
- It is not clear to me whether or not Juce supports the implementation of MIDI effect components as outlined above. Can anybody please clarify this?
- Similarly, has anybody implemented an MFX (or DXi !) using Juce? I’m not sure if that would be at all easy, the MFX/DXi APIs are highly Windows-specific…
- Has anybody figured-out if you can write a pure MIDI event generator or event responder) plugin as a VSTi? Maybe I don’t need to write an “MIDI effect” at all, but could do this as a type of VSTi? If the answer to 1. was “No”, but 3 was “Yes”, then that might mean that Juce is OK to use.
- I presume that multiple instances of the same Juce-based plugin (dll) can be launched at the same time by the host sequencer… without interfering with each other?
- Does anybody happen to know if MIDI Effect plugins (VST Module Architecture) are fully supported by modern Cakewalk tools?
- Am I missing something, but do AU units really not allow units to generate (or modify) MIDI events that can be passed down-stream to other AU plugins (e.g. to downstream synth units)?
- I know this final question isn’t Juce-specific, but I’d be interested to hear if anybody has an opinion on the future of MFX/DXi as compared to VST MIDI effects…
A lot of questions, but I need to be sure that Juce would take me where I need to go!
Thank you for your time!