Commit Graph
44 Commits
Author SHA1 Message Date
Mike Solar 74f73ab3be change: change code style to Linux style except indent. 2025-08-03 03:09:40 +08:00
itsmattkc c1c6893713 various: moved more to core lib 2023-01-19 16:01:31 -08:00
itsmattkc 4b366a9b73 update copyright year to 2022 2022-05-10 10:38:56 -07:00
itsmattkc 5bed4396ea use audioprocessor to match device's output 2022-05-05 16:32:17 -07:00
itsmattkc 9ec42c792a audio: merged all processors into single versatile object 2022-05-05 15:28:32 -07:00
itsmattkc 591d02bdd6 audiomanager: fix crash and return error text if applicable 2022-05-05 11:47:53 -07:00
itsmattkc ef515579df completed audio recording implementation 2022-05-02 17:05:11 -07:00
itsmattkc 9101f5dc49 implemented core audio recording support 2022-05-02 14:00:03 -07:00
itsmattkc 6fed061e65 implemented audio dialog
It's arguably not finished in that each API has parameters that users may want control over (e.g. ASIO latency), but it allows selecting devices again which is a necessity
2022-01-14 18:21:12 -08:00
itsmattkc 48e700ecb5 fixed some compiler errors 2021-10-01 17:25:43 -07:00
itsmattkc fbc5997d32 removed reliance on Qt multimedia 2021-10-01 16:12:12 -07:00
itsmattkc f49aa7d974 finished portaudio switch
This may have bugs in it, but as far as I can tell it's fully functional.
2021-10-01 15:41:24 -07:00
itsmattkc ee81a47f2e begin switch to portaudio
Qt's audio system has served us well, but it's a little limited moving forward. PortAudio is a mature and versatile library that will allow for better audio for users.
2021-10-01 15:41:24 -07:00
itsmattkc db873dfc69 reimplemented reversing and shuttling in new audio 2021-09-26 14:22:50 -07:00
itsmattkc 6f3f7e558b use shared ptr for audio device
Prevents deletion before audio output has received stop signal
2021-09-25 13:29:30 -07:00
itsmattkc 4c9863a696 implement audio device to pull directly from renderer 2021-09-25 12:44:58 -07:00
itsmattkc 77d4b18a60 updated copyright year for 2021 [skip ci] 2021-04-17 18:56:50 +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 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 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 453f3700ab ensure AudioOutputManager is deleted in its own thread
Fixes #1265
2020-10-12 12:23:20 +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 c324de804c audiomanager: create and delete future watchers when necessary 2020-06-26 00:21:34 +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 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 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 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
itsmattkc 9e4c79699e node: split off traversing functions from renderer for usage elsewhere
Fixes issue where Viewer node wouldn't pick up correct length if a tracks
weren't in use.
2020-03-13 15:31:15 +11:00
itsmattkc f1f80c0a39 audiomanager: fixed segfault if olive is closed while the devices are getting
refreshed
2020-02-23 02:20:39 +11:00
itsmattkc a616aaa182 correctly affect speed/reversing when shuttling audio 2020-01-07 16:41:30 +11:00
itsmattkc 02a790b041 simple file renames to better represent their new purposes 2020-01-03 02:36:30 +11:00
itsmattkc 8ec63abc74 moved audio output manager and device to separate thread 2020-01-03 00:32:23 +11:00
itsmattkc 7d0d73bcfe use signal/slot threading for the audio refresh thread instead of subclassing QThread 2020-01-02 22:02:48 +11:00
itsmattkc cd69bd76b9 use sequence parameters as audio output parameters 2019-11-15 20:11:17 +09:00
itsmattkc 52f4c59bec implemented new audio monitor widget 2019-10-23 03:21:05 +11:00
itsmattkc 259b5d530a improved audio pausing feedback 2019-10-17 09:43:38 +11:00
itsmattkc d6483916ac base audio renderer classes created 2019-10-16 13:51:56 +11:00
itsmattkc fe2b0f2dc2 implemented base audio playback and scrubbing 2019-10-14 11:38:29 +11:00
itsmattkc 8df4cf2cdc audiomanager implementation 2019-09-27 03:01:09 +10:00
itsmattkc d1cc36cb78 audio preferences 2019-09-26 19:53:35 +10:00