168 Commits (1d9aeedc1a9109e668df553a16cbd90f8cf1984a)

Author SHA1 Message Date
  Andrew Belt 08cd572d51 Allow building on ARM64. Only Mac tested, and deps not tested. 2 years ago
  Andrew Belt 8e7acf9b74 Log all calls to Model::createModule() and createModuleWidget(). 3 years ago
  Andrew Belt e88c39c426 Rename ReadWriteMutex to SharedMutex. Use shared/exclusive terminology instead of read/write. 3 years ago
  Andrew Belt eb9a476105 Move ReadWriteMutex from Engine.cpp to new mutex.hpp header. 3 years ago
  Andrew Belt a98256c6f4 Dispatch Module::SampleRateChange event when the Module is added to the engine. 3 years ago
  Andrew Belt 0bdebebfae Make Engine_updateExpander() non-locking. 3 years ago
  Andrew Belt d7aa204bc7 Copy patch storage dir when cloning individual module. 3 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 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 b0018e5ec6 Remove MXCSR debugging in Engine::stepBlock(). 3 years ago
  Andrew Belt 908878e45d Save and restore MXCSR back to original value in Engine::stepBlock(). 3 years ago
  Andrew Belt c8109e3759 Reorder cleanup routines in Engine::removeModule_NoLock(). 3 years ago
  Andrew Belt 90cf9af4a2 Don't dispatch Module::onUnsetPrimary() and Module::onSetPrimary() in setPrimaryModule() if module is already primary. 3 years ago
  Andrew Belt aaf98bb16d Implement RackWidget::copyClipboardSelectedModules(). Clean up RackWidget API. 3 years ago
  Andrew Belt 99c96c1e05 Implement RackWidget::bypassSelectedModulesAction() so bypassing the module selection works. 3 years ago
  Andrew Belt 09ff13a4f0 Rewrite barriers in Engine to be 2-phase and hopefully less CPU. 3 years ago
  Andrew Belt 39f5a2f710 Reword Trigger -> Dispatch in comments. 4 years ago
  Andrew Belt 0c9598ba8f Add SetPrimaryEvent and UnsetPrimaryEvent to Module. 4 years ago
  Andrew Belt 6e8cb42e7b Serialize primaryModule in Engine instead of relying on modules to do it themselves. 4 years ago
  Andrew Belt 661fd3863d Add Module Save event. 4 years ago
  Andrew Belt ea431882a7 Add Engine meter to menu bar. 4 years ago
  Andrew Belt 5043d0e10a Use Engine frame instead of seconds timestamp for midi::Message. 4 years ago
  Andrew Belt c4cc1c4368 Clean up fromJson Engine and RackWidget methods. Fix v0.6 patch loading. 4 years ago
  Andrew Belt 5f8f9b8e35 Change `bypass` variable name to `bypassed` when appropriate. 4 years ago
  Andrew Belt 317b9125b6 Make ReadWriteLock non-recursive and add *_NoLock() methods to Engine as needed. 4 years ago
  Andrew Belt 2f5ce16ce8 No longer require that a primary Module belongs to the Engine. 4 years ago
  Andrew Belt 9f04e56106 AudioInterface: Set primary module after instead of before adding to the Engine (WIP). 4 years ago
  Andrew Belt 4e44157d27 Don't write-lock Engine::fromJson() because it only needs it when adding modules and cables, which already has a write-lock. 4 years ago
  Andrew Belt 90ada5c532 Add Engine::setSuggestedSampleRate(). Make ReadWriteLock support recursive writes. 4 years ago
  Andrew Belt 4c7c5b1694 Add auto engine sample rate setting. 4 years ago
  Andrew Belt f0753792b8 Rename "step" terminology of Engine to "block". Tweak ModuleWidget meter appearance. 4 years ago
  Andrew Belt 7003adffe2 Move module stepping code from Engine to Module. Change meter to a time plot. 4 years ago
  Andrew Belt 2a1bbf4ae3 Rename system::getRuntime() to getTime(). 4 years ago
  Andrew Belt 790e1053cc Rename system::getTime() to getRuntime(). Add system::getUnixTime(). 4 years ago
  Andrew Belt b986ff5882 Replace Module Browser sidebar with header. Add multiple tag selection (WIP), zoom (WIP), and sorting options (WIP). 4 years ago
  Andrew Belt 11721cab00 Add WIP Engine::step() timer. Fix module timer. 4 years ago
  Andrew Belt 7efd063392 Change timestamps from int64_t to double, and define epoch as when `system::init()` is called. 4 years ago
  Andrew Belt 36f062e33d Fix random module/cable ID generation on Windows 4 years ago
  Andrew Belt 5e4124f66a Rename bypassed to bypass everywhere. 4 years ago
  Andrew Belt 06c6590b51 Implement Module::ExpanderChangeEvent event trigger. 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 50747839d4 Use randomly-generated 53-bit IDs for Module and Cable. 4 years ago
  Andrew Belt 80d08ec15c Omit duplicate tags in Model. 5 years ago
  Andrew Belt 7103404c5a CV-MIDI: Add back rate limiting to pitch wheel, mod wheel, velocity, and pan. CV-CC and CV-Gate: Add timestamps to generates MIDI messages. 5 years ago
  Andrew Belt 7aa8f896a3 Remove rate limiting from CV-MIDI, WIP. 5 years ago
  Andrew Belt abde7d983f Add Engine::getFrameTime() and getStepDuration(). 5 years ago
  Andrew Belt 6f7f0cc7b3 Cache modules and cables in engine by ID. Add lock to Engine::reset/randomize/bypassModule(). Remove lock from Engine::get/setParam and get/setSmoothParam. 5 years ago
  Andrew Belt df0f44cf3e Don't allow setting the Engine's primary module if it is not added to the Engine. 5 years ago