* Rebase against master
Co-authored-by: michaelgregorius <michael.gregorius.git@arcor.de>
Co-authored-by: Rossmaxx <74815851+Rossmaxx@users.noreply.github.com>
* Fix Qt6 DMG on Apple (#7240)
- Fix linking issues with Qt Framework files
- Fix qmake detection
* Fixes after rebase
* Fix embed.cpp compilation
Fix implicit conversion from int when using QString.arg(...)
* Fix Qt6 signature change for nativeEventFilter (#7254)
* Adds win32EventFilter a wrapper for nativeEventFilter on Windows
* win32EventFilter is currently used to intercept top-level Window events (currently, to avoid VSTs setting transparency of the parent application)
* fix broken signal slot connections (#7274)
QComboBox activated() replaced with textActivated() since Qt 5.14
* Enabled VSTs on Qt 6 (#7273)
* enabled VST support for Qt 6 builds
* Note : Embedding on QT6 will be buggy on linux as a result of using qt embedding, which unfortunately is a qt bug which hasn't been resolved.
* Changed bar lines to follow snap size (#7034)
* Added lines in between bars
* Changed bar lines to follow snap size
* Changed default zoom and quantization value
* Added constants for line widths
* Added QSS configuration for new grid line colors
* Tied line widths to QSS properties
* Changed default quantization to 1/4
* Removed clear() from destructor model
* Removed destructor in ComboBoxModel.h
* Changed member set/get functions to pass by value
* Updated signal connection with newer syntax
* Fix compilation
* Fix MSVC builds
* fix nullptr deref in AudioFileProcessor (qt6 branch) (#7532)
* ensured mouse event != nullptr before deref
* separation of concerns: AFP WaveView updateCursor
extract check to pointerCloseToStartEndOrLoop()
* marked some function parameters as const
* Remove Core5Compat usage
* Fix bad merge
* Fixes after rebase
* Simplify QTX_WRAP_CPP call
* Remove comments that are obvious to a developer
* Whitespace
* Try using Qt 6 for MSVC CI
I chose Qt 6.5 because it's the last Qt LTS release with declared
support for Visual Studio 2019. Once we upgrade to Visual Studio 2022,
we could upgrade Qt as well.
* Fix MSVC build
Also fixes two memory leaks in MidiWinMM
* Fix GuiApplication on MSVC
* Fix interpolateInRgb
* Try building with patched Calf
* Fix submodule
* Fix OpulenZ build
* Try to fix zyn
* Fix comment
* Ty to fix zyn (again)
* Ty to fix RemotePluginBase
* Revert "Ty to fix RemotePluginBase"
This reverts commit 92dac44ffb11e19d1d5a21d9155369f017bd59e9.
* Update plugins/ZynAddSubFx/CMakeLists.txt
Co-authored-by: Dalton Messmer <messmer.dalton@gmail.com>
* Fix vertical & horizontal scroll wheel in SongEditor
* AppImage: Fix finding of Qt6 libs
* Fix implicit QString --> QFileInfo conversion
* Point submodule to lmms
* Fix multiple deprecation warnings
* Fix for Clang compiler
* Build with latest Qt LTS version now that we use MSVC 2022
* Update jurplel/install-qt-action to v4.3.0
* Bump minimum Qt6 version for MSVC
* Fix incorrect Qt version checks
Some comparisons were using ">" rather than ">="
* `QSize()` != `QSize(0, 0)`
* Fix more deprecation warnings
* Fix style
* Simplify Spectrum Analyzer mouse events
The Qt bug that used to be present appears to have been fixed, so the
workaround can be removed
* Minor changes
* Fix deprecated QCheckBox signal
* Fix setContent helper functions
* Remove QMultiMap usage from ControlLayout
* Remove SIGNAL and SLOT macros
* Revert TrackView.cpp changes
* Remove Q_DISABLE_MOVE usage since it does not seem to be available in Qt6
---------
Co-authored-by: michaelgregorius <michael.gregorius.git@arcor.de>
Co-authored-by: Rossmaxx <74815851+Rossmaxx@users.noreply.github.com>
Co-authored-by: BoredGuy1 <66702733+BoredGuy1@users.noreply.github.com>
Co-authored-by: Hyunjin Song <tteu.ingog@gmail.com>
Co-authored-by: Lisa Magdalena Riedler <git@riedler.wien>
Co-authored-by: Dalton Messmer <messmer.dalton@gmail.com>
This cleans up typos in source comments and some user-facing strings.
Found via `codespell -q 3 -S "./plugins,./src/3rdparty,./data/locale,*.in,*.xpf" -L continous,currenty,globaly,inports,localy,nd,ot,sie,te,trough`
- Build RemoteVstPlugin in C++20 mode
- Avoids using std::wstring due to strange issues with it when built
with wineg++. See https://bugs.winehq.org/show_bug.cgi?id=58465
- Fix some memory leaks + minor cleanup of RemoteVstPlugin code
- Rename `F_OPEN_UTF8` to `fopenUtf8`
- Use C++20 in our `determine_version_from_source` CMake function
- Update ZynAddSubFX submodule
* Try to fix MSVC linker error related to lilv
* Remove temporary workaround
* Temporary debugging messages
* oops
* Temporary debugging
* Try to find FluidSynth using Config mode first
* Try again to fix lilv
* Fix FluidSynth installed with vcpkg on Windows
* Fix lilv from vcpkg
* Remove debug flag
* Fix for when lilv is not found (*-NOTFOUND evaluates to false)
* Use lowercase package name for lv2
* Try using only pkg_check_modules for lv2
* Use Lilv::lilv
* Add pkg-config guard back in
* Fix package name
Co-authored-by: Tres Finocchiaro <tres.finocchiaro@gmail.com>
* Fix Lilv_INCLUDE_DIRS
* Rename vcpkg cache key
---------
Co-authored-by: Tres Finocchiaro <tres.finocchiaro@gmail.com>
* Compile in C++20 mode
* Fix implicit lambda captures of `this` by `[=]`
Those implicit captures were deprecated in C++20
* Silence MSVC atomic std::shared_ptr warning
Unfortunately std::atomic<std::shared_ptr> (P0718R2) is not supported by
GCC until GCC 12 and still is not supported by Clang or Apple Clang, so
it looks like we will continue using std::atomic_load for the time being
* Use C++20 in RemoteVstPlugin
* Simplification
* Add comment
* Fix bitwise operations between different enumeration types
* Revert "Fix bitwise operations between different enumeration types"
This reverts commit d45792cd72.
* Use a helper function to combine keys and modifiers
* Remove AnalyzeTemporaryDtors from .clang-tidy
AnalyzeTemporaryDtors was deprecated in clang-tidy 16 and fully removed
in clang-tidy 18
* Use C++20 in .clang-format
* Use bitwise OR
Prevents issues if any enum flags in `args` have bits in common
Update MinGW CI to Ubuntu 20.04
* Use ghcr.io/lmms/linux.mingw:20.04
* Fix deprecation in ClipView.cpp
* Fix ccache and simplify git configuration
* Apply patch by @DomClark for MinGW's SDL2 target
* Update excludelist-win
* Update third-party actions to latest version
* Use vcpkg in manifest mode
* Only trim ccache after build
* Use ccache with MSVC
* Use Brewfile and cache Homebrew downloads
* Use --print-config for ccache 3
* Attempt to make ccache actually work with MSVC
* Zero ccache stats before building
* Use SDL2 on macOS
* Add Tap Tempo Feature (#6375)
Resolves#5181
* Update formatting, use namespaces, etc.
* Use Qt Designer .ui file to handle the UI
Thanks to irrenhaus for the idea
Also added a few buttons I will add functionality for
* Play metronome sound when tapped
* Improve stabilization speed by comparing differences in length between intervals
To improve the speed at which the BPM counter stabilizes at a
certain number, we now compare the differences in length between
the last two taps and the most recent two taps and reset the counter
if the threshold is passed.
I made it so that a difference of 500 ms resets the counter.
* Remove duplicate m_ui
An artifact from my battle with Git and merge conflicts..
* Format TapTempoUi header file
* Add lmms namespace in UI file
* Remove taptempo.ui XML file
Not needed
* Add LMMS_EXPORT to SamplePlayHandle
* Use std::chrono::duration<double, std::milli> for intervals
Co-authored-by: irrenhaus3 <irrenhaus3@gmail.com>
* Use alias for steady_clock
Co-authored-by: irrenhaus3 <irrenhaus3@gmail.com>
* Speed up convergence by accounting for recent intervals
This uses a combination of keeping track of a more accurate BPM,
while also using a BPM difference threshold to move towards the true BPM
more quickly.
After three taps, a "recent interval" is calculated, which is similar
to the latest interval, but less fluctuating since it accounts for
three taps instead of one. This allows for comparing between
the BPM on the display with the recent BPM more closely.
We then compare the difference in magnitude of both BPM's
with the threshold. If the threshold is passed, the counter gets reset.
* Remove semicolon from "QOBJECT;" in plugins/TapTempo/TapTempo.h
Co-authored-by: Hyunjin Song <tteu.ingog@gmail.com>
* Add newline between using alias and constructor
* Cleanup header files
* Add // namespace lmms::gui comment
* Rename header guards in plugins/TapTempo/TapTempo.h
Co-authored-by: Dalton Messmer <33463986+messmerd@users.noreply.github.com>
* Rename header guards in plugins/TapTempo/TapTempo.h
Co-authored-by: Dalton Messmer <33463986+messmerd@users.noreply.github.com>
* Rename header guards in plugins/TapTempo/TapTempoUi.h
Will merge this file with ``TapTempoView`` soon.
Co-authored-by: Dalton Messmer <33463986+messmerd@users.noreply.github.com>
* Rename header guards in plugins/TapTempo/TapTempoUi.h
Co-authored-by: Dalton Messmer <33463986+messmerd@users.noreply.github.com>
* Update plugins/TapTempo/TapTempo.h
Co-authored-by: Dalton Messmer <33463986+messmerd@users.noreply.github.com>
* Replace virtual with override in plugins/TapTempo/TapTempo.h
Co-authored-by: Dalton Messmer <33463986+messmerd@users.noreply.github.com>
* Merge UI file into TapTempoView
* Pass TapTempo* directly into constructor in plugins/TapTempo/TapTempoView.h
Co-authored-by: Dalton Messmer <33463986+messmerd@users.noreply.github.com>
* Update style in plugins/TapTempo/TapTempoView.h
Co-authored-by: Dalton Messmer <33463986+messmerd@users.noreply.github.com>
* Add parameter name for keyPressEvent function in plugins/TapTempo/TapTempoView.h
Also reorder the function declarations to match the order in the source file.
Co-authored-by: Dalton Messmer <33463986+messmerd@users.noreply.github.com>
* Remove dynamic_cast to TapTempo* in plugins/TapTempo/TapTempoView.cpp
Co-authored-by: Dalton Messmer <33463986+messmerd@users.noreply.github.com>
* Restrict C linkage to only lmms_plugin_main and plugin descriptor
Co-authored-by: Dalton Messmer <33463986+messmerd@users.noreply.github.com>
* Simplify algorithm
* Update labels when calling closeEvent
* Add reset button
* Adjust layout
* Format document
* Only allow the tap button to gain focus
* Use icon provided by LMMS
* Add sync button and adjust formatting
* Make the metronome downbeat the first beat
Also simplify code
Co-authored-by: Dalton Messmer <33463986+messmerd@users.noreply.github.com>
* Round BPM values when syncing with project tempo
Co-authored-by: Dalton Messmer <33463986+messmerd@users.noreply.github.com>
* Change Plugin::Tool to Plugin::Type::Tool
---------
Co-authored-by: Hyunjin Song <tteu.ingog@gmail.com>
Co-authored-by: Dalton Messmer <33463986+messmerd@users.noreply.github.com>
No functional changes! No changes to savefiles/presets!
Fixes casing of everything that is currently lowercase but should
be uppercase.
Fixes also some other plugin strings, especially:
* opl2 -> OpulenZ (see 289887f4fc)
* calf -> veal (see ae291e0709)
* ladspa_effect -> LadspaEffect (see 9c9372f0c8)
* remove flp_import (see 2d1813fb64)