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.
* 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
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...
* 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".
right place when it not played from the begining.
That has created a difference between the ticks and the metronome and
the sample track.
The cause of the problem was that the calculation of the frame to play
was wrong: we had calculated `framesPerTick` according to the current
engine's sample rate instead of the SampleBuffer's sample rate.
To avoid a race condition between the gui thread which destroys the
samplebuffer and the mixer thread which increases the buffer's ref-
count, we'll make sure to touch the ref-count only when wh're synced
with the mixer.
NotePlayHandleManager::acquire uses a read lock unless the pool is empty.
If two threads try to acquire NotePlayHandle simultaneously
when the value of s_availableIndex is 1, one thread will try to read s_available[-1].
If the acquire action and the release action are done at the same time,
NotePlayHandleManager::acquire may try to read data
before NotePlayHandleManager::release actually writes.
This commit prevents them by always using the write lock when acquiring a NotePlayHandle.