60 Commits (b0c7675e584419da0f48d9c348582eea0dfdd7a2)

Author SHA1 Message Date
  Andrew Belt d70372535a Add Engine::addModule_NoLock() and addCable_NoLock(). 1 year ago
  Andrew Belt 6eaf11ed7a Remove Engine::setFrame(). Guarantee that Engine frame only increases by 1 with no jumps. 1 year ago
  Andrew Belt e88c39c426 Rename ReadWriteMutex to SharedMutex. Use shared/exclusive terminology instead of read/write. 2 years ago
  Andrew Belt 2e4580112e Fix hang when initializing Audio module. 2 years ago
  Andrew Belt d7aa204bc7 Copy patch storage dir when cloning individual module. 2 years ago
  Andrew Belt 0fd6d8a858 Fix deadlock in MIDI Map dataFromJson() and onReset() by creating a few Engine::*_NoLock() methods and calling them. Make Engine::updateParamHandle() write-lock instead of read-lock. 3 years ago
  Andrew Belt b22f88b8aa Rename INTERNAL to PRIVATE. Add PRIVATE to several functions/symbols that plugins should never call/use. 3 years ago
  Andrew Belt 4e8b9ef301 Improve namespace documentation. 3 years ago
  Andrew Belt 4567cc4220 Master audio module (the module that clocks Engine) makes more sense. 3 years ago
  Andrew Belt de3f42edc1 Rename Engine::setParam() etc to Engine::setParamValue() etc. 3 years ago
  Andrew Belt b17f6ee3fe Add fallback thread to Engine to step blocks if no primary module is set. 3 years ago
  Andrew Belt 661fd3863d Add Module Save event. 3 years ago
  Andrew Belt ea431882a7 Add Engine meter to menu bar. 3 years ago
  Andrew Belt 1b76dd5f07 Change midi::Message::toString() to const. Clean up midi code. 3 years ago
  Andrew Belt 5043d0e10a Use Engine frame instead of seconds timestamp for midi::Message. 3 years ago
  Andrew Belt 357bd847bf Rename PRIVATE macro to INTERNAL. 3 years ago
  Andrew Belt 5f8f9b8e35 Change `bypass` variable name to `bypassed` when appropriate. 3 years ago
  Andrew Belt 317b9125b6 Make ReadWriteLock non-recursive and add *_NoLock() methods to Engine as needed. 3 years ago
  Andrew Belt 2f5ce16ce8 No longer require that a primary Module belongs to the Engine. 3 years ago
  Andrew Belt 9f04e56106 AudioInterface: Set primary module after instead of before adding to the Engine (WIP). 3 years ago
  Andrew Belt 90ada5c532 Add Engine::setSuggestedSampleRate(). Make ReadWriteLock support recursive writes. 3 years ago
  Andrew Belt 4c7c5b1694 Add auto engine sample rate setting. 3 years ago
  Andrew Belt f0753792b8 Rename "step" terminology of Engine to "block". Tweak ModuleWidget meter appearance. 3 years ago
  Andrew Belt 7efd063392 Change timestamps from int64_t to double, and define epoch as when `system::init()` is called. 3 years ago
  Andrew Belt 5e4124f66a Rename bypassed to bypass everywhere. 4 years ago
  Andrew Belt f887faea79 Fix module and cable ID variables that were `int` instead of `int64_t`. Add `Engine::getNumCables()` and `Engine::getCableIds()`. 4 years ago
  Andrew Belt abde7d983f Add Engine::getFrameTime() and getStepDuration(). 4 years ago
  Andrew Belt b8d47b5378 Add Engine::getNumModules() and getModuleIds() methods. 4 years ago
  Andrew Belt 05427d938b Overhaul threading model for Engine using a shared mutex based design. 4 years ago
  Andrew Belt 537b64d011 Remove engine pausing as it no longer makes sense with the new "external stepping" engine architecture. 4 years ago
  Andrew Belt 120aafe6d3 Change order of includes to C++ standard headers, library headers, and local project headers. 4 years ago
  Andrew Belt 306e454f0c Use higher resolution clock for system::getNanoseconds() on Windows. 4 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. 4 years ago
  Andrew Belt c33dc3c842 Rename module disabling to bypassing. 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 4936df2c0b Move ParamWidget/Knob/Switch properties to ParamQuantity. Fix static linking on Linux. 5 years ago
  Andrew Belt e4b6056ded Massive WIP v2 overhaul: 5 years ago
  Andrew Belt dca30e2b53 Auto-format code with astyle. 5 years ago
  Andrew Belt 1252437344 Add Engine::getFrame(). 5 years ago
  Andrew Belt 41552e79f2 Restructure ParamHandle Engine internals. 5 years ago
  Andrew Belt 696939069d Use <> instead of "" for include directive. 5 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. 5 years ago
  Andrew Belt a0e738bc07 Write to `settings::sampleRate` and `threadCount` instead of calling Engine methods. 5 years ago
  Andrew Belt d699c2e07d Don't overwrite param handles when duplicating MIDI-Map. 5 years ago
  Andrew Belt 66aa746476 Replace ModuleHandle with ParamHandle. Move touchedParam from Engine to RackWidget. Fix param mapping bugs in MIDI-Map. 5 years ago
  Andrew Belt 7458b5d709 Add param touch to engine. Add param learning to MIDI-Map. 5 years ago
  Andrew Belt d7b72c5b0f Rewrite thread API. Add ParamMap::to/fromJson(). 5 years ago
  Andrew Belt bfcae28495 Update MIDI-Map panel. Add Engine::getModule(). 5 years ago
  Andrew Belt 927c77eca6 Add more engine docstrings 5 years ago
  Andrew Belt 2b98dfc6f9 Write custom threading model in Engine. Remove OpenMP dep. Fix bugs in string::basename/extension. 5 years ago