You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Merge pull request #146 from wehr-lab/jackd_triggers
Jackd triggers
Improvements to sound timing and stability!!! The major change here is in the sound modules
- Changed the way that continuous sounds work. Rather than cycling through an array, which was easy to drop, now pass a sound object that can generate its own samples on the fly using the `hydration` module.
- More accurate timing of sound ending callbacks. Before, the event would be called immediately on buffering the sounds into the jack ports, but that was systematically too early. Instead, use jack timing methods to account for delay from blocksize and n_periods to wait_until a certain delay to `set()` the event. See `_wait_for_end`
# New
- `hydration` module for creating and storing autopilot objects between processes and computers!
- `@Introspect` made and added to sound classes. Will be moved to root class. Allows storing the parameters given on instantiation.
- minor - added exceptions module
# Improvements
- Made `ALSA_NPERIODS` its own pref
- More debugging flags!
- Changed `repeat` to false by default in Nodes because it is largely unnecessary in normal use and causes a lot of overhead!
- Made a method to debug timing within the sound server, pass `debug_timing=True` to `jackclient`
- `Noise` now can generate noise continuously as a model for refactoring sound classes to do that as the main way of doing so in the future.
- Incremental improvements to `requires` classes.
# Bugfixes
- Fixed several lists that would grow indefinitely and cause hard to diagnose memory issues, particularly with continuously operating things like the sound server or streaming data. Using a deque
- `__del__` methods cause more problems than they solve, need to start moving towards registering signal handles explicitly rather than trying to clean up as a last resort when removing from memory. Removed from hardware and networking classes or at least wrapped in try blocks for now.
- use `str(Path)` rather than passing a `Path` instance to `pkgutil.iter_modules`
- use `importlib-metadata` for python3.7
# Deprecations
- Removed `jack_apt` because it only causes problems. `jackd_source` works every time and doesn't take that long.
-
warnings.warn(f'Returning default prefs value {key} : {default_val} (ideally this shouldnt happen and everything should be specified in prefs', UserWarning)
486
+
warnings.warn(f'Returning default prefs value {key} : {default_val} (ideally this shouldnt happen and everything should be specified in prefs', DefaultPrefWarning)
479
487
returndefault_val
480
488
481
489
# if you still can't find a value, None is an unambiguous signal for pref not set
0 commit comments