First steps for creating a synth for LMMS

Anything that doesn't fit into other topics goes here!
I moved from FL Studio to LMMS to use a program where creations can be shared and opened on anyone's computer with the software (much like music modules on the Amiga). Therefore, I have stopped using VSTs and samples and made all my music using the inbuilt synths (or inbuilt samples for drums).

There have been occasions where I haven't been able to make the timbre that I want with the inbuilt synths - sure a lot of it could come down to skill and my experience is with subtractive synths. To be clear, I haven't really delved into ZynAddSubFX.

This got me thinking. If I was able to program a potential inbuilt synth based on the ability to enter Fourier coefficients - and I got it to the stage where someone would like to use it, I or other users would be able to build complex waveforms based on Fourier analysis. I have a little knowledge of C++ and other object oriented languages (I studied courses in Java and Python at University).

I additionally have a level of knowledge of Matlab which I also used / use at University. I actually created for my own learning, a very basic VST quite some time ago using the C++ WDL-OL library, a lot of trial and error and the knowledge I had of other languages.

I had a look at the source code for the Triple Oscillator and the Organic synths today and it looks like the classes such as for example Oscillator.h make things very streamlined.

I would like to start my concept by generating the approximations of a square wave and a saw wave based on Fourier coefficients which I can type into the synth. Is there a way that I can just compile the synth each time as I work on this instead of compiling the whole LMMS package. It looks like I can't just drop the .dll into the synths folder (I am using Windows and Visual Studio, but I wish to make my end concept for all systems). Neither can I load an LMMS inbuilt synth into VeSTige.

I would like to contribute with more than music, and i think this is a good idea, but I don't know where to start. Once I put my mind to something I usually get it done.

I reckon if I look hard enough someone has probably already made a VST for this, and i read somewhere the other day about a hardware synth based on this concept (that I now can't find). However, I think this would be a good idea for an inbuilt synth.
ewanp wrote:
Sun Nov 10, 2024 9:15 am
I moved from FL Studio to LMMS to use a program where creations can be shared and opened on anyone's computer with the software (much like music modules on the Amiga). Therefore, I have stopped using VSTs and samples and made all my music using the inbuilt synths (or inbuilt samples for drums).

There have been occasions where I haven't been able to make the timbre that I want with the inbuilt synths - sure a lot of it could come down to skill and my experience is with subtractive synths. To be clear, I haven't really delved into ZynAddSubFX.

This got me thinking. If I was able to program a potential inbuilt synth based on the ability to enter Fourier coefficients - and I got it to the stage where someone would like to use it, I or other users would be able to build complex waveforms based on Fourier analysis. I have a little knowledge of C++ and other object oriented languages (I studied courses in Java and Python at University).

I additionally have a level of knowledge of Matlab which I also used / use at University. I actually created for my own learning, a very basic VST quite some time ago using the C++ WDL-OL library, a lot of trial and error and the knowledge I had of other languages.

I had a look at the source code for the Triple Oscillator and the Organic synths today and it looks like the classes such as for example Oscillator.h make things very streamlined.

I would like to start my concept by generating the approximations of a square wave and a saw wave based on Fourier coefficients which I can type into the synth. Is there a way that I can just compile the synth each time as I work on this instead of compiling the whole LMMS package. It looks like I can't just drop the .dll into the synths folder (I am using Windows and Visual Studio, but I wish to make my end concept for all systems). Neither can I load an LMMS inbuilt synth into VeSTige.

I would like to contribute with more than music, and i think this is a good idea, but I don't know where to start. Once I put my mind to something I usually get it done.

I reckon if I look hard enough someone has probably already made a VST for this, and i read somewhere the other day about a hardware synth based on this concept (that I now can't find). However, I think this would be a good idea for an inbuilt synth.
I think the most important is this:
Is there a way that I can just compile the synth each time as I work on this instead of compiling the whole LMMS package.
No, you need to integrate the new generator into the core LMMS, so stand-alone compatible with LMMS is not possible.
Neither can I load an LMMS inbuilt synth into VeSTige.
Again same issue. The inbuilt synth in LMMS is not Vestige-architecture. They are proprietary LMMS, and cant natively work outside LMMS core -Its a drag, and will be a focus-point 'some day' :|
Unfortunately compiling /building LMMS on windows is ..cumbersome /frustrating and also very resource heavy. Doing it in Linux is easy, but not so in VS. I think you better have a talk with Dominic (Dom) who is our master-windows guy. We have a Discord-server with a DEV-only channel. The project are looking for new DEVs and you will be met with open arms :)
Here you can read about participation in the project : https://lmms.io/get-involved

Besides that, since you are new in Forum
Welcome ewanp !
Here are all important links:
http://lmms.io/forum/viewtopic.php?f=1&t=4740
-A few rules and useful forum instructions
If you like to introduce yourself, to the community, go here:
http://lmms.io/forum/viewtopic.php?f=4&t=4480
Thanks musikbear,

I believe that I could be able to assist with the programming of synths, but not the development of the larger program as my programming knowledge is limited to courses that I have studied as part of another degree - I don't have the practice. I say that as the classes look very well developed and straight forward to use for something simple like synth programming.

I will sign up on the Discord, and I am going to see if I can partition my drive if Linux is a better option. I previously used Linux, but switched back to Windows to use other software that only worked on Windows.

I just noticed that my 'idea' is already in LMMS and was in all along, it is the "Harmonic Generator" effect Plugin.