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

Piano keys to the bottom of Surge #486

Closed
jarkkojs opened this issue Feb 3, 2019 · 21 comments
Closed

Piano keys to the bottom of Surge #486

jarkkojs opened this issue Feb 3, 2019 · 21 comments

Comments

@jarkkojs
Copy link
Collaborator

jarkkojs commented Feb 3, 2019

Would be really nice to have for testing (especially on Linux where we still mostly use Carla) piano keys in the bottom of the UI, maybe with a show/hide button. Does VSTGUI have something of-the-shelf for this?

@baconpaul
Copy link
Collaborator

I almost did this on Mac also but then just made midi routing work in the hosts and uses someone else’s keyboard

Afaics there is no such widget

A much easier thing is to add some special keystrokes which put you in midi keyboard mode. So press CTRL alt x r 17 or something and then a sends an a note

But Carla should have a routing screen keyboard available no? May be easier!

@jarkkojs
Copy link
Collaborator Author

jarkkojs commented Feb 3, 2019

Ping @falkTX (again) :)

@jarkkojs
Copy link
Collaborator Author

jarkkojs commented Feb 3, 2019

@baconpaul, I believe you, but feels weird that such isn't in the default stock of widgets.

@falkTX
Copy link
Contributor

falkTX commented Feb 3, 2019

I have almost no experience with vstgui, cant help much here.
you can use carla on mac and windows though, which provides the keyboard widget thing playable with pc keys :)

@baconpaul
Copy link
Collaborator

Yup; bitwig does it with caps lock too on all platforms; and hosting AU has keyboard input as does logic on mac. So I think you and I are saying the same thing, @falkTX which is it is better to get running in one host and then use the host to route midi than to kill ourselves adding a keyboard.

@baconpaul
Copy link
Collaborator

@falkTX does “Carla-single” have a way to generate midi into the plugin? That would completely solve the problem for @jsakkine. (That’s basically what I use hosting AU for on mac; a super lightweight AU host which can route audio and so on and starts in a second, not in 14 seconds like full blown logic)

@jarkkojs
Copy link
Collaborator Author

jarkkojs commented Feb 3, 2019

Off-topic alert, but I put it here anyhow, because it is bright in my mind right now.

I swapped emails with the guy who did TuneFish synthesizer. They used VSTGUI first, but moved to Qt because according to the developer "Qt is by far the best framework (at least in my opinion) when it come to UI for C++". I don't disagree.

The only reason they did move to JUCE from Qt was according to the developer that "JUCE wraps all the major audio APIs for you".

I've talked with some other people about JUCE, and the message that I get is, yes it makes adaptation easy, but at the price of loosing some flexibility. You kinda have to live forever in the JUCE sandbox.

This makes, at least me to conclude, that since we already adapt to the all the major plugin platforms, lets keep the flexibility and freedom to do whatever we want, and lets not adapt to JUCE in the forseeable future (stating it like this because never say never).

@baconpaul
Copy link
Collaborator

Yeah also I think if we can ship 1.6 without, you know, rewriting the entire ui in qt or what not that would be great. I hope we can cobble it to working on Linux this winter and then think about that decision “later”

Also agree juce would have been a good choice starting from blank but from where we are may not offer us quite as much.

@falkTX
Copy link
Contributor

falkTX commented Feb 3, 2019

@falkTX does “Carla-single” have a way to generate midi into the plugin? That would completely solve the problem for @jsakkine.

carla-single plugs into JACK in a modular way, exposing midi and audio ports. so you can use then jack-keyboard to feed midi into it.

regarding juce: since this is already cross-platform, there is no need for bloating the code with juce stuff.
also, I got surge to build with my own tiny framework (DPF), this is how I made the first advances regarding the event loop. but for now getting the VST2 version out is already awesome.

@jarkkojs
Copy link
Collaborator Author

jarkkojs commented Feb 3, 2019

@baconpaul, Yes, this was not really proposal to use Qt right now. This was more like explanation why JUCE would be a bad choice at any point :) I could do a PR and derive something based on that text directly to our developer documentation. It is a design choice that should be documented.

If someone puts issue suggesting JUCE we can point them to the documentation.

@baconpaul
Copy link
Collaborator

Ok so how about we write up a short readme section on using Carla single and jack keyboard configured to play notes and then close this issue?

Cool!

@baconpaul
Copy link
Collaborator

Sounds good. I like documentation

What would be great is documentation on “here’s the Carla and jack commands which pop up surge and a keyboard and lets you make noise” tho. Honestly as a Linux desktop noob I could use that!

@falkTX
Copy link
Contributor

falkTX commented Feb 3, 2019

See repos at http://kxstudio.linuxaudio.org/Repositories
(requires gcc5 too, but I will remove the need for this very soon)

When done, install carla-git

# terminal 1
carla-single vst /path/to/surge.so

# terminal 2
jack_connect Surge:output_1 system:playback_2
jack_connect Surge:output_2 system:playback_2
jack-keyboard

@falkTX
Copy link
Contributor

falkTX commented Feb 3, 2019

jack commands are tricky, depends on the hw you have...

@baconpaul
Copy link
Collaborator

Thanks!

@baconpaul
Copy link
Collaborator

OK so I just dropped the latest surge.so into the carla patchbay and wired it up to the output and pressed the keyboard and got sound in my ubuntu vm.

So I really don't think we need to add this, @jsakkine - we can use external tools and keep the code much simpler.

Mind if we close it?

@baconpaul
Copy link
Collaborator

Hey @jsakkine I think I'm going to close this for now. Please re-open it if you feel strongly we should add this feature. No offense of course, just I don't think we need it to test linux right now.

@jarkkojs
Copy link
Collaborator Author

jarkkojs commented Feb 6, 2019

Please re-open it just so that I remember do to README.md update. That analysis about JUCE is worth of documenting.

@jarkkojs
Copy link
Collaborator Author

jarkkojs commented Feb 6, 2019

I will close it after doing a PR.

@baconpaul baconpaul reopened this Feb 6, 2019
@jarkkojs
Copy link
Collaborator Author

jarkkojs commented Feb 8, 2019

Getting this done tomorrow. Busy week at work.

@jarkkojs
Copy link
Collaborator Author

Check #564.

baconpaul pushed a commit to baconpaul/surge that referenced this issue Jul 10, 2019
Summarizes the discussion in surge-synthesizer#486.

Closes: surge-synthesizer#486

Former-commit-id: 5b0bc4a65d764a0891ee11f78839151242771727 [formerly edd9a81]
Former-commit-id: 739dcf8afc7a97179c5d94eed3d2de714809186b
Former-commit-id: c6c031aacb2fd9e57ac3172066b88f9aa8efd432
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants