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

Feature: Carla automation #5846

Merged
merged 21 commits into from Jun 30, 2021
Merged

Feature: Carla automation #5846

merged 21 commits into from Jun 30, 2021

Conversation

cyber-bridge
Copy link
Contributor

@cyber-bridge cyber-bridge commented Dec 12, 2020

Continuation of #4571

What has changed since #4571:

  • Added plugin groups (Multiple plugin support).
  • Added MACRO's so it also compiles with older versions of Carla which don't support the params.
  • Params are automaticly refreshed when something with the plugins in Carla has changed.
  • The amount of params (knobs) in a row will now depend on the params window it's width and the largest knob width.

TODO:

  • Save/load params window state.
  • Remove debug code
  • Code style

Params window screenshot

@LmmsBot
Copy link

LmmsBot commented Dec 12, 2020

🤖 Hey, I'm @LmmsBot from github.com/lmms/bot and I made downloads for this pull request, click me to make them magically appear! 🎩

Windows

Linux

macOS

🤖
{"platform_name_to_artifacts": {"Windows": [{"artifact": {"title": {"title": "64-bit", "platform_name": "Windows"}, "link": {"link": "https://14088-15778896-gh.circle-artifacts.com/0/lmms-1.3.0-alpha.1.139%2Bg714e19972-mingw-win64.exe"}}, "build_link": "https://circleci.com/gh/LMMS/lmms/14088?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link"}, {"artifact": {"title": {"title": "32-bit", "platform_name": "Windows"}, "link": {"link": "https://14087-15778896-gh.circle-artifacts.com/0/lmms-1.3.0-alpha.1.139%2Bg714e19972-mingw-win32.exe"}}, "build_link": "https://circleci.com/gh/LMMS/lmms/14087?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link"}, {"artifact": {"title": {"title": "32-bit", "platform_name": "Windows"}, "link": {"link": "https://ci.appveyor.com/api/buildjobs/02fyitfeo8kkj54v/artifacts/build/lmms-1.3.0-alpha-msvc2017-win32.exe"}}, "build_link": "https://ci.appveyor.com/project/Lukas-W/lmms/builds/39706821"}, {"artifact": {"title": {"title": "64-bit", "platform_name": "Windows"}, "link": {"link": "https://ci.appveyor.com/api/buildjobs/2jay67faltly3tra/artifacts/build/lmms-1.3.0-alpha-msvc2017-win64.exe"}}, "build_link": "https://ci.appveyor.com/project/Lukas-W/lmms/builds/39706821"}], "Linux": [{"artifact": {"title": {"title": "(AppImage)", "platform_name": "Linux"}, "link": {"link": "https://14089-15778896-gh.circle-artifacts.com/0/lmms-1.3.0-alpha.1.139%2Bg714e199-linux-x86_64.AppImage"}}, "build_link": "https://circleci.com/gh/LMMS/lmms/14089?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link"}], "macOS": [{"artifact": {"title": {"title": "", "platform_name": "macOS"}, "link": {"link": "https://14086-15778896-gh.circle-artifacts.com/0/lmms-1.3.0-alpha.1.139%2Bg714e19972-mac10.14.dmg"}}, "build_link": "https://circleci.com/gh/LMMS/lmms/14086?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link"}]}, "commit_sha": "ffd4662e59122de12fb4cf73f9c31cd73ca83d0b"}

@PhysSong
Copy link
Member

@falkTX Could you check if interactions with Carla are correct?

@arthurdead
Copy link

pre-built version based on ca17641 with this PR applied
target.zip
seems to be working fine i got a crash while testing but i dont remember what i did and it hasnt happened since then

i would make a appimage but the script doenst work on my machine

@tinkerlevu
Copy link

tinkerlevu commented Jan 14, 2021

Yeah, I would also like to get an appimage to test out, but that build has expired and my dependencies are a mess...

@tinkerlevu
Copy link

(Finally) managed to build an Appimage based on 97114fb

From my limited testing so far, Carla automation and everything seems to work fine.

For anyone else who may want to test out and/or access this feature early, here it is: lmms-1.3.0-alpha.1.44+g97114fb-linux-x86_64.AppImage


also for some reason, this PR doesn't really show up on google when you search for 'lmms carla automation'... *annoying*

@tinkerlevu
Copy link

