Commit Graph

7148 Commits

Author SHA1 Message Date
Lukas W
d35df8ee7b Move BufferPool::clear to MixHelpers and rewrite
* Move out of BufferPool because it's not related to memory allocation
* Rewrite because memset() is not portable because it sets all bytes to
  zero which depends on the platform's float representation of 0.0 to be
  all zero bytes
2019-08-27 14:33:36 +02:00
Lukas W
5349be6a63 NiftyCounter: Fix decrement 2019-08-25 23:22:06 +02:00
Lukas W
71e9b45446 Memory: Fix wrong rebind 2019-08-25 23:22:06 +02:00
Lukas W
119efeec01 Fix tests crash due to incomplete cleanup 2019-08-25 23:22:06 +02:00
Lukas W
2f8e231b8c Fix macOS linking problem 2019-08-25 23:22:06 +02:00
Lukas W
8b122d5a4c Fix libcds on MinGW 2019-08-25 23:21:53 +02:00
Lukas W
ef7b8c68d5 Add naive benchmarks 2019-08-25 22:22:21 +02:00
Lukas W
2cb4455a5f Replace AllignedAllocator implementation with rpmalloc calls 2019-08-25 22:22:21 +02:00
Lukas W
178888af94 BufferManager: Use MemoryPool, rename to BufferPool 2019-08-25 22:22:21 +02:00
Lukas W
3e1a96693d Replace NotePlayHandleManager implementation with MemoryPool 2019-08-25 22:22:21 +02:00
Lukas W
1cd8e15942 Replace LocklessAllocator with new MemoryPool class
MemoryPool maintains a free list of pre-allocated entries stored in a
libcds MPMC Queue. In contrast to LocklessAllocator, it's a lot faster,
less (and less complex) code to maintain for us and it doesn't fail when
it's full.
2019-08-25 22:19:48 +02:00
Lukas W
1340c273c7 Memory.h fixes
* Use a Nifty Counter for rpmalloc initialization. This fixes init order
  with other static objects using MmAllocator or MemoryManagger
* Fix exception throwing in AlignedAllocator
* Add missing constructor to MmAllocator for compatibility with std
  containers
