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

sans GUI for linux headless or embedded #499

Closed
gminorcoles opened this issue Feb 4, 2019 · 12 comments · Fixed by #502
Closed

sans GUI for linux headless or embedded #499

gminorcoles opened this issue Feb 4, 2019 · 12 comments · Fixed by #502
Labels
Linux Issues which only occur on Linux

Comments

@gminorcoles
Copy link

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.

@baconpaul
Copy link
Collaborator

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!

@gminorcoles
Copy link
Author

gminorcoles commented Feb 4, 2019

Bacon Paul,

  1. I am a c++ developer. I tell myself to keep music about playing music not coding, but I kind of can't help myself.

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,
BTW I am already using surge on my Surface Pro on windows 10 and it so far just works and is pretty awesome.

@baconpaul
Copy link
Collaborator

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?

@gminorcoles
Copy link
Author

no rush at all. I cloned the repo I have never used premake so I am looking into that.

@baconpaul
Copy link
Collaborator

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.

baconpaul added a commit to baconpaul/surge that referenced this issue Feb 4, 2019
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.
@baconpaul
Copy link
Collaborator

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?!

baconpaul added a commit to baconpaul/surge that referenced this issue Feb 4, 2019
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.
@gminorcoles
Copy link
Author

It does indeed. Thank you.

@esaruoho esaruoho added the Linux Issues which only occur on Linux label Feb 5, 2019
baconpaul added a commit to baconpaul/surge that referenced this issue Feb 5, 2019
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.
@baconpaul
Copy link
Collaborator

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

@gminorcoles
Copy link
Author

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.

@baconpaul
Copy link
Collaborator

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!

@tank-trax
Copy link
Collaborator

just curious... are there an instructions on how to build Surge without GUI?

@baconpaul
Copy link
Collaborator

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.

baconpaul added a commit to baconpaul/surge that referenced this issue Jul 10, 2019
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Linux Issues which only occur on Linux
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants