Thomas Harte
|
25085cb5af
|
Require good ordering.
|
2024-02-09 14:34:59 -05:00 |
|
Thomas Harte
|
9909146c59
|
Fix typo.
|
2024-02-09 14:26:02 -05:00 |
|
Thomas Harte
|
609d81d75d
|
Distinguish sources of samples and of whole buffers.
|
2024-02-09 14:25:40 -05:00 |
|
Thomas Harte
|
c105acf1c7
|
Adopt a full type for stereo samples, gaining + and +=.
|
2024-02-09 10:48:42 -05:00 |
|
Thomas Harte
|
f3d0827d14
|
Introduce [Mono/Stereo]Sample types.
|
2024-02-09 09:15:48 -05:00 |
|
Thomas Harte
|
a4a983eb81
|
Promote stereo status to template parameter.
|
2024-02-08 15:21:47 -05:00 |
|
Thomas Harte
|
48be7c677e
|
Avoid inheritance.
|
2024-02-08 12:07:12 -05:00 |
|
Thomas Harte
|
147d817977
|
Use fold expression for final-answer is_stereo.
|
2024-02-08 11:10:08 -05:00 |
|
Thomas Harte
|
d481f335b8
|
Switch to another std::fill.
|
2024-02-08 10:47:05 -05:00 |
|
Thomas Harte
|
f4d8c04f3c
|
Without yet much exposition, draft sample-by-sample interface.
|
2024-02-01 21:56:33 -05:00 |
|
Thomas Harte
|
c6c9be0b08
|
Adopt CRTP for SampleSource.
|
2024-02-01 21:47:44 -05:00 |
|
Thomas Harte
|
ce0d53b277
|
Clean up SampleSource's getters.
|
2024-02-01 21:29:00 -05:00 |
|
Thomas Harte
|
a3d37640aa
|
Switch include guards to #pragma once .
|
2024-01-16 23:34:46 -05:00 |
|
Thomas Harte
|
2b56b7be0d
|
Simplify namespace syntax.
|
2023-05-10 16:02:18 -05:00 |
|
Thomas Harte
|
8f2e94a1d8
|
Switch name back to emphasise _async_.
|
2022-07-16 14:41:04 -04:00 |
|
Thomas Harte
|
60f997a52c
|
Fix stereo buffering, various audio asserts.
|
2022-07-14 21:59:40 -04:00 |
|
Thomas Harte
|
bf03bda314
|
Generalise AsyncTaskQueue, DeferringAsyncTaskQueue and AsyncUpdater into a single template.
|
2022-07-14 16:39:26 -04:00 |
|
Thomas Harte
|
75f3f1a77f
|
Avoid the whole thread hop for a zero-length run_for.
|
2022-07-13 15:05:34 -04:00 |
|
Thomas Harte
|
0270997acd
|
Add insurance against calls before setup.
|
2022-07-12 16:03:09 -04:00 |
|
Thomas Harte
|
887ab705d1
|
Add missing <cassert>.
|
2021-12-02 13:00:25 -05:00 |
|
Thomas Harte
|
ff6ddaed2e
|
Full scale is 65536.
|
2021-12-02 12:55:11 -05:00 |
|
Thomas Harte
|
3a26f6b8bf
|
Ensure full buffer provision.
|
2021-12-02 12:52:43 -05:00 |
|
Thomas Harte
|
6f6e09d200
|
Correct: load -> store .
|
2021-11-22 15:18:12 -05:00 |
|
Thomas Harte
|
24e2fd4184
|
Avoid implicit conversion.
|
2021-11-22 11:28:02 -05:00 |
|
Thomas Harte
|
1aada996dc
|
Correct const ing.
|
2021-11-22 11:18:17 -05:00 |
|
Thomas Harte
|
f5d3d6bcea
|
Splits the lowpass filter into push and pull variants.
|
2021-11-21 15:37:29 -05:00 |
|
Thomas Harte
|
8a805b6ba1
|
Ensures that get_average_output_peak() returns something sensible even before a set_relative_volumes.
|
2020-11-21 22:52:57 -05:00 |
|
Thomas Harte
|
f783ec6269
|
Since input and output are floating point, using an integer Stepper is not appropriate.
|
2020-09-16 18:53:44 -04:00 |
|
Thomas Harte
|
7b1708f0bc
|
Gets explicit that the delegate_ doesn't need a memory barrier.
|
2020-07-31 18:21:47 -04:00 |
|
Thomas Harte
|
c0a61ac1ee
|
Ensures proper handover of speaker state when picking in a multimachine.
|
2020-07-30 22:50:32 -04:00 |
|
Thomas Harte
|
495024d6fe
|
Cleans up all redundant lock/unique_guard declarations.
|
2020-06-15 00:24:10 -04:00 |
|
Thomas Harte
|
267006782f
|
Starts to add Qt target; resolves many build warnings.
|
2020-05-30 00:37:06 -04:00 |
|
Thomas Harte
|
512a52e88d
|
Increases const correctness, marks some additional constructors as constexpr, switches std::atomic construction style.
|
2020-05-20 23:34:26 -04:00 |
|
Thomas Harte
|
c41028cdc7
|
Adds further exposition.
|
2020-05-10 00:44:03 -04:00 |
|
Thomas Harte
|
25996ce180
|
Further doubles down on construction syntax for type conversions.
|
2020-05-09 23:00:39 -04:00 |
|
Thomas Harte
|
eed357abb4
|
Introduces concept of 'average peak volume' in order better to normalise audio sources like the OPLL.
|
2020-05-09 17:57:21 -04:00 |
|
Thomas Harte
|
b0abc4f7bb
|
Implements enough wiring that the Master System will instantiate and talk to an OPLL.
|
2020-04-03 20:05:36 -04:00 |
|
Thomas Harte
|
9087bb9b08
|
Allows audio volume to be set.
|
2020-03-21 22:00:47 -04:00 |
|
Thomas Harte
|
a5e1765ce4
|
Eliminates potential race conditions on validity of delegate_ .
|
2020-02-18 20:33:31 -05:00 |
|
Thomas Harte
|
1e4356f83a
|
Adds a sensible is_stereo to the MultiSpeaker.
|
2020-02-16 18:50:34 -05:00 |
|
Thomas Harte
|
545a6177bb
|
Makes CompoundSource mono/stereo-aware.
|
2020-02-16 18:45:36 -05:00 |
|
Thomas Harte
|
50d356be2f
|
Ensures all audio sources, including compound sources, announce whether they're stereo correctly.
|
2020-02-16 18:31:45 -05:00 |
|
Thomas Harte
|
9835e800ec
|
Fixed: individual audio generators now either are or are not stereo. The speaker acts accordingly.
|
2020-02-16 18:28:03 -05:00 |
|
Thomas Harte
|
90856a0e7a
|
Adds mixdown/up capability to Speaker.
To deal with occasions when the host machine just always is either mono or stereo, and the emulated machine must cope.
|
2020-02-16 13:50:18 -05:00 |
|
Thomas Harte
|
d55d077a95
|
Fixes the input buffer partial-keep step in stereo.
|
2020-02-16 00:20:22 -05:00 |
|
Thomas Harte
|
e66a3523b6
|
Makes some attempt at stereo support, with the Amstrad CPC being the test case.
|
2020-02-15 18:55:19 -05:00 |
|
Thomas Harte
|
e02d109864
|
Nudges the LowpassSpeaker towards supporting stereo generation.
|
2020-02-15 18:03:12 -05:00 |
|
Thomas Harte
|
49b8e771b5
|
Adds the messaging that would allow a Speaker to output stereo, semantically.
|
2020-02-15 13:40:19 -05:00 |
|
Thomas Harte
|
6bda4034c6
|
Ensures no input data is dropped when changing output rates.
I think this 'completely' deals with the problem. At least until someone wants dynamic output buffer sizes or something like that. We'll see.
|
2020-02-09 19:14:25 -05:00 |
|
Thomas Harte
|
6ae42d07a7
|
Retains existing output when switching filter coefficients.
This eliminates an issue with dynamic rate matching and throwing away the beginnings of buffers.
|
2020-02-09 16:42:07 -05:00 |
|