-
-
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
Arpeggiator - Note repeats #5784
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! 🎩
Linux
Windows
🤖{"platform_name_to_artifacts": {"Linux": [{"artifact": {"title": {"title": "(AppImage)", "platform_name": "Linux"}, "link": {"link": "https://11790-15778896-gh.circle-artifacts.com/0/lmms-1.3.0-alpha.1.60%2Bg075e608-linux-x86_64.AppImage"}}, "build_link": "https://circleci.com/gh/LMMS/lmms/11790?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://11794-15778896-gh.circle-artifacts.com/0/lmms-1.3.0-alpha.1.60%2Bg075e608df-mingw-win32.exe"}}, "build_link": "https://circleci.com/gh/LMMS/lmms/11794?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link"}, {"artifact": {"title": {"title": "64-bit", "platform_name": "Windows"}, "link": {"link": "https://11791-15778896-gh.circle-artifacts.com/0/lmms-1.3.0-alpha.1.60%2Bg075e608df-mingw-win64.exe"}}, "build_link": "https://circleci.com/gh/LMMS/lmms/11791?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link"}]}, "commit_sha": "b474a9c1694dabd7a13b2338aa24ddc0598a6f4d"} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
First review just goes through code style, which I know sounds pointless considering the current state of the InstrumentFunctionArpeggio::processNote
method (IMHO it needs a refactor on the code style and improvements on comments, but that's outside the scope of this PR), but I guess the general consensus is to at least keep new additions compliant, even if the surrounding code isn't.
I'm still learning the logic of the method itself to further review, but testing the build I noticed a misbehavior that I'm still trying to figure out the source of in the code: The repeating notes overlap with the previous note. Probably something to do with the calculation of the frames per note, but I suppose the repeating notes should be played alone not on top of the previous one.
Right. The envelope I used on my test case hide that well. Thanks for the review, I'll look into it! |
@superpaik Thanks for testing the PR! |
@zonkmachine The overlapping notes issue seems to be fixed! I noticed some notes skipping or odd behavior (even on other modes like Sort), but as you mentioned those are unrelated to this PR but a problem with the current state of the Arpeggiator. I was going to suggest a refactor of this method (on another PR ofc), but seems like there are some issues opened already regarding this and other deeper problems that apparently causes those glitches on the notes. Everything seems to be fine on the code, but since I'm still getting familiar with this method I'll review it again. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry I resolved the comments and wrote all over again, but I think I couldn't reuse the comments for a last review. It has been brought up recently again the argument in favor of us being more strict with code style on lines that are touched by the PR, which I agree with since if we take the surrounding code into account we will probably never move away from the previous non-conforming styles used.
As for the logic, I reviewed again after the gate issue was fixed and it all seems good! 😃
Co-authored-by: Kevin Zander <[email protected]>
Co-authored-by: IanCaio <[email protected]>
I have now gone over your suggestions and merged two of them. Much appreciated! In regards to the clang format changes the pendulum now seem to have changed, once more, to waiting for a script to do the job. |
If there is only one note playing at a time, repeat function works well in every mode (free, sort, sync) |
I think it's this issue you're seeing: #2606 |
Yes. I see, it's related to that other PR. |
I think this has been reviewed for both style and code and has been tested thoroughly (I've been trying out most of these code changes for well over six years). |
Merge? :) |
Co-authored-by: Kevin Zander <[email protected]> Co-authored-by: IanCaio <[email protected]>
Co-authored-by: Kevin Zander <[email protected]> Co-authored-by: IanCaio <[email protected]>
Co-authored-by: Kevin Zander <[email protected]> Co-authored-by: IanCaio <[email protected]>
I finally got around to finish the arpeggiator note repeats function that I started working on here #687.
The first attempt modified the direction logic but I found a simpler way to do away with that.