Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LV2 plugin #126

Open
LeStahL opened this issue Dec 13, 2023 · 5 comments
Open

LV2 plugin #126

LeStahL opened this issue Dec 13, 2023 · 5 comments
Labels
enhancement New feature or request

Comments

@LeStahL
Copy link
Contributor

LeStahL commented Dec 13, 2023

Sointu could have a LADSPA plugin target (https://www.ladspa.org/ladspa_sdk/ladspa.h.txt).
This would enable the use of LMMS (or other, more unix-based sequencers) with Sointu.

@vsariola vsariola added the enhancement New feature or request label Jan 1, 2024
@vsariola
Copy link
Owner

vsariola commented Jan 1, 2024

Spying how vst2 package does it would be a good idea https://github.com/pipelined/vst2 Having a general package for making LADSPA plugins and then make sointu use that would be a good idea.

@LeStahL
Copy link
Contributor Author

LeStahL commented Feb 22, 2024

LADSPA API can not process MIDI events, only samples - LV2 is the correct choice of API here, so I'll rename the ticket.

@LeStahL LeStahL changed the title LADSPA plugin LV2 plugin Feb 22, 2024
@vsariola
Copy link
Owner

vsariola commented Feb 24, 2024

I don't think I will have the energy to do this, but the correct approach would be to make a package similar to vst2 that bridges the calls from Go to C and vice versa, and then use that within sointu. One could either do a minimal wrapper without adding any functionality, or perhaps similar wrapper like the LV2 C++ wrappers, which give default implementations for functionalities so one needs to only write the interesting functions.

I don't like how they decided to have LV2 plugins be folders, with multiple files and metadata; this complicates builds in go a lot, because go generally assumes "one executable" builds and has no build automation on its own. I really wish distributing LV2 would be as simple as "single shared object", like VST2. Apparently VST2 didn't get everything wrong (but quite many things they did).

@vsariola
Copy link
Owner

If someone krhmkrhm is interested to take on the job, I'm happy to delegate :D

@LeStahL
Copy link
Contributor Author

LeStahL commented Feb 24, 2024

I'd be interested to write this (and also write & maintain a go module for easy access to LV2), but it may take some time until I start, because I'm busy atm with the upcoming Revision compos :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants