Xpressive plugin fixes
Balanced most of the presets. Made last function accept floating point input. Removed "key" and "bnote" for meanwhile. response for #5868 -- do not merge yet --
:robot: Hey, I'm @LmmsBot from github.com/lmms/bot and I made downloads for this pull request, click me to make them magically appear! :tophat:
Linux
- Linux (AppImage):
lmms-1.3.0-alpha.1.163%2Bgd623e44fc-linux-x86_64.AppImage(build link)
macOS
Windows
- Windows 32-bit:
lmms-1.3.0-alpha.1.163%2Bgd623e44fc-mingw-win32.exe(build link) - Windows 64-bit:
lmms-1.3.0-alpha.1.163%2Bgd623e44fc-mingw-win64.exe(build link) - Windows 32-bit:
lmms-1.3.0-alpha-msvc2017-win32.exe(build link) - Windows 64-bit:
lmms-1.3.0-alpha-msvc2017-win64.exe(build link)
:robot:
{"platform_name_to_artifacts": {"Linux": [{"artifact": {"title": {"title": "(AppImage)", "platform_name": "Linux"}, "link": {"link": "https://15417-15778896-gh.circle-artifacts.com/0/lmms-1.3.0-alpha.1.163%2Bgd623e44fc-linux-x86_64.AppImage"}}, "build_link": "https://circleci.com/gh/LMMS/lmms/15417?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link"}], "macOS": [{"artifact": {"title": {"title": "", "platform_name": "macOS"}, "link": {"link": "https://15418-15778896-gh.circle-artifacts.com/0/lmms-1.3.0-alpha.1.163%2Bgd623e44fc-mac10.14.dmg"}}, "build_link": "https://circleci.com/gh/LMMS/lmms/15418?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://15415-15778896-gh.circle-artifacts.com/0/lmms-1.3.0-alpha.1.163%2Bgd623e44fc-mingw-win32.exe"}}, "build_link": "https://circleci.com/gh/LMMS/lmms/15415?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link"}, {"artifact": {"title": {"title": "64-bit", "platform_name": "Windows"}, "link": {"link": "https://15416-15778896-gh.circle-artifacts.com/0/lmms-1.3.0-alpha.1.163%2Bgd623e44fc-mingw-win64.exe"}}, "build_link": "https://circleci.com/gh/LMMS/lmms/15416?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/owdhey516qe734lb/artifacts/build/lmms-1.3.0-alpha-msvc2017-win32.exe"}}, "build_link": "https://ci.appveyor.com/project/Lukas-W/lmms/builds/42066971"}, {"artifact": {"title": {"title": "64-bit", "platform_name": "Windows"}, "link": {"link": "https://ci.appveyor.com/api/buildjobs/agmo6hgc67u2q8ui/artifacts/build/lmms-1.3.0-alpha-msvc2017-win64.exe"}}, "build_link": "https://ci.appveyor.com/project/Lukas-W/lmms/builds/42066971"}]}, "commit_sha": "792db61abf8f9a8af08acb367fc9fb0cb16a8331"}
This PR awaits discussion about whether to enable "key" variable in expressions or not.
Before merging, we should upgrade exprtk to the latest version, because expressions such "1 in t" cuases the program to crash... Latest version seems to accept such formula without crashing.
@PhysSong, do you know why isn't it compiling on windows? I added syntax highlighting in Xpressive plug-in.
Could it be that the following define is true on windows (QT_NO_SYNTAXHIGHLIGHTER)?
,
Could it be that the following define is true on windows (QT_NO_SYNTAXHIGHLIGHTER)?
It isn't in MSVC builds, but it is in MinGW builds. Looks like @tobydox disabled the feature when building the MinGW PPA.
Well, majority of packages in this PPA needed upgrade. Some get a major additions and bugfixes in upstream versions since they are built in PPA. Additions and fixes which would be really useful for lmms.
Today I read that MSVC++ treat 'long double' the same as double. It is a bit problematic, because the integrate function relies on long double, as it sums frequencies 48000 times, and my tests with plain simple double had distortion after few seconds... any ideas how to overcome this?
the integrate function relies on long double
I can't find any long doubles in IntegrateFunction. I'd say the round-off error in integration of double is not a concern compared to the precision of float.
You can find some useful resources in #2047.
@PhysSong Yeah, you are right, my bad. somehow my memory convinced me that I was working with 'long double' there, but truth is I used double... saw #2047 and it reminded me my experiments with integrate. By the way, I added another variable called 'prev' which stores the frequency of the previous note, so now in the formula you can make portamento effect in either the normal way, or any other weird way... Also, I enabled the feature of variables in the formula, so now you can reuse code by storing numbers in variables, instead of copying code all around the place. I am considering adding a mechanism to store and get computed values between frames. One guy on youtube had some suggestions for the plugin which we should consider but I not sure I have the time for this right now (https://www.youtube.com/watch?v=5pJI1JpXNqM&t=25s in comments):
I do have a few suggestions : Add more wave tables and general-purpose knobs, maybe 32 or up to 256 of each so you practically have limitless control over the sound design. .....(here comes some feature request that already existed).... Finally, A UI feature to detach the wave function editor panel to its own window and save/load your functions to a txt file.
I think your editor is configured to use spaces instead of tabs.
You know, I am really not pressing 4 times on the spacebar when I want to indent, rather I just press the tab bar. I checked QtCreator options and it showed me that it is already set on 'use tab only'. Last commit I detected all these hidden little spaces and replaced every four of them with a tab
@tobydox can we drop the QT_NO_SYNTAXHIGHLIGHTER from the qt build? It can really help my plugin to look more welcoming
@gnudles BTW, could you resolve the conflicts?
@tobydox can we drop the QT_NO_SYNTAXHIGHLIGHTER from the qt build? It can really help my plugin to look more welcoming
Done - also updated to Qt 5.15.6.
@PhysSong yes I should.
@PhysSong Tell me if something is wrong.
Why is it failing?
Why is it failing?
Quite a few PR's are failing on shellcheck. Probably not on your side. @PhysSong knows more.
Yes, you can ignore this.
If you're still concerned, you can merge the latest master to your branch.