Commit Graph

7866 Commits

Author SHA1 Message Date
Bimal Poudel
f664698c80 Update copyright year (#6888) 2023-09-24 18:58:56 -04:00
Johannes Lorenz
33d1baddc0 Implement Lv2 Worker (#6484) 2023-09-24 17:36:59 +02:00
Johannes Lorenz
83777dc1f7 Lv2Proc: Set def val for ComboModel, too 2023-09-24 17:36:59 +02:00
Johannes Lorenz
94608eaad1 Lv2Proc: Sort scale point maps (#6859)
lilv can return the scale points in randomized order, and so the linked
models (of stereo effects wit 2 `Lv2Proc`) may have different scale
points. This would mean that the same combo enumeration value would have
different float values in linked models. This problem is fixed by
sorting the scale values.

Also, it is more natural for users if scale points are enumerated in a
numerical order.
2023-09-24 17:36:59 +02:00
Johannes Lorenz
7aca8ae726 SetupDialog: Warn of unusual buffersizes
This displays a warning dialog if the users requests unusual
buffersizes:

- buffersizes less than 32
- buffersizes which are not a (natural number) power of 2

This commit also replaces some `setGeometry` stuff by `QBoxLayout`.
2023-09-24 17:36:59 +02:00
Johannes Lorenz
61b612634d Add plugin blacklist for buffersize<=32 2023-09-24 17:36:59 +02:00
Johannes Lorenz
9c46370234 Support LV2_BUF_SIZE__powerOf2BlockLength 2023-09-24 17:36:59 +02:00
Johannes Lorenz
d97377b640 Lv2: Improve LED widget's digit calculation
This improves the way digits are calculated for display in
`Lv2ViewProc`:

- More than 2 digits are now recognized
- Minus signs are now recognized
- Tests have been added
2023-09-24 17:36:59 +02:00
Johannes Lorenz
c309d8bd11 Lv2ViewProc: Improve variable names 2023-09-24 17:36:59 +02:00
Lost Robot
006c43820b Fix Compressor zero divisions (#6887)
* Fix threshold zero division

* Fix RMS zero division
2023-09-24 13:19:19 +02:00
saker
49c713df5b Use resid submodule from libsidplayfp (#6883) 2023-09-23 19:33:20 -04:00
Artur-Twardowski-Mobica
f0aa2862d7 Updated MIDI CC handling not to count from 1 (#6774) 2023-09-22 20:07:25 +01:00
Michael Gregorius
0576f9daa6 Merge pull request #6789 from michaelgregorius/2510-HiDPI-Fix-For-QTreeViews
HiDPI fixes for elements based on QTreeView
2023-09-22 18:54:50 +02:00
Michael Gregorius
93d3e8c82c Adjust the classic theme
Adjust the classic theme so that it is consistent with the changes made to the default theme.

It was only necessary to change the font-size of the check boxes in the file browser to points because the QTreeView already does not contain any font settings.
2023-09-22 18:16:45 +02:00
Michael Gregorius
910cdf22cb Merge pull request #6788 from michaelgregorius/2510-HiDPI-Fix-for-Sample-Track-Window
Fix HiDPI issue of sample track window
2023-09-22 17:47:25 +02:00
Michael Gregorius
e5bb07a5ae Merge pull request #6787 from michaelgregorius/2510-Fix-HiDPI-Issues-For-Menus
Fix HiDPI issues for menus
2023-09-22 17:34:51 +02:00
Alexandre Almeida
07229b6404 Show error message when loading an invalid sample file (#6286) 2023-09-22 00:18:23 +01:00
Michael Gregorius
21fb430c76 Merge pull request #6867 from michaelgregorius/RemoveIdenticalCalls
(Re)move identical calls to `InstrumentTrack::processAudioBuffer`
2023-09-21 20:12:04 +02:00
Michael Gregorius
b6c80bd736 Replace check for nullptr
Replace the check for a `nullptr` buffer with a check that checks if the NotePlayHandle uses a buffer. This is effectively the same condition that's used by `PlayHandle::doProcessing` to decide if it should call play with a `nullptr` in the first place. Hence it should be the most fitting check.
2023-09-21 19:24:06 +02:00
Maxwell Voorhes
3df28e30b6 Changed sharps to music sharps unicode (#6873) 2023-09-20 18:32:21 -04:00
Michael Gregorius
7e8c79a191 Enable build under NixOS (#6855)
Explicitly call the perl interpreter when building the SWH LADSPA plugins
2023-09-20 13:52:59 -04:00
Dominic Clark
94d0b9111b Use UTF-8 for MSVC source and execution charset (#6876) 2023-09-19 19:56:55 -04:00
Dominic Clark
dc88040fbe Add instrument play handles unconditionally (#6875) 2023-09-18 19:18:28 -04:00
Rossmaxx
733e0a1e54 Fix invalid use of iterators in piano roll (#6869) 2023-09-18 17:44:08 +01:00
Martin Pavelek
e9125d3ad3 Fix LcdFloatSpinBox constructor and label alignment (#6686) 2023-09-17 16:55:04 +01:00
Austin
4348038b0f Added automatic dark note on light background for midi clips. (#6539) 2023-09-17 17:34:42 +02:00
Michael Gregorius
6c3ae30c89 Add comments about nullptr guard
Add some comments which describe why we need to guard agains nullptr.
2023-09-16 19:19:37 +02:00
Michael Gregorius
73f9f36c9a Code review changes
Remove whitespace in methods and add it to the parenthesis of some statements. Remove underscores from parameter names. Remove usage of `this` pointer.

Add `auto` keyword to shorten line length in `InstrumentPlayHandle::play`.

Move `const_cast` of `NotePlayHandle` closer to the `process` method as this method is the reason that the cast is needed in the first place. One might also add a version of `nphsOfInstrumentTrack` that returns a non-const result but it seems to be a general problem of a missing clear responsibility so I keep it as is.
2023-09-16 13:35:15 +02:00
saker
d25723cead Update display file name when opening `PatmanView` (#6870)
* Update display file name when loading Patman

* Conditionally update file name
2023-09-15 22:25:54 -04:00
Michael Gregorius
a6b6565687 Remove unused variable
Remove the unused variable `frames` in `VestigeInstrument::play` to fix the stricter GitHub build.
2023-09-14 23:35:16 +02:00
Michael Gregorius
d3d710e0ad Remove identical calls to InstrumentTrack::processAudioBuffer
Remove identical calls to `InstrumentTrack::processAudioBuffer` which appear in the overridden implementations of `Instrument::play` and `Instrument::playNotes`. Instead the call to `processAudioBuffer` has been moved into `InstrumentPlayHandle::play` and `InstrumentTrack::playNote`. These two methods call the aforementioned methods of `Instrument`. Especially in the case of `InstrumentTrack::playNote` the previous implementation resulted in some unncessary "ping pong" where `InstrumentTrack` called a method on an `Instrument` which then in turn called a method on `InstrumentTrack`. And this was done in almost every instrument.

In `InstrumentTrack::playNote` an additional check was added which only calls `processAudioBuffer` if the buffer is not `nullptr`. The reason is that under certain circumstances `PlayHandle::doProcessing` calls the `play` method by explicitly passing a `nullptr` as the buffer. This behavior was added with commit 7bc97f5d5b. Because it is unknown if this was done for some side effects the code was adjusted so that it behaves identical in this case.

Move the complex implementation for `InstrumentPlayHandle::play` and `InstrumentPlayHandle::isFromTrack` into the cpp file and optimize the includes.
2023-09-14 23:12:22 +02:00
Maxwell Voorhes
9b1933e544 Added flats to array of keys (#6865) 2023-09-14 17:17:36 +02:00
consolegrl
3a0e68c0ac fixes #6736: Sample tracks lose FX Channel (#6851)
* fixes #6736: Sample tracks lose FX Channel

* Styling fixes

* Restyled remaining blocks of upgrade routine

* Fixed hang due to sleepy typo

* Update src/core/DataFile.cpp

Co-authored-by: saker <sakertooth@gmail.com>

---------

Co-authored-by: saker <sakertooth@gmail.com>
2023-09-12 18:08:06 -04:00
MrTopom
89baab6b87 FileDialog : Adding mounted volumes on Linux (#6834)
* FileDialog : Adding mounted volumes on Linux

* Adding some file systems types and collapsing 2 'if' statements in one

* Removing the foreach

* Correcting PREPROCESSOR directive
2023-09-12 23:30:31 +02:00
consolegrl
b64912cd57 fixes #6354: Sample and Hold for LFO Controller (#6850)
* fixes #6354: Sample and Hold for LFO Controller

LFO controller's "white noise" wave shape didn't respect the frequency knob at all, so
Sample-and-Hold was added to extend the functionality of the LFO Controller with this
random waveshape. The original functionallity can still be accessed by setting the
FREQ knob to minimum (0.01)

---------

Co-authored-by: Kevin Zander <veratil@gmail.com>
Co-authored-by: saker <sakertooth@gmail.com>
2023-09-12 20:35:54 +02:00
Babakinha
296d5736c8 Remember to check for Linux VST Effects (#6751)
Remember to also check .so files and not only .dll
2023-09-11 16:57:36 +02:00
MrTopom
a8d765f8d5 Make files visible when searching in `FileBrowser` (#6845)
* Change the title for SideBarWidgets to be vertically centered related to icon and with no underlining

* Update src/gui/SideBarWidget.cpp

Co-authored-by: saker <sakertooth@gmail.com>

* Updating FileBrowser display when searching : showing matching files

* Correcting increment and removing duplicated calls

* Correcting reload tree when filter is activated

---------

Co-authored-by: saker <sakertooth@gmail.com>
2023-09-10 11:52:18 -04:00
saker
b353cbea82 Add options to enable sanitizers (#6840)
* Add options to enable sanitizers

* Specify them as debugging options

* Apply suggestions made by Dom

* Fix linking issues
There were linking issues, most likely because we were
applying the sanitizer flags to unnecessary targets that
are part of the build. Now, we only focus on adding the
compiler flags to lmmsobjs as a PUBLIC dependency,
and selectively choose what targets we need to apply
the linker flags to as PRIVATE dependencies.

* Add UBSan

* Add status messages

* Remove GNU as supported compiler for MSan

* Revert to using add_<compile|link>_options again

* Fix sanitizer linkage within veal and cmt libraries
I suspect that our sanitizer flags were removed for these two CMake
targets. Instead of setting the properties directly, we call
target_compile_options and target_link_options
instead.

* Remove TODO comment

* Revert "Fix sanitizer linkage within veal and cmt libraries"

This reverts commit b04dce8d8c.

* Use CMAKE_<LANG>_FLAGS_<CONFIG> and apply fixes

* Remove quotes

* Add support for additional flags

* Disable vptr for UBSan

* Print "Debug using" in status for clarity

* Wrap ${supported_compilers} and ${status_flag} in quotes

* Replace semicolons with spaces in additional_flags

* Remove platform check for no-undefined flag
The platform check was added as an attempt
to make this branch compile with the veal
and cmt libraries. However, it seems to work
without it, so the problem must've been something
else occuring in these files.

* Undo change to FP exceptions status message

* Use spaces instead of tabs

* Remove -no-undefined flag for cmt and veal libraries
2023-09-08 11:49:43 -04:00
consolegrl
10f1b21fb7 fixes #4049: Off-grid nodes not draggable (#6852)
The quantPos arg of AutomationClip::setDragValue causes the node time
to be quantized before its looked up in the timeMap iterator.
This results in the node not being found and a new one being created
inside the setDragValue function even though we had found one.
Simply setting it to true causes this bug, simply setting it to false
causes a new node to be created off grid/not snapped. So the fix
is to quantize the position for the lookup only if we haven't found an
existing node under the cursor.
2023-09-07 22:19:56 -04:00
Lost Robot
b7196337a4 Fix Compressor arithmetic exception in Debug mode (#6854) 2023-09-07 11:43:23 -07:00
Martin Pavelek
de062d6c54 Show detailed CPU load information in a tool-tip (#5970)
* Profiler rework

* Workaround for GCC bug

* Rollback QFile removal

* Use enum instead of a plain index to describe detailed stats

* Use the GCC workaround code for all compilers to avoid redundancy

* Update and fix comments

* Implement suggestions from review

* Split AudioEngine::renderNextBuffer() into separate functions, fix old formatting

* Remove QFile include

* Revert formatting changes

* Apply suggestion from review (remove unnecessary template parameter)

* Revert more formatting changes

* Convert DetailType to enum class

* DetailType enum class improvements suggested in review

* Use std::atomic for m_detailLoad

* RAII-style profiler probes

* Apply suggestions from code review

Co-authored-by: Dominic Clark <mrdomclark@gmail.com>

* Fix namespace comment

* Improve CPU load widget precision and use floats for load computations

* Atomic m_cpuLoad

* Add custom step size support for CPULoadWidget

* Apply suggestions from review (convert the profiler probe into a nested class, other small changes)

* Do not limit stored load averages to 100%

---------

Co-authored-by: sakertooth <sakertooth@gmail.com>
Co-authored-by: Dominic Clark <mrdomclark@gmail.com>
2023-09-04 19:33:42 -04:00
Rossmaxx
fa05ce20b8 Replace corrupted default samples with fixed ones. (#6752)
* pulled from upstream

* replaced broken sample files

* Revert "pulled from upstream"

This reverts commit 76967b5cc4.

* fixed shortened samples

* will this fix exprtk submodule?

This reverts commit 76967b5cc4.
2023-09-03 21:59:29 -04:00
Dalton Messmer
0768f5ad2f Fix a few memory issues found with ASan (#6843)
* Fix LADSPA effects memory leak

* Fix buffer overflow in PianoView

* Avoid using invalid iterators in AutomationClip

* Fix memory leaks in SimpleTextFloat

* Handle potential case where QMap::lowerBound(...) returns end iterator

* Implement suggestions from review
2023-09-03 17:29:31 -04:00
Martin Pavelek
e1d3ecb184 Microtuner UI update (#6206)
* Replace deprecated sprintf() function

* Update microtuner-related UI (add more clues explaining how to use it)

* Simpler wording in the tooltips for "apply" buttons

* Post-merge fix of a forward declaration

* Rename Misc tab to Tuning and transposition; move Microtuner config dialog to Edit menu and make it also available from instrument tab

* Enable word wrap on "MIDI unsupported" label

* Remove forgotten new unnecessary includes

* Rename InstrumentMiscView to InstrumentTuningView in locales
2023-08-31 19:21:26 +02:00
Dalton Messmer
8a94fb3681 Fix std::vector refactor mistake (#6836)
* Use std::vector const reference instead of copying

* Add assertions

* Simplification
2023-08-31 12:55:02 -04:00
Andrés
005ee47d43 pitch wheel recording in the detune pattern (#6297) 2023-08-31 17:17:00 +02:00
Dominic Clark
4804ab6785 Support per-note detuning and panning with Sf2 Player (#6602)
* Add `ArrayVector` class template and tests

* Fix counting of failed test suites

* Support detuning and panning with Sf2 Player

* Restrict panning to supported FluidSynth versions

* Fix data array cast type

* Fix tests for Qt<5.10 and correct mistaken test

* DIsplay warning for FluidSynth < 2

* Remove unnecessary clamp

* Update include guard name
2023-08-31 07:12:00 -04:00
Dominic Clark
3263bfd555 Fix generator expression in strip command (#6762)
* Fix generator expression in strip command

* Add TODO comment for CMake 3.19
2023-08-30 21:01:15 -04:00
MrTopom
fcdf4c0568 Showing Knob value on mouse over (#6835)
* Showing Knob value on mouse over

* Correcting minors source code issues

* Correcting double QTimer include

* Removing blank lines

* Removing space and add one

* Update src/gui/widgets/SimpleTextFloat.cpp

Co-authored-by: saker <sakertooth@gmail.com>

* Correcting QTimer

* Remove a parameter that has the default value

---------

Co-authored-by: saker <sakertooth@gmail.com>
2023-08-29 15:32:11 -04:00
Michael Gregorius
d2a0780a6e Adjust classic style sheet
Adjust the classic style sheet in the same way that the default style sheet was adjusted.

The change also removes the usage of a bold font weight for selected menu items to achieve a more consistent feel.
2023-08-28 20:12:09 +02:00