Commit Graph

3974 Commits

Author SHA1 Message Date
Dominic Clark
0dcf909129 Kill orphaned subprocesses on crash (#6366)
Co-authored-by: Lukas W <lukaswhl@gmail.com>
2022-04-20 17:15:33 +01:00
Spekular
b4317edd43 Make loop markers snap to same increments as clips (#6313)
* Make loop markers snap to same increments as clips

* Fix snap size when loop points meet

* Switch to signal-slot based communication for proportional snap changes

* Move end if user clicks at exact center of loop

* Changes from reviews

* More detailed comment

* Properly handle zero length loop when ctrl is held

* More compact selection of action, m_loopPos ordering

* More robust sort
2022-04-18 17:25:15 +02:00
Alex
33b44ec9c7 Disable tooltips through event filter (#6192)
* Control tooltip visibility using an event filter

...removing the need for a ToolTip helper class

* Remove whitespace
2022-04-15 14:04:52 +02:00
Alex
7c1ebd31c9 Undoable add/remove bar (#6347)
* Undoable add/remove bar

* Don't add checkpoints to empty tracks

Authored by: Spekular <Spekular@users.noreply.github.com>
2022-04-13 20:11:37 +02:00
Spekular
32caf80be1 Rename 'dialogs' folder to 'modal', add missing modals (#6367) 2022-04-10 01:14:55 +02:00
Johannes Lorenz
f6bad88ad3 Fix casing of filenames and code in plugins/ (#6350)
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)
2022-04-03 13:26:12 +02:00
Johannes Lorenz
54bee2272e Rename LedCheckbox to LedCheckBox in filenames
Justification: The class is named `LedCheckBox`, and other files follow
the casing of the classes, too.
2022-03-26 11:37:25 +01:00
Dominic Clark
4dc04a612a Split RemotePlugin.h into separate files (#6322) 2022-03-22 21:40:16 +00:00
Hyunjin Song
80a6672da4 Fix build due to missing includes
Fixes build errors introduced in
7db3fa94a1
2022-03-09 11:53:17 +09:00
akimaze
a08e7f9029 Native linux VST support (#6048)
Co-authored-by: Dominic Clark <mrdomclark@gmail.com>
2022-03-02 18:47:54 +00:00
Johannes Lorenz
7db3fa94a1 Improve includes (#6320)
* Update ringbuffer submodule to fix includes

* Remove cyclic includes

* Remove Qt include prefixes

* Include C++ versions of C headers

E.g.: assert.h -> cassert

* Move CLIP_BORDER_WIDTH into ClipView

This allows to remove includes to TrackView.h in ClipView cpp files.

* Elliminate useless includes

This improves the include structure by elliminating includes that are
not used. Most of this was done by using `include-what-you-use` with
`CMAKE_C_INCLUDE_WHAT_YOU_USE` and `CMAKE_CXX_INCLUDE_WHAT_YOU_USE`
set to (broken down here):

```
include-what-you-use;
    -Xiwyu;--mapping_file=/usr/share/include-what-you-use/qt5_11.imp;
    -Xiwyu;--keep=*/xmmintrin.h;
    -Xiwyu;--keep=*/lmmsconfig.h;
    -Xiwyu;--keep=*/weak_libjack.h;
    -Xiwyu;--keep=*/sys/*;
    -Xiwyu;--keep=*/debug.h;
    -Xiwyu;--keep=*/SDL/*;
    -Xiwyu;--keep=*/alsa/*;
    -Xiwyu;--keep=*/FL/x.h;
    -Xiwyu;--keep=*/MidiApple.h;
    -Xiwyu;--keep=*/MidiWinMM.h;
    -Xiwyu;--keep=*/AudioSoundIo.h
```

* Fixup: Remove empty #if-#ifdef pairs

* Remove LMMS_HAVE_STD(LIB|INT)_H
2022-03-02 13:30:43 +01:00
Alex
f56fc68b66 Rename TCO and BB to clip and pattern in save files (#6309)
... and clarify how PatternTrack cloning works

- pattern -> midiclip
- automationpattern -> automationclip
- *tco -> *clip
- bb* -> pattern*
- bbtrackcontainer -> patternstore
2022-02-14 21:12:11 +01:00
Johannes Lorenz
77fee49735 Lv2: Don't show ports with prop notOnGUI (#6310)
Additionally, this commit removes an unused variable.
2022-02-13 12:44:53 +01:00
Alex
dc73911391 Rename Beat/Bassline to Pattern (#6284)
- BB* -> Pattern*
- BBTrackContainer -> PatternStore
- BBTrackContainerView -> PatternEditor
- BBEditor -> PatternEditorWindow

Does not touch save files
2022-02-13 09:03:37 +01:00
merrickclay
912c0b76ea Add missing disconnect statements in PianoRoll (#6245) 2022-02-09 11:51:32 +09:00
Hyunjin Song
877a93198f MidiOss: Fix a typo which breaks build 2022-01-29 15:48:23 +09:00
nia
31aac6265c midioss: Use unbuffered I/O to access the device node. (#6276)
This fixes problems reading from MIDI devices on NetBSD - the
input blocked until a certain number of notes have been read
rather than returning immediately when a single note is received.
2022-01-29 14:59:48 +09:00
Johannes Lorenz
17b4863a76 More LV2 buf-size features (#6254)
Implement `LV2_BUF_SIZE__boundedBlockLength` and
`LV2_BUF_SIZE__fixedBlockLength`.
2022-01-23 14:44:39 +01:00
Alex
1162856418 Rename TCO to Clip in the clipboard data (#6278) 2022-01-16 05:47:58 +01:00
Alexandre Almeida
7fe2152938 Fix broken data file upgrade (#6279)
Fixes issues introduced in previous commit (55d361fb65),
which affected loading, saving and drag-dropping of clips.
2022-01-15 22:19:34 +01:00
Alexandre Almeida
55d361fb65 Rename TCO and related to Clip (#6226)
This PR renames

    TCO -> Clip
    Pattern -> MidiClip
    *TCO and *TCOView -> *Clip and *ClipView

The savefiles are not yet modified by this PR.
2022-01-14 05:45:21 +01:00
Yashraj Shinde
bf323d2024 Rename FxMixer to Mixer (#6239)
... as decided in #6089 and #5592.

This PR replaces every occurrence of "FX" where "Mixer Channel" is meant.
2022-01-09 08:15:23 +01:00
merrickclay
54fff4ff23 Added check for empty notes vector in shiftPos (#6252) 2022-01-06 23:37:08 +01:00
merrickclay
13e17496dc Updates PianoRoll to immediately reflect note changes in BBEditor (#6242) 2021-12-28 11:12:26 +09:00
Lior Merkel
98786dd84f Make preset saving oblivious to mute/solo/muteBeforeSolo states (#6214) 2021-12-27 11:23:19 +09:00
István Szabó
7b1cc36880 Fix spinbox offsets in MIDI tab of instruments (#6235) 2021-12-27 11:11:08 +09:00
merrickclay
f8258253d5 Fix changing LcdSpinBox value changing their init value (#6241) 2021-12-25 13:07:45 +09:00
Alexandre Almeida
eee1a81ff3 Rename "mixer" to "audioengine" on lmmsrc.xml (#6181) 2021-11-20 21:43:32 +01:00
Alex
445b55f0f5 Don't draw position arrow when line is out of view (#6191)
Also hides timeline numbers above the piano keys.
2021-11-20 11:15:07 +09:00
Johannes Lorenz
1dabd75267 Fixes #6186: No segfaults with future lmmsrc.xml version (#6208) 2021-11-05 17:30:27 +01:00
Dominic Clark
3d7ef9fa4f Use modern CMake targets for SDL2 (#6132) 2021-10-05 16:38:11 +01:00
Alexandre Almeida
ca790def76 Fix clip rendering inconsistency (#6182)
* Fix clip rendering inconsistency

* Remove trailing whitespaces
2021-10-05 11:20:57 +02:00
Alex
f16ec9c054 Fix crash when zooming out during knife mode (#6184) 2021-10-05 10:41:36 +09:00
Alexandre Almeida
47cddcba75 Split InstrumentTrack (#6176)
Split InstrumentTrackView and InstrumentTrackWindow off of InstrumentTrack
2021-10-02 05:40:01 +02:00
Levin Oehlmann
f742710758 Macro cleanup (#6095)
Summary:

* `NULL` -> `nullptr`
* `gui` -> Function `getGUI()`
* `pluginFactory` -> Function `getPluginFactory()`
* `assert` (redefinition) -> using `NDEBUG` instead, which standard `assert` respects.
* `powf` (C stdlib symbol clash) -> removed and all expansions replaced with calls to `std::pow`.
* `exp10` (nonstandard function symbol clash) -> removed and all expansions replaced with calls to `std::pow`.
* `PATH_DEV_DSP` -> File-scope QString of identical name and value.
* `VST_SNC_SHM_KEY_FILE` -> constexpr char* with identical name and value.
* `MM_ALLOC` and `MM_FREE` -> Functions with identical name and implementation.
* `INVAL`, `OUTVAL`, etc. for automation nodes -> Functions with identical names and implementations.
* BandLimitedWave.h: All integer constant macros replaced with constexpr ints of same name and value.
* `FAST_RAND_MAX` -> constexpr int of same name and value.
* `QSTR_TO_STDSTR` -> Function with identical name and equivalent implementation.
* `CCONST` -> constexpr function template with identical name and implementation.
* `F_OPEN_UTF8` -> Function with identical name and equivalent implementation.
* `LADSPA_PATH_SEPARATOR` -> constexpr char with identical name and value.
* `UI_CTRL_KEY` -> constexpr char* with identical name and value.
* `ALIGN_SIZE` -> Renamed to `LMMS_ALIGN_SIZE` and converted from a macro to a constexpr size_t.
* `JACK_MIDI_BUFFER_MAX` -> constexpr size_t with identical name and value.
* versioninfo.h: `PLATFORM`, `MACHINE` and `COMPILER_VERSION` -> prefixed with `LMMS_BUILDCONF_` and converted from macros to constexpr char* literals.
* Header guard _OSCILLOSCOPE -> renamed to OSCILLOSCOPE_H
* Header guard _TIME_DISPLAY_WIDGET -> renamed to TIME_DISPLAY_WIDGET_H
* C-style typecasts in DrumSynth.cpp have been replaced with `static_cast`.
* constexpr numerical constants are initialized with assignment notation instead of curly brace intializers.
* In portsmf, `Alg_seq::operator[]` will throw an exception instead of returning null if the operator index is out of range.

Additionally, in many places, global constants that were declared as `const T foo = bar;` were changed from const to constexpr, leaving them const and making them potentially evaluable at compile time.

Some macros that only appeared in single source files and were unused in those files have been removed entirely.
2021-09-30 18:01:27 +02:00
Alex
96369405b4 Color submenu, undoable colors, renaming signals (#6165)
* TCO coloring: submenu, randomize, undoable, renaming signals/slots

* Track coloring: submenu, undoable, renaming signals/slots

* FX color submenu

* Set modified on color change

* Use lambda to update TCOView after track color change

* More renaming, fix memory leak

Co-authored by DomClark
2021-09-24 21:53:25 +02:00
Tres Finocchiaro
131b273894 Fix compilation on macOS aarch64 (#6152)
* Fix compilation on macOS aarch64
- Bumps rpmalloc submodule to fix assembly compilation, fix `rpmalloc_thread_finalize()` API change
- Adds aarch64 "/opt" Homebrew prefix (reuse `APPLE_PREFIX`)
* Add detection for non-Intel architectures
2021-09-22 09:28:16 -04:00
Johannes Lorenz
8a9a2fae62 Compile LMMS using C++17
This replaces `set(CMAKE_CXX_STANDARD 14)` by `set(CMAKE_CXX_STANDARD 17)`
wherever it is required.

Additionally:

* raise `CMAKE_MINIMUM_REQUIRED(VERSION ...)` to `3.8` (the minimum
  that supports C++17)
* `stdshims.h` is now unused and thus removed
2021-09-17 18:23:01 +02:00
Hussam al-Homsi
e3044575bc Default to FLAC compression level 5 (#6052) 2021-09-15 17:50:49 +01:00
Alexandre Almeida
770d2498b5 Rename Mixer to AudioEngine (#6127) 2021-09-12 01:00:21 +02:00
Martin Pavelek
e07861ced3 Support for alternative tunings and keyboard mappings (#5522)
Co-authored-by: Kevin Zander <veratil@gmail.com>
Co-authored-by: Dominic Clark <mrdomclark@gmail.com>
Co-authored-by: Martin <martin@sigma.he29.net>
2021-09-09 18:49:24 +01:00
Hyunjin Song
5d7692f437 Fix wrong VST pitch after starting LMMS with non-default sampling rate (#6068) 2021-07-27 11:09:26 +09:00
Levin Oehlmann
0abbd6cb79 Remove 'using namespace std;' from some headers (#6076) 2021-07-23 19:16:51 +02:00
István Szabó
660056045c Fix cloning of B/B tracks (#6077)
Co-authored-by: Spekular <Spekular@users.noreply.github.com>
2021-07-22 11:05:57 +09:00
Martin Pavelek
6f8c6dba82 Alias-free oscillators (#5826)
Add a band-limited, alias-free wavetable oscillator option to the
`Oscillator` class. Use it by default for Triple Oscillator.

Savefiles which do not have this feature enabled (e.g. old
savefiles) will be loaded without this feature to keep the sound
consistent.

Original author: @curlymorphic.
Fixed: @he29-net.
2021-07-04 13:14:59 +02:00
Spekular
c71e408a82 Preserve FX channel when replacing track (#5957)
* Preserve FX channel when replacing track

* Add comment
2021-06-21 23:19:06 +02:00
Josh Jeppson
37ed247f45 Fix collapsing a directory triggering preview in file browser (#6060) 2021-06-20 12:57:23 +09:00
Hussam al-Homsi
9f3edd96df Replace some identical function calls with a variable (#6050) 2021-06-12 00:00:23 -04:00
Hussam al-Homsi
0ebe5998d3 Simplify an if-else (#6046) 2021-06-09 13:10:31 -04:00
David CARLIER
e9f264e37f Gui editors: Use float for zoom precision (#6008)
This fixes build errors with casts.
2021-05-15 17:17:40 +02:00