Andrew Belt
3f83066966
Make global context a thread_local variable. Add contextSet().
5 years ago
Andrew Belt
ca9231e1b3
Rename App to Context and app.hpp to context.hpp. The APP macro is still valid.
5 years ago
Andrew Belt
306e454f0c
Use higher resolution clock for system::getNanoseconds() on Windows.
Ban `long` from codebase. Use int64_t instead.
5 years ago
Andrew Belt
d0098ae7cc
Allow left button to scroll ScrollWidget, so that the rack and other scroll containers can be scrolled with a touch screen.
5 years ago
Andrew Belt
60d2283010
Add timestamp to MIDI message. Make MIDI-* modules wait until a message is `stepFrames` frames old until processing it, improving MIDI stability. Add Engine::getStepFrame, getStepTime, and getStepFrames.
5 years ago
Andrew Belt
5a45c26da6
Add system::getNanoseconds(). Use it instead of std::chrono.
5 years ago
Andrew Belt
538f5589c2
Make headless mode work somewhat.
5 years ago
Andrew Belt
70d527d99a
Test audio. Fix audio deadlock in Engine::fromJson().
5 years ago
Andrew Belt
4a5027ef1c
Add internal struct to Module.
5 years ago
Andrew Belt
c33dc3c842
Rename module disabling to bypassing.
5 years ago
Andrew Belt
cc711b6d2d
Replace module disabling with bypassing using BypassRoute and Module::configBypass().
5 years ago
Andrew Belt
ba820dd802
Add infinity and NaN protection to Cable_step.
5 years ago
Andrew Belt
12fcaa4b08
Move moduleFromJson from engine to plugin namespace. Move Engine mutex lock at the top of Engine::step().
5 years ago
Andrew Belt
61f6d8164d
Add and test secondary module audio interface flushing.
5 years ago
Andrew Belt
032c321fd3
Port change from v1 26bda06eb7
5 years ago
Andrew Belt
804dc4daf2
Interpret blank ParamQuantity/PortInfo name as "#id".
5 years ago
Andrew Belt
ef89a96c87
Change ParamQuantity/PortInfo label to name.
5 years ago
Andrew Belt
6907d53a25
Remove real-time menu item and setting.
5 years ago
Andrew Belt
20a875ff10
Allow random::init() to be called when already initialized.
5 years ago
Andrew Belt
0dbce1683d
Work on PortTooltips.
5 years ago
Andrew Belt
99b17727ab
WIP:
- Make ParamWidget hold module/paramId instead of paramQuantity.
- Add configInput/configOutput.
- Add engine::PortInfo.
- Avoid calling particular events when cursor is locked.
- Add PortTooltip.
5 years ago
Andrew Belt
4936df2c0b
Move ParamWidget/Knob/Switch properties to ParamQuantity. Fix static linking on Linux.
5 years ago
Andrew Belt
e4b6056ded
Massive WIP v2 overhaul:
- Add Engine::fromJson which can be called without the GUI at all.
- Make RackWidget::fromJson attach itself to existing Engine state. However, once attached, they own their Engine objects (Module, Cable).
- Remove Engine thread. Now Engine must be stepped by other threads, such as the audio thread. This is fantastic because there is no longer a mutex lock every audio buffer.
- Add concept of the "primary module", which is allowed to call Engine::step().
- Add many Module events.
5 years ago
Andrew Belt
26bda06eb7
Move slug normalization from getPlugin or getModel functions to fromJson functions.
5 years ago
Andrew Belt
618454e7c0
Stop engine wprker threads when engine is paused.
5 years ago
Andrew Belt
352b882579
Remove exception resetting.
5 years ago
Andrew Belt
a52c79df80
Port some of sse_mathfun to functions.hpp. Clean up SIMD headers.
5 years ago
Andrew Belt
8d8b5f87d0
Measure CPU time every N frames instead of every frame. Measure overhead of calling system::getThreadTime() to avoid reporting high measurements.
5 years ago
Andrew Belt
8c9e594c32
Use thread runtime rather than time of day for measuring module CPU.
5 years ago
Andrew Belt
56e0ce0f79
Refactor engine worker thread relaunching.
5 years ago
Andrew Belt
dca30e2b53
Auto-format code with astyle.
5 years ago
Andrew Belt
f4151bed2e
Clean up code and issue templates.
5 years ago
Andrew Belt
33d75cc035
Hide CPU meter when module is disabled.
5 years ago
Andrew Belt
f855667f77
Don't deserialize left/rightModuleIds.
5 years ago
Andrew Belt
e0094d090f
Fix bug in RackWidget::toJson() where cable ID was being set on the root patch object. Refactor RackWidget, ModuleWidget, Module, and CableWidget to/fromJson().
5 years ago
Andrew Belt
7cb85d543c
Allow ParamQuantity::displayMultiplier to be 0.
5 years ago
Andrew Belt
1252437344
Add Engine::getFrame().
6 years ago
Andrew Belt
e4a4722de5
Add <tuple> include.
6 years ago
Andrew Belt
a1cc0eef69
Fix C++11 syntax for some compilers.
6 years ago
Andrew Belt
41552e79f2
Restructure ParamHandle Engine internals.
6 years ago
Andrew Belt
2307845b94
Clear voltages of higher channels when a Cable copies from Output to Input.
6 years ago
Andrew Belt
cb3f136d51
Encode Port::active as channels=0. Change behavior of Port::setChannels().
6 years ago
Andrew Belt
696939069d
Use <> instead of "" for include directive.
6 years ago
Andrew Belt
54544bbe93
Use Module::Expander struct for accessing expander messages.
6 years ago
Andrew Belt
669ace54c6
Fix Param serialization mistake. Update template patch.
6 years ago
Andrew Belt
cdf7a2bbfa
Fix serialization for unbounded Params.
6 years ago
Andrew Belt
7bd98943db
Add left/rightMessageFlipRequested to Module.
6 years ago
Andrew Belt
09c85276d6
Use linear scaling for Light value.
6 years ago
Andrew Belt
8d63d198ea
Make random state thread-local.
6 years ago
Andrew Belt
e693d9beef
Fix submodule broken by previous commit.
6 years ago