use frames for pq scheduling, add astrid autotrigger
Remove last bits of redis
Add new instrument config struct, improvements to sampler interface
Numerous multichannel bugfixes, astrid sampler fixes
astrid midi & sampler, pippi rhythm, lpbuffer astrid midi: - support different input/output MIDI devices per instrument astrid sampler: - ctx.sample fixes pippi rhythm: - start modifying rhythm.seq to support astrid instrument streaming libpippi lpbuffer_t: - add LPBuffer.dub_into
astrid midi output & basic message quant support grid quantization: - replaces the unused `completed` field in `lpmsg_t` with interval & offset values used for per-message quantization to arbitrary grids. - first pass simplistic phasor-like approach to supporting the interval and offset values to add a variable delay when scheduling render playback. midi output: - adds new midi output thread with better support for composing arbitrary midi messages (like program changes, etc) WIP
Remove old graincloud module
libpippi & pippi microsound & fx updates: libpippi: - remove some old example programs - refactor LPFormation to use tapeosc-driven grains - use input buffer length to set initial range on LPTapeOsc init - tapeosc phasor is now a position (0-1) rather than a buf index - add WIN_NONE built-in window (just fills the buffer with 1s) - port the supercollider crossover distortion over from cython - handle float promotion issues in the butterworth filters & fx_fold - expose some more params on the tapeosc ugen wrapper pippi: - refactor grainclouds to use new tapeosc formations from libpippi
lttlefield.c, pippi, astrid & libpippi updates littlefield.c: - Final adjustments to littlefield.c from TX FS recording astrid: - first pass new `lpparamset_t` type for managing param hashes and types libpippi - add 1 pole highpass `fx_hpf1` pippi - move some info level logging to debug level - revert to old graincloud implementation from grains module
Add sampler banks to littlefield instrument
First pass add Soundpipe butterworth filters, misc littlefield instrument updates, dsp.scalef, fix SoundBuffer regression
astrid lpsampler_create: aquire & release sem during creation. oops!
astrid, pippi, libpippi, & instrument updates: astrid: - `sem_close` all the unclosed semaphores! Fixes FD render leaks. - Add `lpsampler_release_and_unmap`, `lpsampler_destroy_and_unmap` to be used for short-lifecycle buffers - Pass a copy of the `lpmsg_t` to `relay_message_to_seq` to avoid race conditions. - Set debug level to LOG_ERR (FIXME: many LOG_INFO messages should be LOG_DEBUG instead. Would also be nice to set log level on the cli) - Add `is_ready` flag to instrument, used for async commands - Use `select()` on `astrid_instrument_tick` with the linenoise async interface to allow for foreground processing in the main thread. also adds `cmdstate` and `cmdbuf` fields to the instrument struct. - Make `init_instrument_message` helper public - Add first pass resampler interface for sampling output from instruments in the same manner as sampling input from the ADC. pippi: - Fix zero division error in `fx.norm` - Fix lpmsg_t param processing in renderer.pyx - Add `ctx.sample`, and `ctx.resample` to python `EventContext` - Add sampler interface wrappers to python `Instrument` - Add a cleanup routine to catch zombie python render processes when the linenoise console yields. libpippi: - Add `lpfilternan()` helper for zeroing pathological floats `littlefield.c` instrument: - Add second gate osc - Split osc bank into odd/even groups - Octave offset has immediate effect `simple.c` instrument: - add trigger callback test loop
Change env follower and related MIR interfaces to return the current value on process calls, fix burst saturation on new pulsar oscs, expose LMDB params to astrid python instruments via the session param bucket, map params to types, add FNV-1 hash function to libpippi, and misc changes to littlefield instrument.
Set the MIDI device by name, misc littlefield instrument tweaks, and have all MIR routines return their values on process
munmap some dangling mmapped m-m-memory
Write defaults into the LMDB session if the param doesn't exist, so snapshots can be set from default states too.
First pass save/restore astrid param session, misc tweaks to littlefield instrument
littlefield: better gate drift behavior, misc notes and tweaks
Name the distortion types