Commit Graph

7549 Commits

Author SHA1 Message Date
Andrés
372fe3bdcf Play automation pattern when midi controller connected (#5657)
* Play automation pattern when midi controller connected

* empty line removed

* Improved for clarity

* removed midi specific controller logic

* formatting changes

* comments added

Co-authored-by: IanCaio <iancaio_dev@hotmail.com>

Co-authored-by: IanCaio <iancaio_dev@hotmail.com>
2021-03-26 20:40:38 -03:00
Lost Robot
3dcae02d86 Upgrade the Flanger effect (#5873)
Updates QuadratureLfo and moves to include/

Co-authored-by: Hyunjin Song <tteu.ingog@gmail.com>
Co-authored-by: Dave French <dave.french3@googlemail.com>
2021-03-25 09:34:43 +09:00
cyber-bridge
4a99904ff6 Feature: Pattern import/export (#5891)
* Init

* Suggested changes by @IanCaio, thanks!

* Selecting one file to import is enough.

* Explicit use of TimePos in favour of int where expected, as suggested.

* Make pattern import/export future proof with using DataFile instead of custom code to read/write the pattern file.

* Remove unused/duplicate imports

* Make import/export dialogs file-ext filter consistent.

Co-authored-by: CYBERDEViL <cyberdevil@notabug.org>
2021-03-21 11:40:12 -03:00
Spekular
5ad034ade3 Use MEMBER, not WRITE for mouseHotspot Q_PROPERTYs (#5955)
* Use MEMBER, not WRITE for mouseHotspot Q_PROPERTYs

* Remove now-useless setMouseHotspot methods
2021-03-19 14:22:42 +01:00
Alex
0967ffbc3a Enhanced quantize in PianoRoll (#5946)
* Button with menu has split highlight

* Add menu with more action to quantize button

* Style changes

* Fix CSS length-zero-no-unit warning

* Add combo button to classic theme
2021-03-16 17:42:08 +01:00
Martin Pavelek
17ea61676f Add LcdFloatSpinBox (extracted from microtonal PR) (#5865)
* Add changes extracted from microtonal PR

* Apply suggestions from code review

Co-authored-by: IanCaio <iancaio_dev@hotmail.com>

* Apply suggestions from code review

(adding oneliner spaces)

Co-authored-by: IanCaio <iancaio_dev@hotmail.com>

* Update src/gui/widgets/LcdFloatSpinBox.cpp

Co-authored-by: Hyunjin Song <tteu.ingog@gmail.com>

* Apply suggestions from code review

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

* Implement suggestions from review

* Reorder constructor parameters, remove old code for cursor movement and hiding from Lcd*SpinBoxes

* Apply suggestions from code review

Co-authored-by: IanCaio <iancaio_dev@hotmail.com>

* Fix right margin width in seamless mode

* Add explanation to border drawing code

Co-authored-by: IanCaio <iancaio_dev@hotmail.com>
Co-authored-by: Hyunjin Song <tteu.ingog@gmail.com>
Co-authored-by: Dominic Clark <mrdomclark@gmail.com>
2021-03-15 14:06:48 -03:00
Spekular
8acb9222fd Knife Tool for Sample Clips (Again) (#5524)
* Rebase BaraMGB's Knife
Co-authored-by: Steffen Baranowsky <BaraMGB@freenet.de>

* Draw marker

* Refactoring and shift mode

* Allow resizing

* Add Icon

* Fix stuck marker on RMB, remove unnecessary cast

* Remove redundant line, more const

* Fix

* Review fixes

* Only perform split logic for SampleTCO

* Add unquantizedModHeld function

* missed one

* Don't use copy/paste

* Don't use copy/paste

* More git troubles

* Fix undo

* git dammit

* Cleaner solution?

* Set cursor, add copy assignment to SampleBuffer

* Add TODO comment

* Make it build

* Fixes from review

* Make splitTCO virtual

* Make splitTCO more generic

Co-authored-by: IanCaio <iancaio_dev@hotmail.com>

* Prevent resizing of MIDI clips in knife mode

* Fix move/resize and rework box select via ctrl

* Apply suggestions from code review.

Co-authored-by: IanCaio <iancaio_dev@hotmail.com>

* Don't show inaccurate/useless/empty text float in knife mode

* Addresses Github review

	- Fixes a typo where QWidget::mousePressEvent was being called
inside mouseReleaseEvent.
	- Avoids unnecessarily disabling journalling on the Split
action, since it doesn't require it.

* Revert format changes in Track

* Revert format changes in Track.h

* Revert formatting changes in Track.cpp

Co-authored-by: Hyunjin Song <tteu.ingog@gmail.com>
Co-authored-by: IanCaio <iancaio_dev@hotmail.com>
2021-03-12 22:49:54 +01:00
Veratil
266ad8d45e Use lambda for calculating a note's Y position 2021-03-12 10:19:08 -06:00
Veratil
85c1973f30 Fix drawNoteRect misalignments 2021-03-12 10:19:08 -06:00
Spekular
db37fa1eb2 AutomationPattern copy ctor: null check getTrack (#5943)
Prevents a segfault when attempting to copy construct an automation pattern with no track. Thanks to SeleDreams, Veratil, Dom.
2021-03-11 11:49:32 +01:00
Lost Robot
459948f8cd Add Compressor effect to LMMS (#5458)
* Add Compressor effect
2021-03-10 23:17:32 -07:00
SeleDreams
00ac4f58f5 Added a null check before checking the flag of an instrument 2021-03-07 21:11:04 +01:00
IanCaio
7aa30c4ecc Fix small bug on #5848 (#5933)
m_gridMode was not being initialized on the PianoRoll
constructor. For that reason the first note drag without changing the
GridMode would result in m_gridMode being used unintialized and neither
the Snap nor Nudge mode being used. Here, the result of this was a note
being moved unquantized.
	This fixes it by calling changeSnapMode() after setting up the
snapModel on the constructor.
2021-03-06 06:42:20 -03:00
rghvdberg
ea295c4ee8 Pianoroll: nudge/snap while dragging notes (#5848)
* pianoroll: nudge/snap while dragging notes

combobox for switching behavior
old behavior (nudge) is default

* snap note start or note end to nearest grid line

* fix member variable name

* change default width of pianoroll

* remove trailing white space

* use mouse position instead of m_draggednote

* Uses enum instead of text for GridMode selection

	To avoid problems with translations breaking the conditional,
PianoRoll::changeSnapMode now uses the value of the ComboBox model,
casted to the GridMode enum instead of the text.

* Fixes last code style issues

	A few code style issues were left, those are fixed in this
commit.

* Removes forgotten comma on enum

	Since the last enum value was commented out, there's an
unnecessary comma left that was removed.

* Rewrites some of the grid logic

	Separates Nudge logic and Snap logic more explicitly.
	Avoids recalculation of mouse conversion to time line ticks.
	Disables shift resizing for Snap mode.
	Removes unnecessary range checks.
	Fixes bug with note key boundary checks (which is present in master).

* Make noteOffset an int instead of TimePos

Co-authored-by: Ian Caio <iancaio_dev@hotmail.com>
2021-03-05 09:38:33 -03:00
Alex
5d366ef06f 4 new note modification tools (#5857)
* Add new note length modification tools

* "Last" instead of "latest"

* Code formatting

Co-authored-by: IanCaio <iancaio_dev@hotmail.com>

* Fix sort

* Fix incorrect cut of last note

* Fix Fill not stretching last note to end

* Fill from end positions

* Rename limitNoteLengths

* Compare with non-selected notes when filling

* Style changes by IanCaio + bugfix

* break instead of continue

Co-authored-by: IanCaio <iancaio_dev@hotmail.com>
2021-03-05 09:31:27 -03:00
IanCaio
e880e3cb2a Changes AutomationPattern to use nodes instead of raw float values (#5712) 2021-02-28 06:48:15 -03:00
cyber-bridge
05de59c085 Feature: PianoRoll Knife (#5845)
* Initial PianoRoll razor feature

* Restore PianoRoll edit mode after focusOut and in razor mode.

* Show changes directly after cut.

* Fix hanging note after adjusting vol/pan with razor action.

* Extract the split action to a separate method

	This PR addresses some suggestions from a review, the most
important ones being:
	- Extracting the note split action to a separate method, called
Pattern::splitNotes
	- Removing getMouseTickPos method
	- Adding a variable that holds the current razor position and a
method to update it (quantizing if CTRL is not pressed)
	- Using [this] to capture "this" on the lambda function instead
of [=], since the latter doesn't work as intended from C++20 forward
	- Fixing some code style and adding comments

* Removes an extra call to noteUnderMouse

	By removing "&& noteUnderMouse()" from the mousePressEvent
conditional, we avoid an extra call to noteUnderMouse. The only
difference in the behavior of the tool is that now clicking on a place
that doesn't have a note will exit Razor mode.

* Style change suggested by @russiankumar

* Cancel razor action on SHIFT release.

* Make razor cut-line (color) themable.

* Add razor cut-line color to classic theme style.css

* Rename razor to knife.

* Change pixmap from razor to knife (from https://github.com/LMMS/lmms/pull/5524)

* Remove SHIFT behavior.

* Change knife shortcut to SHIFT+K

Co-authored-by: CYBERDEViL <cyberdevil@notabug.org>
Co-authored-by: Ian Caio <iancaio_dev@hotmail.com>
2021-02-26 17:17:16 +05:30
salilra
1534e90a39 Check MidiJack::m_jackAudio before using (#5907) 2021-02-13 18:13:28 +01:00
liushuyu
ed4df52d86 Support HTML markup for knob labels (#3134)
Co-authored-by: Hyunjin Song <tteu.ingog@gmail.com>
Co-authored-by: Dominic Clark <mrdomclark@gmail.com>
2021-01-28 15:27:13 +09:00
Thomas Mueller
4107bc02b9 Double check for correct normalization 2021-01-23 14:03:37 +01:00
Oskar Wallgren
04d696a1e9 Fix possible noise when normalizing bitinvader 2021-01-23 14:03:25 +01:00
Alexandre Almeida
e900576dbd FifoBuffer adjustments (#5803) 2021-01-23 13:52:36 +01:00
Deena
1744fd7dc1 Fix MP3 stereo mode doesn't match to the selection in export dialog (#5890) 2021-01-23 12:09:18 +09:00
Ray Redondo
ca17641059 Fix 32-bit winegcc call on Linux when using LLD (#5878) 2021-01-10 13:28:54 +09:00
the-bebop
f7fbb9aa16 Use case insensitive alphabetical sort in tree-browsers (#5875)
* sort items in tree-browsers caseinsensitively in alphabetical order
2021-01-07 16:29:53 +01:00
Deena
24761a4f77 Fix the unit of Bitcrush Output clip level from % to dBFS 2021-01-02 11:53:44 +09:00
Oskar Wallgren
d769459764 Arpeggiator - Note repeats (#5784)
Co-authored-by: Kevin Zander <veratil@gmail.com>
Co-authored-by: IanCaio <iancaio_dev@hotmail.com>
2021-01-01 14:43:46 +01:00
Oskar Wallgren
aa02a21541 FPE debug - Disable FE_UNDERFLOW
FE_UNDERFLOW gives a fair amount of hits with LMMS but is of lower
importance than the other tests and slows down debugging considerably.
Commenting out for the time being.
2020-12-30 12:50:49 +01:00
Hyunjin Song
a058047375 Revert submodule changes in a5dc3fee6a 2020-12-30 10:47:03 +09:00
Spekular
bf7c87de7e Fix rule of three for SampleBuffer, SampleTCO (#5727)
* Automatic formatting changes

* Add copy constructor and assignemnt to SampleBuffer

* Add copy constructor to SampleTCO

* Delete SampleTCO copy assignment, initial work on SampleBuffer swap method

* SampleBuffer: Finish(?) swap and use it for copy assignment, lock for read in copy constructor

* Don't forget to unlock in copy assignment!

* Formatting changes

* Lock ordering in swap

* Fix leak and constness

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

* Fix multiplication style, ensure lock is held when necessary

... by switching from an initializer list to manual assignments.

* Fixes from review

* Avoid more undefined behavior

* Update src/tracks/SampleTrack.cpp

Co-authored-by: Dominic Clark <mrdomclark@gmail.com>
2020-12-29 23:01:41 +01:00
Alexandre Almeida
67a5da8c89 Workaround for SDL race condition (#5815) 2020-12-27 02:11:06 +01:00
IanCaio
8655d50bb2 Fixes bug with pasting of TCOs (#5840) (#5847)
* Fixes bug with pasting of TCOs (#5840)

	TimePos::quantize works for negative values, but ends
up snapping the TCO to the opposite direction. This is because the
snapping happens in the direction of the origin, which is left for
positive values and right for negative values.
	That wasn't accounted for in the pasteSelection method
and we ended up with wrong positions when pasting before the
TCO(s) we copied.
	This PR fixes the issue by ensuring that we snap in the same direction when halfway through an interval, regardless of negative or positive offset.

* Fixes a calculation on TimePos::quantize

	Since we are working with integers, using "offset /
(interval/2)" would be problematic if interval was odd. We instead
multiply both sides by two and use "(2 * offset) / interval" to obtain
the result for snapUp.
2020-12-25 13:28:49 +01:00
Hyunjin Song
a5dc3fee6a Fix some Wine detection errors 2020-12-25 12:43:17 +09:00
zserik
eeec3f8664 Fix compilation with 'AUDIO_PORT_SUPPORT' defined (#5841)
Co-authored-by: PhysSong <tteu.ingog@gmail.com>
2020-12-21 19:05:33 +09:00
Hyunjin Song
53b2a33c88 Fix Homebrew updates on CircleCI
Update Hombebrew manually to avoid errors with shallow clones.
2020-12-19 12:27:05 +09:00
Spekular
3eabaabe19 Update knob graphic no matter how small change is (#5850) 2020-12-16 02:45:52 +01:00
Spekular
09ee5c7f1f Fix #5840 (#5844)
If copying to another track, allow same start and end position.
2020-12-13 16:40:57 +01:00
IanCaio
3d7d0051f3 Adds feature to merge Instrument Track patterns (#5700) 2020-12-12 11:33:45 -03:00
Alexandre Almeida
28ee260e28 Mixer refactor (#4894)
Co-authored-by: Kevin Zander <veratil@gmail.com>
2020-12-11 10:46:03 +09:00
Oskar Wallgren
2cb797353b Blacklist some calf plugins
Plugins broken, crash on sound.
See: https://github.com/calf-studio-gear/calf/issues/278
2020-12-10 03:52:22 +01:00
Spekular
d3cd704396 Temporary PR-Freeze message 2020-12-08 15:55:43 +01:00
Alexandre Almeida
040fb48867 Update code style for BBTrackContainer (#5812) 2020-12-08 00:25:00 +01:00
Johannes Lorenz
2f66449092 Implement Lv2 Options (#5761)
Implement `LV2_OPTIONS__options` feature and some buf-size properties.

The code currently assumes that the LMMS buffersize never changes, which
is currently true in the LMMS code base.
2020-12-08 00:12:04 +01:00
IanCaio
cd2366a21c Fix style on "SampleBuffer.cpp" and "SampleBuffer.h" (#5791)
Fix code style issues in the `SampleBuffer` class.

Remove strange comments around "not an Ogg Vorbis file"
warning.
2020-12-07 23:09:34 +01:00
Kevin Zander
118d63bada Change abs to std::abs (#5831)
This prevents GCC 6 from raising an ambiguous call error.
2020-12-07 22:42:05 +01:00
IanCaio
53a733ba66 Fixes bug where clicking on the Activity Indicator doesn't play a note (#5824) 2020-12-07 17:11:41 -03:00
Hyunjin Song
3ad0462d44 Fix too small height of the carla instrument window (#5829) 2020-12-07 13:55:50 +09:00
Alexandre Almeida
b701e82e3b Split Track.cpp and Track.h (#5806) (Fixes #5592) 2020-12-04 02:47:16 +01:00
Johannes Lorenz
ddf69feebc Lv2: Fix overflow and enum visualization
* Fix arithmetic overflow in `Lv2Ports::Meta::get()` in case min and
  max are not set
* Fix combo boxes with >16 values being wrongly visualized as knobs
* Rename `Lv2Ports::Vis` enum value `None` to `Generic`
2020-12-03 06:10:30 +01:00
Dominic Clark
827d44be32 Ensure file opened successfully when loading sample (#5816) 2020-12-03 01:31:03 +00:00