Just a few minor niggles after playing around with it (#5846 (comment)):

  1. Connected knobs do not immediately disappear if all linked automation tracks and/or controllers are deleted while 'Show only knobs with a connection' filter is enabled in the Parameters dialog. This might be intentional or desirable behavior idk.
  2. I had a small crash with one of the Calf compressors while aimlessly playing around with its threshold settings rapidly in the Carla parameters window with my mouse (also while a midi controller connected to that param through Carla.)
    • cannot reproduce.
    • probably unrelated.
  3. All my Carla Parameters were lost and reset to default after a crash.

Other than that this seems really solid! and it makes Carla an absolute joy to use! Great work 👍🎉🎉

@cyber-bridge
Copy link
Contributor Author

cyber-bridge commented Jan 19, 2021 via email

@tinkerlevu
Copy link

@cyber-bridge It's the least I could do... (^u^)

Really hope this gets merged man...

@Spekular Spekular added this to In Progress in Project reformatting via automation Jan 20, 2021
plugins/carlabase/carla.h Outdated Show resolved Hide resolved
@cyber-bridge
Copy link
Contributor Author

cyber-bridge commented Jan 30, 2021 via email

@cyber-bridge
Copy link
Contributor Author

cyber-bridge commented Jan 31, 2021 via email

@cyber-bridge
Copy link
Contributor Author

I've just finished reviewing the code and found some issues, feel free to comment. Will address those issues soon.

plugins/carlabase/carla.cpp Outdated Show resolved Hide resolved
plugins/carlabase/carla.cpp Outdated Show resolved Hide resolved
plugins/carlabase/carla.cpp Outdated Show resolved Hide resolved
plugins/carlabase/carla.cpp Outdated Show resolved Hide resolved
plugins/carlabase/carla.cpp Outdated Show resolved Hide resolved
plugins/carlabase/carla.h Outdated Show resolved Hide resolved
plugins/carlabase/carla.h Outdated Show resolved Hide resolved
plugins/carlabase/carla.h Outdated Show resolved Hide resolved
plugins/carlabase/carla.h Outdated Show resolved Hide resolved
plugins/carlabase/carla.cpp Outdated Show resolved Hide resolved
CYBERDEViL and others added 7 commits June 9, 2021 15:26
 + Renamed 'maxWidth' to 'maxKnobWidth' 'cause that's what it is.
…stency.

Methods:
 - CarlaInstrument::clearKnobModels() to CarlaInstrument::clearParamModels()
 - CarlaInstrument::knobModelChanged() to CarlaInstrument::paramModelChanged()
 - CarlaInstrument::updateKnobModel() to CarlaInstrument::updateParamModel()

Members:
 - m_knobGroupCount to m_paramGroupCount
@JohannesLorenz
Copy link
Contributor

@cyber-bridge Do you think this can be merged without further review? I ask because because this is one of the latest pre-refactor branches. But if you think more review is required, that's also OK.

@cyber-bridge
Copy link
Contributor Author

@JohannesLorenz , yes I think merging would be a good thing; I'll be available for bug review/fixing when they get reported.

"Save/load params window state." is still TODO but could be added later.

There is also this #5846 (comment) (issue 1.) ; I've looked into the issue but there isn't a easy fix I'm aware of and I'll think it will need some code changes in LMMS itself to get notified when a model gets disconnected. The other two issues (2. and 3.) mentioned in that comment I could not reproduce and are probably unrelated as also mentioned in the comment.

@JohannesLorenz
Copy link
Contributor

OK, thanks. These seem all minor things to me, I'm happy to merge this.

@JohannesLorenz
Copy link
Contributor

Oh, should I squash all into one commit @cyber-bridge ? Do you have a descriptive commit message?

@cyber-bridge
Copy link
Contributor Author

@JohannesLorenz yeah squashing will be good 👍

Expose Carla parameters for automation.

A new button called "Params" is added to the Carla instrument window; on press
it will open a new sub-window where Carla parameters can be found, ready for
connecting to a automation-track or controller. The exposed parameters in the
sub-window can be filtered by text and there is the ability to display only
parameters that are connected to a automation-track or controller. When there
are multiple plugins loaded inside Carla, the combo-box inside the (LMMS)
parameters sub-window can be used to switch between parameters of a specific
plugin (Carla).

Notes:

 - Available when compiled with Carla version 2.1 and up.
 - Currently Carla (2.1) will expose a maximum of 110 parameters.
 - The param window state isn't stored yet in a LMMS project, this is still
   TODO.
 - Connected paramters will NOT instantly disappear when they are disconnected
   with the "Show only knobs with a connection" filter enabled. See
   https://github.com/LMMS/lmms/pull/5846#issuecomment-762666428

@JohannesLorenz JohannesLorenz merged commit f8d7fa3 into LMMS:master Jun 30, 2021
Project reformatting automation moved this from In Progress to Done Jun 30, 2021
@JohannesLorenz
Copy link
Contributor

Merged. Thanks a lot for the contribution 👍

sdasda7777 pushed a commit to sdasda7777/lmms that referenced this pull request Jun 28, 2022
A new button called "Params" is added to the Carla instrument window; on press
it will open a new sub-window where Carla parameters can be found, ready for
connecting to a automation-track or controller. The exposed parameters in the
sub-window can be filtered by text and there is the ability to display only
parameters that are connected to a automation-track or controller. When there
are multiple plugins loaded inside Carla, the combo-box inside the (LMMS)
parameters sub-window can be used to switch between parameters of a specific
plugin (Carla).

Notes:

 - Available when compiled with Carla version 2.1 and up.
 - Currently Carla (2.1) will expose a maximum of 110 parameters.
 - The param window state isn't stored yet in a LMMS project, this is still
   TODO.
 - Connected paramters will NOT instantly disappear when they are disconnected
   with the "Show only knobs with a connection" filter enabled. See
   LMMS#5846 (comment)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Development

Successfully merging this pull request may close these issues.

None yet

6 participants