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.
Split Module::bypass() into isBypass/setBypass().
Add more documentation to Engine methods.
|
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 |