Repository navigation
SYNTIZ (draft): at most three SYNTIZ tracks in a Part - #1107
Conversation
On the author's MKII a fourth SYNTIZ track holding a long note overruns the frame interrupt's share and crackles. wave_admit_track refuses SYNTIZ for a fourth track of the Part; a track that is SYNTIZ already stays admitted, and a Part saved with more plays on. Tried on the unit from the author's release branch (package f501a6a4). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Hi Jannik, Two things from the SYNTIZ measurements on my MKII tonight (3 November): a correction of a figure I gave you, and a guard observation that is yours to decide on. Correction. I told you a SYNTIZ track costs "6-11 %" of a frame. That was wrong. Measured on a The 3-track case on a busy Part. Part: 3 SYNTIZ (two SAW with UNI and WIDE up, one ENS with 4 notes and chorus), 4 FLEX tracks playing long samples.
The sheds are audible as a crackle. A diagnostic build of the guard (counters only, not committed) shows what each shed looked like. The last ones: a second render (the render after the trig's sample offset) of T3 or T4, The question. The sheds I measured are all on frames predicted under 100 % (90-96 %). If the guard let a render through whenever the predicted frame stays under FRAME (or under FRAME minus a small margin), even with the credit low, the three-track Part would play clean here, and the worst frames would stay where they are now (110-115 %, with Until then the honest line for players stays: two heavy SYNTIZ tracks on a busy Part, or three with one lighter. Steve |
|
Hi Jannik, A follow-up to the SYNTIZ numbers on #1107. Since the ColdFire is the limit for heavy SYNTIZ tracks, I prototyped SYNTIZ's SAW model on the DSP (56300 assembly, run block by block in the dsp56300 emulator with Analog BD's
Before writing any integration I would like to know how you want a second DSP machine voice to hook in. Analog BD's engine comes with its package through the resident stock hooks and is placed on demand, priced per voice ( Steve |
What changes
SYNTIZ (draft) admits at most three SYNTIZ tracks in a Part. Choosing SYNTIZ for a fourth track is refused, and that
track stays what it was. A track that is SYNTIZ already stays admitted, so a model change still works. A Part saved
with more SYNTIZ tracks plays on as it was: the base asks a machine only when a track is picked (
mw_assign, from theMAIN and SRC SETUP commits). The sound is unchanged.
Why
On the author's MKII, a fourth SYNTIZ track holding a long note overruns the frame interrupt's share. The base's
frame guard then drops renders, and the unit crackles. Measured on the RAM-booted development twin
04e94075, with aseven-track project playing: 35.2 % of each frame without SYNTIZ, and 79.6 % with it, with 6.35 renders dropped a
frame. Three lighter builds were tried on the unit and none let a fourth long note play clean; the author rejected
half-rate rendering on listening examples. Details are in
sdk/drafts/syntiz/TESTING.md.How it was checked
b30d9b09), the packagef501a6a4was tried and kept over USB. It is built from theauthor's release branch, which adds the
ev_trig_mutedquestion (it needsbuild.py --raise, Improvement: a C runtime package can raise an event with no site (build.py --raise) #1059); itswave_admit_trackis this one. Reported by the author: with SYNTIZ on three tracks, choosing it for a fourth isrefused.
wave_admit_track, copied frommachine.c: an empty Part, three tracks, a model change, anothermachine's leftover signature on a FLEX track, a Part saved with seven.
build.py(module970f03ad).npm run pr:ready: Ready.What the guides lacked
Two lessons for anyone driving an Octatrack twin:
npm run device -- lifecyclekeeps twice, and on a twin a machine'strial must start before the project is loaded. They are added to
docs/OCTATRACK_DRIVING.mdon #1059, the pullrequest whose branch already edits that paragraph, not in this module change.
🤖 Generated with Claude Code