-
Notifications
You must be signed in to change notification settings - Fork 404
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
sans GUI for linux headless or embedded #499
Comments
Welcome! Yes but it would be a chunk of work. I’ve wanted headless surge for a while and the classes are fairly GUI separated. So my question back to you is: which of the following best describes your question 1: you are a c++ dev and want to make it work headless - can anyone give me a guide to get started. If so I’m happy to do so when I’m not on my phone! 2: I’m not really a c++ dev and I want to use it headless. In that case we gotta weite some code and I think it will be a little before we do. But entirely possible. If it is #1 I am sure @jsakkine or I could finish up the bones of surge app both in premake and c++ for you to get started. Thanks! |
Bacon Paul,
A super rough binary estimate is what I was hoping for from one of you who has been into this code for a few weeks. Like, has the previous maintainer kept decent separability between gui and logic? And as a person with no VST coding experience, are good programming practices encouraged by the VST framework? I don't want to tax you, but opinions are very helpful and your informed opinion might influence me to try to not try to make the headless version work, because I have a very specific use case on mind, I am thinking about making this run on zynthian or another linux based environment where there is either only a custom GUI or no windowing at all. Thanks, |
Ok great! I’ll write up some notes or maybe even some small bits of code in the next few days to help. Like I said I’ve always wanted exactly this too. You’re not in any rush right? |
no rush at all. I cloned the repo I have never used premake so I am looking into that. |
OK. I was just chatting on slack. I may try and do a basic headless binary quickly now to get you started. It would also guarantee that we are segmenting the code properly. Stay tuned. |
The gui is well separable from the patch/parameter/dsp/synth code so a headless mode should have been readily doable at any time. With this commit, it is done. This shows a small example of setting up and running a 2 oscillator detuned saw configuration of surge. On Linux, one VSTGUI symbol is still pulled in for a reason I can't determine, so introduce it in a fixes file which we need to address in a future issue if/as we develop headless. Closes surge-synthesizer#499.
Hi! So it turns out, mostly because @kurasu was careful and we've stayed careful, that this wasn't that hard and is valuable. Pull request #502 introduces a headless main executable which sets up and configures a surge and ascii-art renders the sawtooth wave. When that's swept, it will auto-close this issue most likely, unless I edit the commit message. But I think that's exactly what you were looking for yeah?! |
The gui is well separable from the patch/parameter/dsp/synth code so a headless mode should have been readily doable at any time. With this commit, it is done. This shows a small example of setting up and running a 2 oscillator detuned saw configuration of surge. On Linux, one VSTGUI symbol is still pulled in for a reason I can't determine, so introduce it in a fixes file which we need to address in a future issue if/as we develop headless. Closes surge-synthesizer#499.
It does indeed. Thank you. |
The gui is well separable from the patch/parameter/dsp/synth code so a headless mode should have been readily doable at any time. With this commit, it is done. This shows a small example of setting up and running a 2 oscillator detuned saw configuration of surge. On Linux, one VSTGUI symbol is still pulled in for a reason I can't determine, so introduce it in a fixes file which we need to address in a future issue if/as we develop headless. Integrates @jsakkine review comments. Closes surge-synthesizer#499.
We will probably merge this tomorrow or Thursday. I incorporated @jsakkine review comments and want to give him time to do one more look Thanks for promoting me to do this! Would be very interested in staying in the convo on where we can take it next |
I read through your PR and except for all those really shameful trailing new lines :) it was very informative. I have no experience in VST or audio so there is a learning curve to be surmounted. I built vst3 on my linux mint laptop last night and could not get the plugin to be recognized by Reaper, Carla, or Tracktion 7. I don't know what I did wrong. I guess I will try vst2 tonight. |
Great! And yeah, ha, indeed. My excitement meant I didn't even do a self-review before I sent it to @jsakkine so feel a bit bad about wasting his time on some of those. But he's a great reviewer. None of us have really tried vst3 linux yet; it is not clear you did anything wrong at all! |
just curious... are there an instructions on how to build Surge without GUI? |
Once this PR is swept, it will happen automatically on linux. We just need to merge the code in #502. ./build-linux will build it along with the vst-en and the (empty) app. |
The gui is well separable from the patch/parameter/dsp/synth code so a headless mode should have been readily doable at any time. With this commit, it is done. This shows a small example of setting up and running a 2 oscillator detuned saw configuration of surge. On Linux, one VSTGUI symbol is still pulled in for a reason I can't determine, so introduce it in a fixes file which we need to address in a future issue if/as we develop headless. Integrates @jsakkine review comments. Closes surge-synthesizer#499. Former-commit-id: e5af93a1547c9fcc9cde0d5afab9470c4ad7c411 [formerly b7c5e79] Former-commit-id: 68846c04ff8eeb445501c1968ea3bdfac7cb100b Former-commit-id: 49591ced492e2e5290c1155b95bb5198e4ddb159
Are there clear points in the code where the GUI can be suppressed? I would like to play around with a headless version for semi-embedded use on linux.
The text was updated successfully, but these errors were encountered: