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