-
-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Fix hang on exit with SDL2 audio backend #6070
Conversation
🤖 Hey, I'm @LmmsBot from github.com/lmms/bot and I made downloads for this pull request, click me to make them magically appear! 🎩
macOSLinux
Windows
🤖{"platform_name_to_artifacts": {"macOS": [{"artifact": {"title": {"title": "", "platform_name": "macOS"}, "link": {"link": "https://14205-15778896-gh.circle-artifacts.com/0/lmms-1.3.0-alpha.1.125%2Bg362d97095-mac10.14.dmg"}}, "build_link": "https://circleci.com/gh/LMMS/lmms/14205?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link"}], "Linux": [{"artifact": {"title": {"title": "(AppImage)", "platform_name": "Linux"}, "link": {"link": "https://14203-15778896-gh.circle-artifacts.com/0/lmms-1.3.0-alpha.1.125%2Bg362d970-linux-x86_64.AppImage"}}, "build_link": "https://circleci.com/gh/LMMS/lmms/14203?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link"}], "Windows": [{"artifact": {"title": {"title": "32-bit", "platform_name": "Windows"}, "link": {"link": "https://14201-15778896-gh.circle-artifacts.com/0/lmms-1.3.0-alpha.1.125%2Bg362d97095-mingw-win32.exe"}}, "build_link": "https://circleci.com/gh/LMMS/lmms/14201?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link"}, {"artifact": {"title": {"title": "64-bit", "platform_name": "Windows"}, "link": {"link": "https://14202-15778896-gh.circle-artifacts.com/0/lmms-1.3.0-alpha.1.125%2Bg362d97095-mingw-win64.exe"}}, "build_link": "https://circleci.com/gh/LMMS/lmms/14202?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/wifnajdgtw3ivs6o/artifacts/build/lmms-1.3.0-alpha-msvc2017-win32.exe"}}, "build_link": "https://ci.appveyor.com/project/Lukas-W/lmms/builds/39848994"}, {"artifact": {"title": {"title": "64-bit", "platform_name": "Windows"}, "link": {"link": "https://ci.appveyor.com/api/buildjobs/avkkfebf5va70n75/artifacts/build/lmms-1.3.0-alpha-msvc2017-win64.exe"}}, "build_link": "https://ci.appveyor.com/project/Lukas-W/lmms/builds/39848994"}]}, "commit_sha": "de92f811b87950e82cb69e470de80e880c7b84be"} |
It seems, that always right is capture choice, except GUI lines in AudioSdl.cpp line ~350, where right is master choice (capture hold some lines removed by refactoring ). But I am not sure ... P.S. I will try to rebase locally on my computer, resolve as I mention before, and than ... do the same here ? |
@firewall1110, to prevent a force push the best course of action would be:
|
This PR should be deleted (or continued with different goal): [see my "experiment": Program not closing properly #7385 ] |
@firewall1110, this is how it should ideally look for all audio devices indeed. This has already been implemented for the SDL back end via the issue #5990. Unfortunately, it is mixed with something that might not be merged for a long time. Perhaps it will make sense to cherry-pick the relevant commits and to open an individual pull request. See also these comments for more information: #5990 (comment), #5990 (comment) |
@michaelgregorius |
Yes, that's how I meant it.
Perhaps it would indeed be better to work incrementally in smaller steps towards that goal. |
Done via pull request #7421. |
About another goal: Audio recording in alternative way. After all this recording session happens in such way (assumed, that recording folder, format and name template is already prepared):
In this case:
One big problem: I do not know any DAW, with such audio recording style (some problems with multi-track recording can be solved by extension). |
@firewall1110, the problem with the approach that you have described is that it assumes that users only want to records single tracks from single sources. However, most audio interfaces have more than one input and in all DAWs it is possible to record from them in parallel. To solve this issue it must be possible to assign each track the input that it should record from. Because there are several potential inputs not it also does not make sense to have one global input monitor. Instead it must be possible to monitor for each individual track. Regarding the audio pool. If it is not already implemented it would also be nice to be able to drag samples, e.g. from a sample track into AFP, etc. Perhaps it would be best to improve LMMS from the bottom up instead of starting with "high level" features like audio recording. A good first step might be to implement the management of input and output audio channels in LMMS. This would for example enable a more flexible routing or at one point even potential support for surround sound and other multi-channel related features. |
Quote: "it assumes that users only want to records single tracks from single sources. " No ... Let's continue strategy: I wrote before only steps, could be started right now - in parallel. P.S. |
10 days alert to change goal to: (edited 2024.08.13) Stopped: better is to open new issue and PR |
10 days alert to close this PR as not actual |
Now dangerous in capture callback locking and gui signaling functions are disabled if not recording audio.
Also capture callback is not enabled on startup, but startCapture(); stopCapture(); functions provided.
Also some information provided if capture callback is not used properly:
Fixes #4668.