Hi, First of all I used AI. It helped me get my USB interface going by adding to the xhci driver, only enough for audio. Then I used it to port Jack2, Jack example tools, the VST3sdk and Neural amp modeler. There is no GUI for VST3 so the NAM player only uses sliders. It supports the new A2 captures.
Depending on your hardware you can adjust Frames/period in Jack settings using the patchbay Jack Graph. On my laptop 256 seems to work well. The DAW does the basics, it ain’t no Reaper or Ardour
Awesome, I had a VST3 port on the back burner. It has a very permissive license, so was thinking of adding it to my Media-OS project. I did adopt a part of your audio driver work for my usb_audio replacement, in particular the code that allowed for automatic reconnects. I just sent you an invite to the Media-OS repo if you would like to check it out. Audio should also work for you with your device, and possibly MIDI, if you have it, with my usb_midi replacement.
Ok I’ll have a look. I’ve been using midi with jack, it connects to haiku’s existing midi2 kit. In the daw I use a midi footswitch for guitar and a DTX502 drumkit. In the VST3sdk there is a few synths that come with it.
Looks nice, but had some small and big issues for usage, like does not support plugins with UI and VST3 only (already opened issue for that) And, I thought, will be nicely if DAW had not exclusive usage of soundcard, instead of using mixer node for shared audio usage like PipeWire on *nix’es.
Interesting why do you use JACK kit instead of directly using of MediaKit+MidiKit2 if you’re already create fully native UI? Also as glib for messaging, by default in Haiku exist messaging system for IPC and other purposes. I think that’s some overhead for realtime performed software.
Thanks for the feedback. Yeah gui support would be great but i haven’t worked on that part of the VST3sdk yet so it just uses sliders in the fx window. I also ported LV2 an included gui support. I compiled some gx plugins but they also use sliders as their gui does not support haiku.
I’ve never used pipewire in linux. In haiku with jack running and using my interface I can still use media player and ice weasel with the laptop speakers.
I use jack because I like it, this is not about what is better, I just like jack and have used it a lot. Also to port the VST3sdk it was easier to do it using the port I had already created for jack.
Native Haiku VST3 support would be awesome and now has a compatible license. Prior VST SDKs were a more restrictive license. Regardless, even if we create a native VST3 implementation, some ported tools will likely need Jack and it only makes sense that they have their own VST3 implementation as well. I think I may take a look at it soon and see if I can’t get something native going.
If you’re need any help with UI SDK (different I think for some plugins, if it’s not based on JUCE or DPF) I could provide any information and help
Also as information about some requirements for proper working on Haiku target, like paths, UI behaviors or lifecycle of plugin. And for concept here working VST2 plugins with native UI with VSTGUI 3.x and LSP framework (with native backend of course).
Those screenshots look great. Thanks for the offer, the code is there for all, you can do whatever you like. It uses vstgui4. I’m more of a fan of LV2 and for now I am working with that.
Where is the VST2 host available? I am trying to crank out a native VST3 implementation now. First two GUIs I have on the checklist are VSTGUI and JUCE.
Already in Haiku base system vst_host.media_addon, clean room reverse engineered host for wrap plugins as media add-ons for MediaKit, and XRS, software for creating loops. UI by default supported only in XRS (with some limitations, cause some things need to be debugged and fixed, like properly close of all plugin instances after exit), patches for host add-on need to be refactroed, cause some architecture problems like how correctly close window and surface after node release, separate synths/instruments and effects and some other smaller things.
VST3 I did not tried, cause before there no host for it. And about JUCE, that’s really monster size software, for base subsystem without UI handling patch file grow so fast
I have one VST2, Superior Drummer 2, windows version. I wonder if that could ever work on haiku?
I added GUI support for LV2 and VST3. VST3 uses IPlugView. It is documented in HAIKUGUI.txt in the repo. Added the gui to NAMku and made a basic GUI for DRUMku. hktuner is a plugin made using LV2
I am definitely not interested in porting JUCE in it’s entirety. The audio and MIDI portions of the host will all use native Haiku API. I only want to port a GUI subset of JUCE that will help UI/messaging elements get ported.
Works with HDA without the usb kernel fix. Jack graph > Jack settings > Interface > hda/* You might want to up the Frames/buffer to 512. Just experiment. You have to stop the server to change frames/buffer. This is all done in the Jack settings window of jack graph
Did you build package with that version for testing purposes? I tried to build my port of LSP plugins in VST3 format (they did not use official SDK and all things reimplement in their own code) and it works good without any errors while I add plugin to track
I build jackdaw against my Haiku port VST3-haiku, but that’s only for the host side. It doesn’t require anything from the plugins. So any plugin that implements it correctly will load, whether or not it uses the official sdk. Thanks for testing.
VST2 version works with small issues but mostly correctly (hint 1: layout need to be done after resize of plugin frame by itself, hint 2: canonical path for VST2 plugins in haiku is only add-ons/media/vstplugins, for other formats (for example ~/config/non-packaged/add-ons/media/(VST3/CLAP/LV2)) they need to be placed also in media sub directories, as canonical path, and unlike *NIX’es we did not using .folder-name, for that purposes we have ~/config hierarchy. Hint 3: in BeOS VSTPluginMain is not only the symbol for main entry point, we also had same symbol and its default - main_plugin). Also you can done test with mda plugins package from repository and using layout form that package.
Forgot yet another thing to hint, VST2 plugins not usually had .so extension, generic BeOS era plugins usually does not have any extension, so helper need to be tuned for correctly work in that cases
Thanks for the tips. I’ll look into them. I added some patches to wine and got some of my windows plugins working. Superior drummer is vst2 and Amped-Roots is vst3