Granular synthesis: grains from a recording or a live tap, FOF, PSOLA, concatenative, and the time-stretch no engine has #141
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
bcox/tymbal#141
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
bcox asked on 2026-10-05 for a ticket for each family in his
gaps.mdthat has none. Engine claims are from reading the tree atcd68bd3eonmain; literature named below is from recollection and was not re-read. Nothing here is built, measured or listened to.What the tree has
ParticleLayeroverParticleScheduler(when an arrival happens),ParticleBurst(the one retained burst every arrival injects) andParticleDiffuse(the FDN). ItsPatch::tapfeeds a tap into the diffuse body only; the scheduler scatters the retained burst and nothing else. The stochastic-events design says by name "Not a granular sampler", and parked "the scheduler's retained burst replaced by a tap, which scatters another slot's signal into a cloud" for its Stage 2. That is not in the tree.SampleSlotis one mono one-shot ofkSampleCapacitywords, read by the VA oscillator underVaShape::kSamplewith one read head and no loop. #78 is the sampler's ticket; it stores excitations and synthesizes resonances, defers loop points and a pitch shifter by name, and the stochastic design calls sample-based granular "the sample oscillator's territory".dsp::StorageRegionblock through aRegionView, which is the storage shape a ring of live audio would take.So nothing reads a buffer at a grain's position through a window at a density, nothing stretches time, and nothing shifts pitch with the formants kept.
What the family is
SampleSlotor a region block, each with a position, a duration, a window, a pitch, a gain and a pan, onsets scheduled at a density with jitter. The particle scheduler's rate curves are the cloud's shape already; what it lacks is a read head per arrival instead of a burst.UnvoicedLayerhave.dsp/beyond 1.Shape and cost
A layer engine by all three of #105's tests: bulk storage, a modulator inside (the scheduler), per-note sense. Voice-scope for 1, 3 and 4, channel-scope for 2. Each grain is a read head with linear interpolation and a window lookup, so the price is grains per voice times voices against the sample pool's bandwidth: 32 grains at 128 voices is the figure to put against #78's streaming note (bounded stream counts, a fixed round-robin). FOF is cheaper, a damped sine per grain and no memory read.
Open
Related
#78, #105, #118, #140, the stochastic-events design's "Open for Stage 2".