fix(sc): every orbit's MiVerb/MiClouds/MiRipples send was a dead node
On every clean boot the server said, 84 lines of it:
*** ERROR: SynthDef global_mi_verb2 not found
FAILURE IN SERVER /s_new SynthDef not found
3 SynthDefs x 14 orbits x 2 lines. So '# verbwet', '# cloudswet' and
'# ripplesreson' did nothing on any orbit, for the whole session -- silently,
because a missing global effect is an absence of effect rather than a noise you
notice.
mi-UGens was installed correctly all along (11 .so + 11 classes) and the
SynthDefs were defined correctly in start_and_midi.scd:273-296. The bug was
ordering: SynthDef(...).add is ASYNCHRONOUS -- it compiles locally, sends
/d_recv and returns -- while the very next statement sends /s_new for those
names via initNodeTree. The /s_new overtook the /d_recv. One s.sync before the
registration, legal inside s.waitForBoot's Routine; the idiom was already
commented out twelve lines up. 84 errors before, 0 after.
spectral-freeze above deliberately does NOT need it: it replaces a def whose
synths are built per event, long after /d_recv has landed.
Monitors it as gear, since presence checks could not see any of this:
- mi-UGens extension now enumerates the 11 plugins AND 11 classes we use and
names whichever is missing. d.is_dir() is true whether the directory holds a
working install or a stale README.
- SuperDirt boot errors (new) scopes the journal to the CURRENT boot and FAILs
on SynthDef-not-found / FAILURE IN SERVER, naming the distinct defs rather
than one line per orbit. Generic question, so it catches the next
async-ordering bug too. WARNs when parvagues-sc is down, which is the correct
on-demand state before a set.
Both tested in both directions: FAIL on the recorded pre-fix journal window
naming all three defs, PASS on the post-fix boot. That test is what caught 're'
never having been imported in rig-doctor.py -- the new code was its first user,
so the check would have crashed the doctor the first time it found something.
Doctor: 47 checks, 0 fail, 10 warn, 37 pass.
Showing
Please
register
or
sign in
to comment