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
|
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
|
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
|
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
|
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
|
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 |
|
Thomas Harte
|
b5d6126a2d
|
Avoids unnecessary filter recalculation.
|
2020-02-09 16:32:32 -05:00 |
|
Thomas Harte
|
b514756272
|
Adds the option to run machines at a multiple of their real speeds.
Exposed to SDL users only, for now.
|
2020-01-26 13:25:23 -05:00 |
|
Thomas Harte
|
cb61e84868
|
Starts building out higher-level run_until functionality.
Specifically: you can now run until the next set of speaker samples has been delivered.
|
2020-01-20 12:12:23 -05:00 |
|
Thomas Harte
|
0dae608da5
|
Embraces std::make_[unique/shared] in place of .reset(new .
|
2019-12-23 21:31:46 -05:00 |
|
Thomas Harte
|
1c154131f9
|
Expands size of storage in Cycles/HalfCycles; adjusts widely to compensate.
|
2019-10-29 22:36:29 -04:00 |
|
Thomas Harte
|
19198ea665
|
Improves const usage.
|
2019-07-16 22:13:47 -04:00 |
|
Thomas Harte
|
60cedca97b
|
Adds cmath in support of ceilf .
|
2019-07-08 18:14:03 -04:00 |
|
Thomas Harte
|
0b771ce61a
|
Removes all instances of the copyright symbol.
|
2018-05-13 15:19:52 -04:00 |
|
Thomas Harte
|
074b4c3500
|
Eliminates repeating cause of misuse.
Raises the question as to whether an async task queue should be required at construction; let's see how things look as the project develops.
|
2018-04-21 15:01:18 -07:00 |
|
Thomas Harte
|
dbe3c5c3f8
|
Ensures artificial frequency limits are honoured.
|
2018-04-05 18:40:07 -04:00 |
|
Thomas Harte
|
3d0c832a21
|
Moves all LowpassSpeaker delegate calls outside of critical sections.
|
2018-03-22 19:01:20 -04:00 |
|
Thomas Harte
|
682c3d8079
|
Adds new hook for watching audio output rate changes.
|
2018-03-22 09:23:01 -04:00 |
|
Thomas Harte
|
48737a32a7
|
Introduces formal setting of the output volume to SampleSource .
Previously every output device was making its own decision. Which is increasingly less sustainable due to the CompoundSource.
|
2018-03-09 13:23:18 -05:00 |
|
Thomas Harte
|
c12aaea747
|
Attempts to get as far as running the MultiMachine.
In doing so, fixes the long-standing bug that machines that output audio but don't have a listener produce a divide by zero.
|
2018-01-30 22:23:06 -05:00 |
|
Thomas Harte
|
2dc1d4443e
|
Separates LowpassFilter and SampleSource.
|
2017-12-18 21:39:23 -05:00 |
|