2019-08-25 22:18:47 +02:00
Lukas W
3c73270c23 Rename MemoryManager.h to Memory.h 2019-08-25 22:18:47 +02:00
Lukas W
2a08909380 Move aligned malloc to MemoryManager.h, port to stl allocator 2019-08-25 22:17:37 +02:00
Winnie
a863830795 Extract TemplatesMenu class from MainWindow (#5125) 2019-08-24 09:33:52 +02:00
Dominic Clark
93f9134c45 Fix crash opening VST automation window (#5144)
The VST automation window initially adds a subwindow with a null widget, so we have to check that w isn't nullptr before getting its size hint.

Fixes #5132.
2019-08-23 20:38:46 +03:00
Kevin Zander
c80519e65e Allow playing muted pattern in the piano roll (#5134) 2019-08-21 12:41:33 +08:00
Shmuel H
ce5c74432e Update appveyor image to Visual Studio 2017 (#5130) 2019-08-20 12:37:42 +03:00
Steffen Baranowsky
e1ef5fad0d shows the vertical scrollbar of songeditor and bb-editor only if needed (#5102) 2019-08-18 10:49:02 +02:00
Kun Deng
00d2cd304a Fix for the SF2 with no "default" patch (#5084)
Fixes #323
2019-08-13 21:23:57 +03:00
Olivier Humbert
db200fb90c Create FUNDING.yml (#5057) 2019-07-30 08:40:07 +08:00
Hussam al-Homsi
e206798c1e Use mean based logic for controlling loop points. (#4034)
* Use median based logic for controlling loop points.

* Limit controlling loop points to right mouse button.
2019-07-29 12:08:07 -04:00
Spekular
1c715bc335 Enhanced snapping in song editor (#4973)
* New default behavior: Preserves offsets when moving clips, resizes in fixed increments.

* Adds shift + drag: Snaps move start position (like current behavior) or end position (new),
based on which is closest to the real position. When moving a selection,
the grabbed clip snaps into position and the rest move relative to it.

* Adds alt + drag: Allows fine adjustment of a clip's position or size,
as an alternative to ctrl + drag.

* Adds a Q dropdown in the song editor to allow finer or coarser snapping (8 bars to 1/16th bar)

* Adds a proportional snap toggle. When enabled, snapping size/Q adjusts based on zoom,
and a label appears showing the current snap size. This is disabled by default.
2019-07-27 17:14:49 +08:00
Hyunjin Song
7492e53b02 Fix broken translations in 12ea80d4fb 2019-07-22 09:01:58 +09:00
Johannes Lorenz
a966d25ad2 Merge branch 'variable-tab-widget' 2019-07-22 01:22:10 +02:00
Johannes Lorenz
6e7c4a47c2 Fixes #5061: Fix Effect Rack View in Instrument
The EffectRackView in an InstrumentTrackWindow had some parts hidden when
loading files with >= 4 effects. This was now fixed by force-resizing the
EffectRackView to its desired size.

It's a dirty fix, but good enough, plus many Instrument UIs might get
rewritten to be resizable in the future.
2019-07-22 01:20:13 +02:00
Johannes Lorenz
ba6a86d331 TabWidget: Improve size hints 2019-07-22 01:20:00 +02:00
Lost Robot
d949770144 Merge pull request #5083 from freshstudio/fix/context-menu-channel-rename
Fixed renaming mixer channel from the context menu
2019-07-20 07:29:38 -06:00
Freshek
0ed7581355 Fixed renaming mixer channel from the context menu 2019-07-20 15:19:10 +02:00
Martin Pavelek
c3b4d5188a New Spectrum Analyzer (#4950)
Replace old spectrum analyzer by new one with higher resolution and
many new features.

Resolves #2847.
2019-07-17 22:45:26 +02:00
Johannes Lorenz
73c2c70d96 Merge branch 'variable-tab-widget' 2019-07-17 22:21:47 +02:00
Johannes Lorenz
aa8f9361c6 Rename InstrumentView250 to InstrumentViewFixedSize 2019-07-17 22:20:25 +02:00
Johannes Lorenz
a4df7a9765 Split InstrumentView into itself and InstrumentView250 2019-07-14 10:20:54 +02:00
Johannes Lorenz
4f3ed9f9e1 EffectControlDialog: Use 'Preferred' size policy
This does not have any effect, as the surrounding MDI sub window always
uses the minimumSizHint. It's just preparation.
2019-07-13 22:49:26 +02:00
Johannes Lorenz
a4b801fe1b TabWidget: Add missing size hints
This is mostly for completeness, it does not fix any known issues.
2019-07-13 22:49:10 +02:00
Johannes Lorenz
3585b14b98 Instrument view: Add missing size hints
Those are needed for the case when an instrument is being resized
manually.
2019-07-13 22:48:48 +02:00
Johannes Lorenz
f5db880867 SubWindow.cpp: Fix comment 2019-07-13 22:48:15 +02:00
Johannes Lorenz
59e186d208 Closes #5050: Add Mixer threading comments (#5069)
[ci skip]
2019-07-11 18:22:41 +02:00
Steffen Baranowsky
d766b87688 Drop sample on sampletracks (#5043)
* implements drag and drop samples to sampletracks

* clean up / take care of timeLineWidget heigth in songeditor

* unused memeber removed

* clean up

* Update include/TrackContainerView.h

Co-Authored-By: Spekular <Spekular@users.noreply.github.com>

* Update src/gui/TrackContainerView.cpp

Co-Authored-By: Spekular <Spekular@users.noreply.github.com>

* Update src/gui/TrackContainerView.cpp

Co-Authored-By: Spekular <Spekular@users.noreply.github.com>

* Update src/gui/editors/SongEditor.cpp

Co-Authored-By: Spekular <Spekular@users.noreply.github.com>

* load AFP if we don't drop on a sample track

* take care of timeLineWidget size changes

* clean up

* consolidate some code

* requested changes by code review

* move logic to SampleTrackView

* clean up

* clean up

* clean up
2019-06-28 02:26:27 +02:00
Steffen Baranowsky
68cb91726a MDI Subwindow Decoration for VeSTige instruments closes #2824 (#2826)
* MDI Subwindow Decoration for VeSTige instruments closes #2824

* revert changes

* change QMdiSubWindow to our SubWindow in Vestige
2019-06-26 13:34:13 +02:00
Noah Brecht
7834e10bc7 FadeButtons now remain partially lit as a note plays out (#4969) 2019-06-25 20:26:57 +09:00
Johannes Lorenz
a0c2a62c27 Add .editorconfig
This file tells the github online editor to use tabs of width 4 instead
of 8. Open
[this](https://github.com/JohannesLorenz/github_test/blob/master/test.cpp)
test file in your browser to see how it works (the width is 5 in the
example).

Actually, it also tells many other editors...
2019-06-25 03:37:14 +02:00
Lost Robot
2547098dca Merge pull request #5038 from DouglasDGI/better-fx-mixer
Increase Mixer fader falloff speed
2019-06-22 07:16:47 -06:00
Hussam al-Homsi
5431cc7942 Replace tLimit() with qBound() and remove templates.h (#5040)
* Replace tLimit() with qBound()

* Remove templates.h
2019-06-15 23:33:29 +03:00
Lost Robot
499d425b4b Increase Mixer fader falloff speed
This also fixes a display bug that is present with large fader falloff speeds.
2019-06-14 18:38:56 -06:00
Hyunjin Song
f141ae68e0 Fix macOS builds 2019-06-12 17:42:24 +09:00
Hyunjin Song
12ea80d4fb Merge branch 'stable-1.2'
# Conflicts:
#	data/locale/cs.ts
#	data/locale/en.ts
#	data/locale/ko.ts
#	data/locale/ru.ts
#	data/locale/uk.ts
#	data/locale/zh_TW.ts
#	include/Engine.h
#	plugins/nes/Nes.cpp
#	src/core/NotePlayHandle.cpp
#	src/core/SampleBuffer.cpp
#	src/tracks/SampleTrack.cpp
2019-06-12 17:41:12 +09:00
Hyunjin Song
4cb243b0ef Travis: drop unneeded prefix setting for npm 2019-06-12 17:38:53 +09:00
tresf
df79f8c1be Enable dark title bar on macOS
Closes #5031
2019-06-11 22:57:01 -04:00
Shmuel H
723a451ebc Add a save option to discard MIDI connections (#5021)
* Song: add isSavingProject.
* VersionedSaveDialog: Add support for a custom option dialog.
* AutomatableModel: Support the discardMIDIConnections save option.
* InstrumentTrack: Support the discardMIDIConnections save option.
* SaveOptions: Show the save option dialog on "save as".
2019-06-09 15:44:32 +03:00