-
-
Notifications
You must be signed in to change notification settings - Fork 1k
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
SDK for custom instrument creation #19
Comments
What should this SDK contain? I might have some notes from a first-timer point of view on putting together a plugin. |
Well. If we could add lmms as an architecture to faust I would be a happy, happy soundhacker. :o) There is also Cabbage which use Csound to create cross platform soundapps. It could perhaps be tweaked to generate lmms plugins? |
Basically the SDK would contain most of the files of the "include" directory and maybe the BuildPlugin cmake file - nothing special. In the end this would be up to the distribution package maintainer to provide a separate "liblmms-dev" package or similiar. |
You know what else im thinking and it woudl involve a fair bit of work. I On Wed, Jan 15, 2014 at 10:58 PM, tobydox [email protected] wrote:
Jonathan Aquilina |
I posted about this on lmms-devel, forgetting that there was a bug report. I think that using something that already exists, like csound or Pd, would suit LMMS' swiss army knife nature better than writing yet another SDK that's incompatible with everything out there. The advantages include a user base that already exists and knows how to make patches in each of these tools, a huge number of sound options that already exist (csound has 1700 opcodes and supports plugins on its own, Pd isn't quite as extensive but is easier to wrap your head around and was made with a GUI in mind) and not contributing to the fractious nature of Linux/Free audio software. Here are some possibilities, and of course there are others:
As I understand it, Pd can use csound as an instrument, and for all I know the opposite may be true too. So either of these options would accomplish a lot of what the OP is asking for, without having to reinvent the wheel, introduce yet another competing plugin "standard", nor make would-be instrument creators learn to write code or edit XML files by hand (except for option #3). |
I have very limited knowlege on Pd or Csound, but I think I'd finally learn Is integrating AMS or Ingen an option? Anybody knows what I'm talking about? On 17 Jan 2014 20:03, "raindog469" [email protected] wrote:
|
"If we could get other As artist I don't yet feel the need, but then I am not that kind of artist who uses a week on making an instrument, not yet at least ;-) |
I think you mean something like this. (not the media player part...) Edit: Removed not-so-pretty image... :) |
Never really gave it much thought about the look but i think that would Toby could we get a branch for this based of stable? or do you think this On Tue, Jan 28, 2014 at 2:59 PM, Oskar Wallgren [email protected]:
Jonathan Aquilina |
Bitwig studio is being launched in a few months and they have announced a future built in modular synth to be able to generate instruments. So maybe dust off alsamodular? :-P |
My goal is to turn this into more then a music production platform. I want On Mon, Jan 27, 2014 at 7:08 PM, Stian Jørgensrud
Jonathan Aquilina |
I'd love to be able to create custom plugins. |
I think what we need for this is a documented api
|
What is the status of this issue? For what it's worth, I do have experience working with the Csound API, and I have mucked around with the internals of both PD and ChucK. I also have a pretty good embedded synthesis language of my own called Sporth that is quite easy to drop into larger projects. |
No one is working on this. I also don't know if we have a consensus on what SDK means.
If we can get a language like Csound into LMMS, I assume it would be just the
Someone's been busy... 🐳 |
Definitely an LMMS noob, but I do have experience working with various music language APIs and plugin formats. Getting languages like Csound/Sporth into LMMS is straight forward enough. Glancing at the LMMS source code, it already looks like there's a defined third-party plugin format in C++ (have not tested this, but here I am assuming it works). It is mostly a matter of putting the API functions in the right places within the plugin, and linking the libraries up. The difficulty in my mind is setting up UI and binding it to parameters within the respective language. If you are not baking the UI into the plugin at compile-time, you'd want a way of defining a layout and adding widgets (some sort of XML/JSON markup perhaps?), which can then be loaded and parsed when the plugin itself is parsed. This is something I wouldn't know how to do. In a single instrument plugin setting, there would probably be a "load" button, where a file browser would pop up and you'd select the file you'd want to load, which would be "remembered" the next time you open up the project. This sort of functionally I would have to figure out as well. PS: @zonkmachine you mentioned Faust, which is also not a bad option. I've made Faust architecture files in the past, and they aren't too difficult to make. |
Seems to me that Faust is shaping up to be really good "cross-platform" (in the sense that it compiles to PD, Supercollider, web-audio, VST and C++), high-level language for defining synths and effects units. Co-operating with the Faust development people to make it into a first-class citizen of the LMMS ecosystem would pay huge dividends. (For both communities). |
A little bit of progress here. About a month ago, I made a proof of concept LMMS plugin that doesn't need to be compiled with LMMS: https://github.com/paulbatchelor/lmms-reverbsc It uses cmake, and includes the headers from LMMS. It's overkill, but not unheard of. The VST SDK The great thing about this is that it allows you to rapidly prototype outside of the LMMS codebase. The next step is doing some tests to get FAUST-generated C++ hooked up, and to figure out a way to get LMMS UI elements to fit into the mold of the FAUST UI elements. From there, you can build a FAUST architecture file for LMMS, which more or less just a text template. At that point, you can build a faust2lmms script which automatically generates LMMS plugins from FAUST code! |
Duplicate of a few separate bugs: #2616, #3412, #562, #416 are the best topics of discussion with the general consensus to be to dedicated time to LV2 (Which stands for Linux Audio Developer's Simple Plugin API "LADSPA" version 2) with some mentions of LinuxVST as well -- Both of which offer instrument plugin capabilities. Furthermore, @PaulBatchelor's stop-gap proof of concept plugin can do exactly what the OP requests, so closing this one out. |
This is an idea. I am not sure if there is already something of the sort available, but I think it would be awesome to have the ability to create custom instruments from scratch. This would greatly benefit lmms in the sense that the community can also contribute not only songs but new instruments as well.
The text was updated successfully, but these errors were encountered: