itsmattkc
08e2fa4d8e
renderer: generate audio waveforms in render threads
...
Solves UI lag issues with long audio sequences.
2021-06-11 23:30:55 -07:00
itsmattkc
7e62ad4e10
audiovisualwaveform: optimize shifting code
2021-05-30 12:55:50 +10:00
itsmattkc
d13f68593b
audiomonitor: fix param sync issue that caused crashes
2021-05-26 18:00:12 +10:00
itsmattkc
f2f5ab8739
audiovisualwaveform: keep track of length
...
Useful to determine how long the visual waveform is.
2021-04-27 00:49:04 +10:00
itsmattkc
77d4b18a60
updated copyright year for 2021 [skip ci]
2021-04-17 18:56:50 +10:00
itsmattkc
22b2d08baf
rational: implement NaN mode
...
Also clarify code where 0 is used as a rational.
2021-04-17 15:04:03 +10:00
itsmattkc
6b7412aff6
audiovisualwaveform: removed templates
...
I'm not sure if this will make any difference performance-wise,
but we don't need them anymore so yeah.
2021-04-14 15:27:34 +10:00
itsmattkc
3ffb2fde1c
audiomonitor: use mipmapped waveform
...
Since we have these now, may as well use them. This should
improve general playback performance since the audio monitor
will be able to iterate far fewer
2021-04-14 15:25:38 +10:00
itsmattkc
8e1ac7c1a0
audiovisualwaveform: minor refactoring
...
Improves code readability.
2021-04-14 13:47:46 +10:00
itsmattkc
b425754fef
audiovisualwaveform: don't draw empty sample
2021-04-14 13:47:33 +10:00
itsmattkc
7107afaf99
audiovisualwaveform: mipmap waveforms
2021-04-13 23:43:44 +10:00
itsmattkc
82d2a253d9
preferences: revised audio tab
...
Cleaned up and improved the audio tab.
Fixes #1546 . Kind of. There doesn't seem to be much need for a
sample rate selection for our current high-level audio system.
If we implement higher end audio backends in the future (e.g.
ASIO, JACK), those can be given a sample rate setting.
2021-04-11 20:20:01 +10:00
itsmattkc
c023916d05
audio: set push device to null when closing
...
Fixes crash trying to push samples after parameters change.
2021-04-08 08:20:13 +10:00
itsmattkc
fb410e7c96
use vectors for sample buffers rather than raw ptr arrays
2021-03-17 11:54:14 +11:00
itsmattkc
97dd84c68b
decrease audio buffer size to sane level
...
Improves audio on certain platforms
2021-03-08 11:26:36 +11:00
itsmattkc
0936c7c580
added some documentation to audiovisualwaveform
2021-01-18 10:43:59 +11:00
itsmattkc
827c9f93cc
AudioVisualWaveform: implement same size check as AudioPlaybackCache to prevent index out of bounds crashes
2020-11-24 11:02:42 +11:00
itsmattkc
75d4cd899b
use hardcoded namespace
...
The macro defined namespaces confused the hell out of lupdate and more or less broke translations permanently. Looks like the only way we can do it is to have a hardcoded namespace, which goes against my instinct, but honestly how likely is it that we'll change the namespace anyway (I guess forks might want to do it, but that's their problem ;) )
2020-11-17 20:24:42 +11:00
itsmattkc
d241090a9f
finally updated the copyright year
2020-11-17 20:13:22 +11:00
itsmattkc
0d0766e4fb
improved render channel count system
2020-11-15 22:16:40 +11:00
itsmattkc
52b98f3fa3
lightened SampleFormat struct
2020-11-10 11:24:20 +11:00
itsmattkc
453f3700ab
ensure AudioOutputManager is deleted in its own thread
...
Fixes #1265
2020-10-12 12:23:20 +11:00
itsmattkc
6ced8504d6
audiooutputmanager: reordered constructor
2020-10-12 01:34:45 +11:00
itsmattkc
f7ab0bb640
audio: rewrote audio cache to write to contiguous segments rather than one long file
...
Fixes issues with PCM file placement, optimizes some audio-based timeline
and cache operations, just generally a better approach.
2020-10-11 23:27:40 +11:00
itsmattkc
82ceef2013
audio: don't write samples if channel count is zero
2020-09-21 04:44:55 +10:00
itsmattkc
f4feb381b1
audiomanager: updated config entries
...
The config entries that we were using were changed before.
2020-08-18 02:08:03 +10:00
itsmattkc
3e9f98e230
Merge branch 'master' of https://github.com/olive-editor/olive.git
2020-06-26 00:22:03 +10:00
itsmattkc
c324de804c
audiomanager: create and delete future watchers when necessary
2020-06-26 00:21:34 +10:00
itsmattkc
6ebcb7162e
audiovisualwaveform: clamp audio values so they stay inbounds
2020-06-22 00:39:38 +10:00
itsmattkc
ffebe70a65
audiovisualwaveform: fixed bug that would make all channels the same
2020-06-12 03:27:00 +10:00
itsmattkc
ccf5d4cece
audiovisualwaveform: detect if the start index exceeds the buffer sample count
...
Fixes segfault.
2020-06-11 21:24:50 +10:00
itsmattkc
430561e2ac
sequence: made divider a sequence parameter rather than a viewer parameter
...
Doing this makes the preview resolution an explicit project setting rather
than a temporary UI setting. This will allow more consistency when caching.
2020-06-08 14:41:35 +10:00
itsmattkc
ee3fa529cb
audiovisualwaveform: reinterpret cast to char*
...
Bypasses GCC warning about qfloat16's constructor.
2020-06-08 04:03:24 +10:00
itsmattkc
a29de7cea0
audiovisualwaveform: allow only partial sum overwrite
2020-06-05 15:02:44 +10:00
itsmattkc
5eeef76b62
waveform: shift track waveform alongside cache
2020-06-04 23:32:50 +10:00
itsmattkc
0e87762afa
waveforms: moved waveform to track rather than block
...
This is a much more robust and thread-safe system of storing the waveforms.
2020-06-04 18:03:21 +10:00
itsmattkc
fb5c06db50
audiooutputmanager: use deleteLater instead of delete
...
Ensures destructor is run in its own thread.
2020-06-03 03:39:02 +10:00
itsmattkc
08eb12710c
audiovisualwaveform: ignore OverwriteSums if input data is empty
...
Prevents potential index out of bounds error.
2020-06-03 03:37:46 +10:00
itsmattkc
1fce380cc6
timeline: automate waveform resizing
...
Now each UndoCommand won't have to handle it (unless it can introduce
specific optimizations).
2020-06-01 14:54:14 +10:00
itsmattkc
c2e47a296c
timeline: heavily optimized and improved nearly all timeline optimizations
...
Features a lot of timeline-related cache optimizations as well as general
optimizations and improvements in timeline behavior. Should improve
usability significantly.
2020-06-01 04:42:59 +10:00
itsmattkc
d15b08c181
sampleformat: fixed erroneous constant
2020-04-22 13:10:48 +10:00
itsmattkc
ccb02d30aa
colormanager: implement default config
2020-04-22 05:08:33 +10:00
itsmattkc
141ac8b12f
audiomonitor: implemented hardware acceleration
...
Drawing is much smoother this way.
2020-04-22 01:26:39 +10:00
itsmattkc
afa3d3babe
audiomonitor: rewrote to handle audio independently of output
...
This gives the AudioMonitor more control over its own timing and appearance
and also reduces the load on the audio processing threads.
2020-04-22 01:09:49 +10:00
itsmattkc
efeac6793e
audio: increased qaudiooutput buffer size
...
Reduces stuttering with audio playback.
2020-04-21 23:52:16 +10:00
itsmattkc
412a6dfdc2
audio: moved output to its own high priority thread
...
macOS audio playback failed due to audio being processed in the main thread.
Now all audio playback has been placed into its own high priority thread to
always keep up better with the operating system's demands.
2020-04-21 19:31:29 +10:00
itsmattkc
05eae1e28a
audio: don't use a shared QIODevice
...
This system was kind of janky anyway. It makes more sense ultimately for the
audio management classes to contain the file handle rather than the renderer.
2020-04-21 17:55:55 +10:00
itsmattkc
1d3b9bbf13
audiomanager: remove audio signalling
...
This is in preparation for upcoming modifications that we'll be making to the
AudioManager.
2020-04-21 17:45:39 +10:00
itsmattkc
fd1ecfae6f
audio: removed hardcoded stereo value
...
Fixes bug that caused AudioMonitor to only show two channels regardless of the
actual number of channels being mixed.
2020-04-14 23:55:28 +10:00
itsmattkc
1aa87cbda6
various: encapsulate all code in the olive namespace to avoid name collisions
...
Large-scale code cleanup. Also adds a license to the top of all files that were
missing it.
2020-04-06 15:29:53 +10:00