Add native VST support for Mac OS X (WIP)
- Dominant language
- C++
- Stars
- 10.4k
- Forks
- 1.3k
- Avg merge
- 2d 13h
- Merged PRs (30d)
- 7
Description
### Background
I had originally assumed that the reason for LMMS using WINE for VST (non-)support on Mac was because there weren't sufficient native Mac VSTs to justify adding native support. After playing with [Helio Workstation](https://github.com/peterrudenko/helio-workstation/) I discovered that there's plenty of native Mac VSTs so I decided to investigate adding support for them to LMMS.
### Progress so far
I've reached a point[1] where I think I've made sufficient progress that I wanted to keep track of development here--meaning that if I don't get to finishing it hopefully someone else can build on it without having to re-learn all of my lessons. :) (I've discovered a lesson I just learned was already in an unmerged WIP PR from someone else. :) )
The two parts of progress so far are:
* Proof-of-concept for opening Mac native VST within Qt 5.5 application: https://github.com/follower/qt-vst-mac-native-poc (which might also be suitable for a Qt-based mostly cross-platform implementation).
* Compilation of sufficiently hacked up versions of `vst_base`, `vestige` and `RemoteVstPlugin` that LMMS will startup, show the Vestige plugin, allow it to be dragged onto a track, display a file open dialog box, allow selection of an actual binary of a VST renamed with a `.dll` extension and then display the following error messages (without actually crashing):
```
RemotePluginClient::shmget: No such file or directory
RemoteVstPlugin.cpp::shmget: No such file or directory
RemoteVstPlugin.cpp: Failed to initialize shared memory for VST synchronization.
```
The final lesson I needed I eventually discovered had already been mentioned here: https://github.com/LMMS/lmms/pull/2393/commits/d7a63c5adda5d3878f033569453fed44e699e7e9#diff-0cfe54b7b7513b8854b14b3fb8411b78R115 (but, hey, at least I learned something along the way :) )
[[1] *Context: I started writing up this issue maybe a couple of weeks ago and wanted to make it more "complete" before posting it but since that approach doesn't seem to be working I thought I'd just dump it in here now as is and then add to it as I get the opportunity.*]
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reviewing the linked qt-vst-mac-native-poc and the existing vst_base, vestige, and RemoteVstPlugin work, including the referenced PR commit. Reproduce the current startup, plugin selection, and shared-memory errors on Mac OS X. Done means a native Mac VST can be opened and placed on a track without the reported synchronization failures.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, macos
- Domain
- audio-video-rtc, desktop
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 15/100