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
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
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
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
Andrew Belt
269f9aca9b
Only use Engine::yieldWorkers() when we know it's needed in Core Audio. Use _mm_pause() in spinlocks.
6 years ago
Andrew Belt
30c5b24ec5
Add Engine::yieldWorker() which turns worker spinlocks into mutex locks. Fix race condition in EngineWorker::run() when changing number of threads.
6 years ago
Andrew Belt
de95175596
Since dragging a ModuleWidget can move all modules, push a ComplexAction of ModuleMove actions instead of a single action.
6 years ago
Andrew Belt
ce2936c0c8
Restart engine workers when setting real-time priority.
6 years ago
Andrew Belt
a0e738bc07
Write to `settings::sampleRate` and `threadCount` instead of calling Engine methods.
6 years ago
Andrew Belt
893b45277a
Disable engine real time thread by default.
6 years ago
Andrew Belt
357952c3d3
Move all metadata from Param to ParamQuantity.
6 years ago
Andrew Belt
445686b89d
Allow Param limits with min > max
6 years ago
Andrew Belt
2446756c54
Make settings a namespace instead of a global class.
6 years ago
Andrew Belt
7e2d4a6bf9
Use larger canvas for RackScrollWidget.
6 years ago
Andrew Belt
6fe14dca06
Move reset and randomize from Param to ParamWidget.
6 years ago
Andrew Belt
9943d7b13a
Fix mistakes in assignment of adjacent module IDs. Swap message buffers at the end of each Engine step.
6 years ago
Andrew Belt
e9aacbed93
Add adjacent module IDs and pointers to Module.
6 years ago
Andrew Belt
a509fab1c1
Move and rename widget::DrawContext to widget::Widget::DrawArgs. Rename Module::ProcessContext to Module::ProcessArgs.
6 years ago
Andrew Belt
9c275dd20d
Add Module::process and Module::ProcessContext.
6 years ago
Andrew Belt
27f6a546aa
Add dsp::Counter. Rename dsp::VUMeter to VuMeter. Add Light::setSmoothBrightness(), deprecate setBrightnessSmooth().
6 years ago
Andrew Belt
13dadef857
ModuleBrowser WIP. Add Widget::show/hide().
6 years ago
Andrew Belt
e155450ccb
Use on-demand module assignment for engine worker threads instead of fixed strides.
6 years ago
Andrew Belt
578dd8aed2
Add scrolling to MIDI-Map with up to 128 mappings. Add onAdd and onRemove events. Fix minor ScrollWidget behavior.
6 years ago
Andrew Belt
d699c2e07d
Don't overwrite param handles when duplicating MIDI-Map.
6 years ago
Andrew Belt
83ad8523c2
Add unmap context menu item to ParamWidget. Add indicator on mapped ParamWidgets.
6 years ago
Andrew Belt
66aa746476
Replace ModuleHandle with ParamHandle. Move touchedParam from Engine to RackWidget. Fix param mapping bugs in MIDI-Map.
6 years ago
Andrew Belt
7458b5d709
Add param touch to engine. Add param learning to MIDI-Map.
6 years ago
Andrew Belt
d7b72c5b0f
Rewrite thread API. Add ParamMap::to/fromJson().
6 years ago