168 Commits (1d9aeedc1a9109e668df553a16cbd90f8cf1984a)

Author SHA1 Message Date
  Andrew Belt 840e184d7e Rename system::initCpuFlags() to system::resetFpuFlags(). Implement it on ARM64. 1 year ago
  Andrew Belt 20eafc98ff No need to save/restore CPU flags in Engine::stepBlock() anymore. 1 year ago
  Andrew Belt e2a4a6209d Add system::initCpuFlags(). Call it by all new threads. 1 year ago
  Andrew Belt 123da6cd83 Initialize CPU flags for Engine on ARM64. 1 year ago
  Andrew Belt bb8f70c04e When loading a patch or autosave, if modules are unavailable, prompt user to close Rack and view them on the VCV Library. 1 year ago
  Andrew Belt ac92bacd55 Zero input port values when disconnected, but not outputs. 1 year ago
  Andrew Belt e6744e5c3e Don't lock inside Engine::fromJson() until all modules are instantiated. Fix recursive lock when calling getModule(). 1 year ago
  Andrew Belt fb531c5a66 Make engine step modules first, then step cables in Engine::stepFrame(). 1 year ago
  Andrew Belt e67be6b3dd Make Engine::fromJson() lock in entire method, so modules and cables aren't added on different engine frames. Make Cable::fromJson() call non-locking Engine methods. 1 year ago
  Andrew Belt d70372535a Add Engine::addModule_NoLock() and addCable_NoLock(). 1 year ago
  Andrew Belt d62adc6226 Don't zero port values when disconnected. Refactor Engine by removing Engine_updateConnected(). 1 year ago
  Andrew Belt 613f926c35 Change `side` argument from bool to uint8_t in Module::getExpander() and Module::ExpanderChangeEvent. 2 years ago
  Andrew Belt cdaea345d3 Make ParamQuantity::set/getValue() set/get the target value of engine smoothing instead of the value directly. Add ParamQuantity::set/getDirectValue(). Deprecate ParamQuantity::set/getSmoothValue(). 2 years ago
  Andrew Belt 6eaf11ed7a Remove Engine::setFrame(). Guarantee that Engine frame only increases by 1 with no jumps. 2 years ago
  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