Flesh out the preset library #97
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
bcox/tymbal#97
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?
The bank needs a browse vocabulary before it needs more patches. This issue
holds the schema; the patches themselves get brainstormed into it as
follow-up comments.
Shape
Every patch carries exactly one primary category from a fixed,
opinionated list, plus open secondary tags. The primary category is what
a person browses when they know the part they need to play; the tags are
everything else — source family, material, character, motion, articulation,
expression, era — and they are free-form with a suggested vocabulary rather
than a closed set.
Primary categories
Ordered by role, not alphabet: pitched-melodic, then sustained-ensemble,
then rhythmic, then non-pitched, then utility. The order is part of the
schema — alphabetizing puts
Abstractfirst andVoicelast, which isbrowse-hostile and makes a deliberate list look arbitrary.
Utilityis in the list a person sees, not a developer-only value: someonebuilding their own reference and test patches needs the same home.
Effectsis the one category whose patches process an input rather thanrespond to notes, which makes it the only one gated on work not yet done:
effects are layer engines with load-time-reserved storage, insert placement
is still open, and a channel that takes audio in is not built. The category
is named now so the schema does not have to grow for it later. Its signature
members are the ones only this engine can offer — a modal plate or a
waveguide string excited by the input rather than by a note.
Naming: the category that holds risers and impacts is
Hits & Risersrather than
FX, becauseFXandEffectsone row apart would be twotrue answers for a reverb.
Two rulings the table encodes:
is
Mallets; a bell you strike once for color isCymbals. The test iswhether pitch is load-bearing. It is a test about metal and it does not
reach into
Drums: a timpani is a membrane drum that gets tuned, and itstays in
Drums.DrumsandPercussionare told apart by instrumentfamily instead — the kit and its skins on one side, everything else
struck, shaken or scraped on the other.
a patch plus a part, and the part belongs in the song.
rhythmicis asecondary tag instead.
808: its bass drum is a decaying sine with a pitch blip, so
808 Bassand
808 Kickare one synthesis voice with two jobs — tuned and heldlong, or tuned low and let go. Two patches, two categories. The same rule
puts a bowed double bass in
Basswhen it is playing the bass line andin
Stringswhen it is not.bounds the rule above rather than contradicting it.
Leadis the onlycategory named after a job in the arrangement, and every instrument plays
the top line sometimes; if "plays the melody" decided it,
Winds,Keysand
Pluckwould empty intoLead. So a modeled flute isWindswhatever part it plays, and a supersaw is
Leadbecause there is nothingelse it is. The 808 case is one voice with two jobs; this is one job with
many instruments.
Bassavoids the problem by being bounded by register,which is what lets an upright sit there.
it is
Stringsand notPluck— which is why row 7 reads "whatever thehand is doing" rather than "bowed".
Pluckholds the instruments that areonly ever plucked.
Upright Pizzstays inBassunder the register rule.engine is not weather and not an instrument, and row 14 holds it — which
is why that row is
Nature & Environmentrather thanNature. The bed amachine makes, a room of humming equipment, is still
Atmosphere, underthe same test that separates a pad from a drone: an object you hear is
environment, a texture that would sound the same whatever you played is
atmosphere.
Also merged away deliberately: brass and reeds into
Winds(both blown,both waveguide tubes, and either alone would hold three patches —
brass,reed,flutecarry the distinction as tags); comps intoKeys("comp"describes how you play, not what it is). Era is deliberately absent — real
as a tag, poison as a category, because "80s digital pad" forces a choice
between two true answers.
Secondary tags
Free-form, several per patch. Two are wanted on the factory bank from the
start and are the reason this issue names tags at all:
factory— shipped in the bank. Replaces any notion of aFactorycategory, and keeps "where did this come from" orthogonal to "what is it".
demo— there to show the instrument off rather than to be played insomeone's song. An honest label; a bank that hides these wastes the
person's time, and one that pretends they are workhorses wastes their
trust.
Suggested vocabulary for the rest, not enforced: source family (
additive,fm,va,waveguide,modal,sample,hybrid), material (string,bar,membrane,plate,tube,air), character (clean,gritty,noisy,metallic,wooden,glassy,vocal,hollow,breathy),motion (
static,drifting,rhythmic,chaotic), articulation(
plucked,struck,bowed,blown,sustained), expression(
velocity,aftertouch,mpe,macro), and era where it helps.Source family and material are close to free: the patch data already knows
both, so they can be derived rather than authored.
Format consequences
The category is user-visible metadata a user's own save writes, so it is
part of the compatibility promise from its first release, not advisory
factory decoration.
maps it to 0 and carries on. It never refuses the patch: a category is a
browse hint, and refusing a whole patch over one would be the reader
treating its input as hostile in the wrong place.
meaning is frozen. Merging two categories later leaves the merged-away
value reserved and unused forever.
patches are Bazel targets with no saved corpus, so renumbering is free
today — and stops being free the moment anyone saves a patch.
Next
Brainstorm the bank itself into this issue: what patches each category
should hold, which are
demoand which are workhorses, and where thecurrent bank is thin.
Category 1 — Bass
Grouped by what makes each patch exist, because a bank's bass section fails
by holding eight patches that are one idea at different cutoffs.
The subtractive spine — what people reach for
vacleanstaticvastruckmonoglidevawarmsustainedsh101_bassvagrittyvarhythmicmonovadriftingvagrittydriftingvametallicvachaoticmacroPure Suband808 Bassare not the same patch. Pure Sub does what itsenvelope says and exists to sit under something else; the 808 is a specific
instrument you cannot get by playing Pure Sub differently.
Reese is named for Kevin Saunderson, who recorded under that alias —
one of the Belleville Three. The timbre is credited to his 1988 track
Just Another Chance on KMS, and producers sampling it through the 90s
jungle and drum'n'bass scene named the sound after the alias on the record.
The synth is widely reported to have been a Casio CZ-5000; that attribution
is passed along here, not verified. What makes the sound is two or more
sawtooths detuned just far enough to beat, so the phase relationship keeps
sliding and the timbre moves with no LFO at all.
FM — the timbres subtractive cannot reach
fmpluckedvelocityfmmetallicWaveguide and modal — the signature section
The reason this bank is not another VA bank.
waveguidestringpluckedwaveguidestringpluckedvelocitywaveguidestringmpewaveguidestringbowedAdditive and hybrid — mostly
demoadditivecleanadditivedriftingdemohybridmodaldemoIf the section ships thin first
Pure Sub, 808 Bass, Ladder Round, SH-101 Saw, Acid Line, Reese, FM Slap,
Upright Pizz, Bass Guitar. Electronic and acoustic both covered, and all
three main engines exercised.
Gaps
No wavetable engine, so there is no wavetable-scan bass, which is a real
hole in the modern end of the list. Anything wanting chorus or drive on the
patch itself — a chorused Juno bass — waits on
Effects. Neither is areason to hold the section.
Category 2 — Lead
A ruling this category forces
Leadis named after a job, not a thing. Every instrument category is apotential lead: a flute plays the top line, a trumpet plays the top line, a
Rhodes plays the top line. If "plays the melody" put a patch here,
Windsand
Keyswould empty intoLeadand the taxonomy would collapse intoarrangement roles.
So: an instrument-shaped patch goes to its instrument's category.
Leadholds the melody voices that have no instrument to be. A modeled flute is
Windswhatever part it plays; a supersaw isLead, because there isnothing else it is.
This does not contradict the role ruling — it bounds it. The 808 case is one
synthesis voice with two jobs; this is one job with many instruments.
Bassescapes the same problem by being bounded by register instead, whichis why an upright can sit there.
Subtractive spine (VA)
vamonoglidevaunisonbrightvasyncaggressivevelocityvapwmhollowdriftingvahollowcleanvaringmodmetallicvamonoglideexpressivevamacrochaoticvapolywideFM
fmbrassvelocityfmglassybrightfmgrittyAdditive
additivevocalmacroadditivedemodriftingWaveguide
waveguidehollowairWaveguide and modal are thin here on purpose. A convincing waveguide melody
voice is almost always a recognizable instrument, and the ruling above sends
it to
WindsorPluck. What is left forLeadis the resonator with noinstrument attached.
Hybrid — markers for the multi-engine session
hybriddemohybridbreathydemoThese two are placeholders for the session on cross-engine patches, not
finished designs. Every category's list should carry one or two of these
rather than leaving that session a blank page.
Ships thin first
Mono Saw, Supersaw Lead, Sync Screamer, PWM Lead, Square Octave, FM Brass
Lead, Glass Lead, Formant Lead, Filter Scream. Nine, and they cover mono and
poly, all three main engines, and the four gestures a lead patch is judged on
— glide, velocity, filter, detune.
Gaps
absence costs
Leadmore than it costBass. Thescanning digital lead — PPG, the Waldorf lineage, every "digital" top line
since — has no home in this bank. Nothing here approximates it; the
additive
Partial Sweepis a different sound with a similar description.it. "Lead into a dotted-eighth delay" is an identity, not a decoration, and
it waits on
Effects.Ribbon Lead. A ribbon gesture needs farmore than two semitones, which is a claim about how the instrument is
played. Whether that is patch data or channel data, I have not checked.
the bank carries forever; hold until a specific sound earns its bytes.
None of these is a reason to hold the section.
Category 3 — Pluck
Two boundary questions this category settles
Pizzicato belongs to the instrument, not to the hand. The schema's
Stringsrow says "bowed", which would send a pizz violin section here. Theinstrument ruling from
Leadwins instead: a pizzicato violin is a violin.Stringsshould read the violin family, whatever the hand is doing, andPluckkeeps the instruments that are only ever plucked.Upright Pizzstays in
Bassunder the register rule, unchanged.Kalimba and music box are bars, and they still live here. It is a plucked lamellophone —
modal
barmaterial, plucked excitation — and nothing strikes it, so it isnot
Mallets. A music box comb is the same story at a smaller size. A worked example that material is a tag and the category isabout the instrument and the gesture, not the physics.
The instruments
waveguidestringpluckedwaveguidestringbrightwaveguidestringcleanhybridstringplatemetallichybridstringmembranebrightwaveguidestringwaveguidestringexpressivewaveguidestringmodalbarpluckedmodalbarpluckedmetallicDobroandBanjoare cross-engine by nature rather than by ambition: adobro is a string driving a metal plate and a banjo is a string driving a
membrane, and this bank can state that literally where a sample library can
only record the result. They are the category's hybrid exemplars, and they
earn it by being real instruments rather than demonstrations.
Synth plucks (VA)
vacleanvametallicvasyncgrittyvapwmhollowFM and additive
fmglassyadditivestringadditiveglassydemoDigital Plucksits near theMalletsboundary. The bells test holds: if thepatch is a bell you play tunes on it is
Mallets; if its identity is theattack and the tone is incidental, it is a pluck.
Hybrid marker
hybriddemoShips thin first
Nylon Guitar, Steel Strings, Banjo, Harp, Kalimba, Koto, Saw Pluck, Resonant
Blip, Harmonic Pluck. Banjo displaces a second synth pluck because a
cross-engine instrument is worth showing early.
Gaps
Clean Electricis half an instrument. An electricguitar without an amplifier is a DI take. This is a sharper
Effectsdependency than the lead's delay: that one is decoration, this one is the
instrument.
resonator's loss, and pluck position and excitation shape want to be
playable. What the waveguide engine actually exposes has not been checked
here — read the engine before designing the patches.
feeding a group, which is a fabric arrangement rather than a patch. The
preset schema describes one patch; whether the library ever ships a
multi — named channels with their patches, their routing and their group
— is unanswered. This is the second time the answer to "how is this really
played" has landed outside a single
.tymp. Not a blocker for any list.is bytes the bank carries forever.
Strum is deliberately not a gap. A strum is a gesture, so it belongs to the
part, under the same ruling that says a rhythm is a patch plus a part.
Category 4 — Keys
The boundary this one strains, and the ruling
Keysis a family, not a gesture: a harpsichord is plucked and a clavinet isstruck, and both are here because they are keyboard instruments. That holds
until an instrument is a keyboard and a struck bar. Celesta and toy piano
are both.
Ruling: the instrument's own family decides, and the test is what an
arranger calls it. A celesta is scored in the percussion section, so it is
Mallets. A toy piano is a piano, badly, so it isKeys. This is theweakest boundary drawn so far and it is recorded as a decision rather than a
derivation.
Acoustic
hybridstringplatebrighthybridstringplatewoodenhybridstringplatemodalbarwaveguidestringwaveguidestringaftertouchexpressiveA piano is a string driving a plate, so the whole acoustic block is hybrid by
nature the way the dobro and banjo were: the soundboard is not an effect on
the sound, it is half the instrument.
The hard one, stated plainly: a convincing concert grand is the hardest patch
in any synthesizer and this bank will not have one early.
Soft Grandisscoped to the register where a model holds up. The tack piano and the upright
are more characterful and more achievable, which is why they lead.
The clavichord earns its own row rather than being a clavinet variant,
because the tangent staying in contact with the string makes finger pressure
a pitch control. That is an expression mapping this bank can do honestly
and a sampled clavichord cannot.
Electric
fmvelocitycleanfmgrittyvelocityfmglassybrighthybridstringmetallicwaveguidestringgrittyClavinetis the Superstition patch, and dry it will only be most of theway there. The rest of that sound is an amplifier and a wah, so the patch is
deliberately shipped as the instrument and not as the record; the authentic
version waits on
Effects, alongside the guitar amp theClean Electricpluck is waiting for.
Organ
additivecleanadditivebrightadditivehollowvahollowgrittywaveguidereedbreathyThe drawbar organ is the cleanest engine-to-instrument fit in the bank.
Drawbars are partial amplitudes at fixed ratios; the additive engine does
not approximate a tone generator here, it does the same arithmetic.
Hybrid markers
additivedemomacrohybriddemoShips thin first
Tine EP, Reed EP, Digital EP, Drawbar Organ, Combo Organ, Clavinet,
Harpsichord, Tack Piano, Pipe Organ. The concert grand is deliberately out of
the core: shipping a mediocre one is worse than shipping none.
Gaps
the guitar amp — the cabinet is the instrument, not a sweetener. Both
drawbar patches are provisional until
Effects. The electric pianos wanttremolo and phaser for the same reason, and the clavinet wants a wah, but
all three survive dry better than the organ does.
independent; a piano with the pedal down is a coupled system where every
struck string excites every other. Nothing in the voice model expresses
cross-voice coupling.
Soft Grandis the patch that most wants it and theone that will most obviously lack it. This deserves its own issue rather
than a line in a patch list.
between a piano patch and a piano. What is handled of CC64 today has not
been checked here.
patch in this bank ever justifies a checked-in recording, it is this one.
Category 5 — Mallets
Modal synthesis's home category. Almost everything here is a bar or a tube of
a known material, which is the one case where the bank builds an instrument
from a handful of authored numbers instead of a recording.
Bars and resonators
modalbartubewoodenmodalbarwoodenbrightmodalbartubemetallicmodalbarmetallicbrightKeyscomment, not by the cabinetmodalbarmetallicmodalbarmetallicThe vibraphone's motor is patch data, not an effect. Rotating vanes open and
close the resonator tubes, so it is amplitude modulation inside the
instrument and per note: an LFO on the layer's amplitude, with the depth and
rate the player sets. One of the few places the authentic thing arrives
before
Effectsrather than after.Bells
modaltubemetallicmodalmetallicmodalmetalliccleanBoth of those — the tubular bell's absent fundamental and the church bell's
minor-third tierce — are standard bell acoustics passed along here, not
measured in this repo. They are recorded because they are authoring
instructions: a bell built on a harmonic series sounds wrong in a way no
amount of envelope work repairs, and the partial ratios are the patch.
A single struck bell used for color belongs in
Cymbals, under thepitch-is-load-bearing test. These three are the ones melodies are played on.
Metal and glass
modalplatemetallicmodalglassybowedGlass Harmonicais the only patch here that is not struck: the excitation issustained friction. That exciter exists —
dsp/junction.h'sJunctionCurve::kFriction, inside the modal loop, which is whatpatches/bowed_plate.handpatches/cuica.halready use. Not blocked.A music box is a plucked comb, so it sits in
Pluckbeside the kalimba.Filed there by gesture, not here by material.
Synthetic
fmmetallicadditivemetallicfmwoodenvelocityadditiveglassydemoHybrid markers
hybriddemohybriddemoShips thin first
Marimba, Xylophone, Vibraphone, Glockenspiel, Celesta, Tubular Bells, Steel
Drum, FM Bell, Additive Bell.
Gaps
lives on. Yarn to rubber to plastic changes the excitation spectrum;
striking at a node rather than an antinode changes which partials receive
energy at all. Both belong to the exciter, and what the modal engine
exposes has not been checked. If they are not playable, every patch here is
one static mallet.
Keyscomment, arriving from another direction.
like a sample. That is
Effects, graded honestly: a want here, not theLeslie's must.
the same ruling that keeps strum out of the guitar patches.
Category 6 — Pad
Two tests this category needs
Pad versus Atmosphere. If the notes played determine the harmony, it is a
Pad; if it would sound substantially the same whatever was played, it isAtmosphere. A pad is a chordal instrument that happens to be slow; a droneis furniture.
String machines are pads. A Solina or ARP ensemble is not a violin model
— it is a divide-down organ through a bucket-brigade chorus, modeled on
nothing. The instrument ruling asks whether a patch is shaped like an
instrument, and a string machine is shaped like a product.
Stringskeepsthe violin family.
Subtractive (VA)
vawarmdriftingvapwmhollowdriftingvaunisonbrightwidevahollowwarmvamacrovaensemblewidevacleanThin Padexists for a reason beyond taste. Pads are where the voice budgetgoes — long releases, high polyphony, unison multiplying all of it — and a
bank whose only pads are expensive ones leaves nothing to reach for when the
budget is tight. One honest cheap pad is worth more than a tenth lush one.
FM
fmglassybrightfmmetallicfmglassybrightAdditive — the showcase
additivedriftingadditivehollowadditivedriftingdemoMorphing Padis the patch that most justifies having an additive engine atall. A sample library cannot do it, a wavetable can only loop it, and a
filter can only shape what is already there. Independent per-partial motion
is the one thing additive does that nothing else approximates.
Resonant
modalplateglassywaveguidetubebreathyHybrid marker
hybriddemoThis is the candidate for the bank's flagship demo patch when the
cross-engine session happens. A pad is the best showcase for layered engines
because it is the one patch long enough for a listener to hear the layers
hand off to each other.
Ships thin first
Warm Pad, PWM Pad, Supersaw Pad, Dark Pad, Sweep Pad, Thin Pad, Glass Pad,
Metal Pad, Morphing Pad.
Gaps
Solinais blocked by it the way the Hammond is blocked bythe Leslie. A string machine without its bucket-brigade chorus is a buzzy
organ. Every other pad here is improved by chorus and reverb; that one is
constituted by them.
their own left/right and pan, so per-layer detune spread is patch data
already, not an effect being waited on.
is exactly where stealing becomes audible, and this is the category that
will exercise the degradation ladder first. Not a patch problem — a thing
to listen for when these are built.
want a lead.
Category 7 — Strings
The violin family, solo and ensemble, whatever the hand is doing.
The question that decides whether this category is possible
A bowed string is a stick-slip friction interaction: the bow grabs the
string, the string tears free, and that repeats hundreds of times a second.
It is nonlinear, it is the entire instrument, and it is a different exciter
from a pluck or a strike in kind rather than in degree. Everything acoustic
here depends on the waveguide engine having a bow exciter.
The bow already exists, but not where this category needs it.
dsp/junction.hhasJunctionCurve::kFriction— the Stribeck curve, whichis the stick-slip model — and it is used inside the modal loop by
patches/bowed_plate.handpatches/cuica.h. Whatdsp/waveguide_layer.hoffers as drives iskBurst,kReed,kJet,kLipand
kInput: no friction.So the requirement is narrow and precise rather than large and vague: a
friction drive for the waveguide string. Bowed plate yes, bowed violin not
yet.
Articulations are playing, not patches
Sample libraries ship
Sustain,Staccato,SpiccatoandMarcatoasseparate patches behind keyswitches, because a recording cannot interpolate
between two bowing techniques. A model can. Bow speed, bow pressure and note
length are continuous inputs, so one
Solo Violinshould play legato whenplayed legato and spiccato when played short and hard.
That collapses what would be forty patches into a dozen and produces a better
instrument. The exception is pizzicato, a genuinely different exciter: put
bow-versus-pluck on a macro or a velocity split inside the patch, and ship
Pizz Sectionseparately only if that crossfade does not hold up.Tremolo is the middle case. It is rapid bow reversal, but no part written in
sixteenths reproduces the sound, so it is a bow-speed LFO inside the patch —
the same argument that makes the vibraphone's motor patch data.
Solo
waveguidestringbowedaftertouchwaveguidestringbowedwaveguidestringbowedexpressiveBowed double bass is not here: it is
Bowed Bassin theBasscomment, underthe register rule. That exposes something about the role ruling worth
recording — it has to be applied once, at authoring time. The alternative is
shipping one instrument twice under two categories, which the
one-primary-category rule exists to prevent.
Ensemble
waveguidestringbowedensemblewaveguidestringbowedensemblewaveguidestringensemblewaveguidestringensemblewidewaveguidestringensemblewaveguidestringpluckedensembleAdditive
additiveensembleWorth building even if the waveguide bow works perfectly. A string section
is uncorrelated vibrato plus pitch spread — that is what makes eight
violins sound unlike one violin turned up — and additive states it directly
rather than imitating its result.
Hybrid markers
hybriddemobowedhybridvocaldemoShips thin first
Solo Violin, Solo Cello, Violin Section, Cello Section, Chamber Strings, Full
Ensemble, Tremolo Strings, Additive Ensemble, Pizz Section — all of it
contingent on the bow.
Gaps
the string never stops vibrating and the envelope never restarts. That is a
legato voice-allocation mode rather than an envelope setting, and whether
one exists has not been checked.
Full Ensembleiseight detuned players; a four-note chord is thirty-two voices. A worse
budget consumer than pads, and the category most likely to force the
degradation ladder's hand.
LFO — a real player's vibrato starts after the note does. Small, and most
of what separates a convincing string patch from a synthetic one.
Effects. A want, not a must.Category 8 — Winds
Everything blown: brass, reeds, flutes. The merge that put them in one row
holds; the distinction lives in the
brass,reedandflutetags.All three exciters already exist
Winds need three nonlinear exciters — a lip reed for brass, a cane
reed for clarinet, sax, oboe and bassoon, and an air jet for flutes —
and
dsp/waveguide_layer.hoffers all three as drives (kLip,kReed,kJet, besidekBurstandkInput).patches/trumpet.h,patches/clarinet.h,patches/flute.handpatches/low_flue.hare theproof, and their headers are the best authoring documentation this category
has.
This is the rare category whose engine work is done. What remains is
authoring.
Bore shape is the authoring instruction
and it overblows at the twelfth rather than the octave. Built on a full
harmonic series it will never sound like a clarinet.
the octave — which is why a sax is reedy where a clarinet is hollow.
perceived instrument rather than a garnish.
steepens toward a shock inside the tube. Loud brass is not quiet brass
turned up. That curve is what FM's index-on-velocity imitates, which is why
the DX brass lead convinced people while modeling nothing.
Standard wind acoustics, passed along here rather than measured in this repo.
Recorded because each line is a patch-authoring constraint.
Brass
waveguidetubebrassexpressivewaveguidetubebrasswaveguidetubebrassglidewaveguidetubebrasswarmwaveguidetubebrasswaveguidetubebrassensemblevabrassunisonvabrassaftertouchexpressivefmbrassvelocityCS-80 Brassis a technique patch as much as a sound. Modulating the lowpasscutoff at low audio rates is a distinct and under-used method — it is neither
vibrato nor FM of the oscillator, and it produces sidebands around the
resonance rather than around the pitch. The VA engine's audio-rate matrix
tier exists for exactly this, and nothing else in the bank demonstrates it.
It should recur in other categories rather than appearing once here.
Synth Brassis inWindsand the Solina is inPadfor the same reason,not different ones: category follows role. What a string machine does in a
track is hold chords underneath, so it is a pad. What synth brass does is
play brass parts — stabs, riffs, unison lines — so it is a wind. Neither
models anything; both are filed by the job.
Reeds
waveguidetubereedhollowwaveguidetubereedwoodenwaveguidetubereedgrittywaveguidetubereedbreathywaveguidetubereedwaveguidetubereedwoodenwaveguidereedexpressiveFlutes
waveguidetubeflutebreathywaveguidetubeflutebrightwaveguidetubeflutebreathyexpressivewaveguidetubeflutewaveguideflutehollowhybridtubevocaldriftingOcarinais a Helmholtz resonator: its pitch comes from the enclosed volumeand the open holes, not from a standing wave in a length of tube. It needs a
vessel resonator, which is either a small engine addition or a reason to
build this one additively.
Didgeridoois a real instrument that is structurally a hybrid patch — adriven tube through moving formants. The wind equivalent of the dobro:
cross-engine by nature rather than by ambition.
Additive
additivebreathyhybridbreathydemoHybrid markers
hybriddemohybriddemoShips thin first
Concert Flute, Clarinet, Alto Sax, Solo Trumpet, Trombone, French Horn, Brass
Section, CS-80 Brass, Synth Brass. Nothing here waits on an engine.
Gaps and needs
Ocarina.the didgeridoo's whole identity.
continuous pressure control driving amplitude, brightness and the brass
nonlinearity together. MPE pressure or CC2 into a macro is the minimum; a
patch here with velocity-only dynamics is a toy.
octave, and players change register mid-phrase. Whether the model does this
itself or it is faked per note is a design decision, not a detail.
Strings.Effects: a want, not a must.Category 9 — Voice
The one rule that makes a voice a voice
Formants do not track the keyboard. A vowel is defined by where its first
two or three resonances sit in absolute frequency, and those stay put when a
singer changes pitch — which is why pitch-shifting a vocal sample gives a
chipmunk. The glottal source moves; the tract does not.
The engine already has absolute formant placement and an unvoiced formant
layer, so this category starts from a better position than
StringsorWindsdo.The formant table itself — which vowel sits at which pair of frequencies —
is Peterson–Barney territory. Whoever authors these should take the numbers
from a source rather than from memory.
Choirs
additivevocalensembleadditivevocalensemblewarmadditivevocalensemblewideadditivevocalensemblecleanadditivevocalensembleA choir is built the way a string section is: many voices, uncorrelated
vibrato rates, small pitch and timing spread. Same construction, same
polyphony cost, and additive states it directly.
Solo
additivevocalexpressiveadditivevocaladditivevocaladditivevocalhollowSolo Bass Voicegrazes the register rule fromBass. The distinction isjob:
Bassholds the patches whose work is the bottom of the arrangement,and a bass singer's work is singing. Recorded because it is the first time
the register rule has met an instrument that merely happens to be low.
Overtone singing — two styles, two patches
additivevocalgrittyadditivevocaldriftingA patch exists for the first of these and #38 says it sounds terrible. One
hypothesis worth testing before reworking it blind: if the patch is built on
a plain harmonic series with a strong formant over it, the result is a buzzy
vowel rather than a growl, because the growl is the half-rate source. The
subharmonic series has to be in the partial layout, not in the filter. That
is a standard description of the mechanism, passed along here rather than
measured, but it is checkable against what the patch actually lays out.
Sygytis the one worth building to show why this synth is different.Overtone singing is a movable narrow resonance selecting single harmonics out
of a fixed drone, and an additive engine does that by turning partials up and
down — the mechanism itself rather than an imitation of it.
Synthetic vocal
additivevocalmacrovavocalgrittywaveguidetubevocalwaveguideflutebreathyHybrid markers
hybriddemobowedhybriddemoShips thin first
Choir Aah, Choir Ooh, Mixed Choir, Solo Soprano, Solo Tenor, Vowel Pad,
Sygyt, Robot Voice, Vocal Tract. Kargyraa is a rework rather than a new
patch; see #38.
Gaps and needs
and every synth choir ever shipped has been one. The format already carries
standalone chiff assets, which is the right shape for a noise transient
at note onset — a consonant is a chiff with a spectrum. A real path to
something rare rather than a wish.
so the vowel macro has to be smoothly modulatable mid-note.
glottal source rather than the formants, and it is most of what separates a
soft singer from a loud one.
Effects.Recorded here so they are not filed under
Voicelater.it has come up; ensemble patches and the voice budget may deserve their own
note in the schema.
Strings.Category 10 — Drums
Three things this category settles
A kit is not a patch. Under one primary category per patch, each drum is
its own patch. Nobody thinks that way — people load a kit — and this is the
bundle question for the third time, after the six-string guitar and the
channel group. Keep shipping individual drums: a bundle format can gather
them later, and a kit-shaped patch cannot be taken apart.
Timpani belongs here. It is a membrane drum that gets tuned. The
pitch-is-load-bearing test is about metal — it separates the metal you play
tunes on from the metal you hit for color — and was never meant to pull drums
out of
Drums.DrumsandPercussionare told apart by instrument family:the kit and its skins on one side, everything else struck, shaken or scraped
on the other. The wording in the body is tightened accordingly.
One tom, not three. Tuning is channel-owned through per-note offsets, so
high, mid and floor toms are one patch played at three pitches — provided it
is authored to hold up across the range rather than tuned to one spot. A
concrete saving this architecture hands us.
Acoustic
modalmembranewoodenmodalmembranenoisymodalmembranewoodenmodalmembranebrightmodalmembranewoodenmodalmembranenoisymodalmembraneA circular membrane's modes are inharmonic — Bessel zeros, not integers —
which is why an undamped drum has no clear pitch. It is also why
materials/bessel.himplements the Bessel functions itself: membranematerials are generated from those zeros at build time, exactly
reproducibly. This category is what that machinery was built for.
Timpani is the exception that proves it: the enclosed air load pulls certain
modes toward near-harmonic ratios, which is why it has a definite pitch where
a tom does not.
Machines
808 Bass, tuned low and let govastruckvanoisyvanoisyvastruckvanoisyThe clap is the drum-machine sound worth building carefully, because it is
the structurally interesting one: not a hit but a small burst pattern plus a
tail, and the spacing is the sound. Get the spacing wrong and it is a
handclap-shaped noise.
Synthetic
vacleanvanoisymodalmembranevanoisydemoHybrid markers
hybriddemohybriddemoShips thin first
Kick, Snare, Tom, Rimshot, 808 Kick, 808 Snare, 808 Clap, 909 Kick, 909
Snare.
Gaps and needs
nonlinearity — a coupling, not a filter — and they are the difference
between a snare and a tom with noise on it.
modes receive energy.
Malletsasked for the same control, which makes itone need rather than two.
gets two voice-level random values at note-on and two more per layer, so
routing a little randomness into noise, detune and strike position is
authoring work rather than an engine request. Not a gap; a thing every
patch here should actually do, because an acoustic drum varies hit to hit
and a drum machine does not, and the difference is audible within four
bars.
by it the way the Hammond is by the Leslie. Waits on
Effects.in
Cymbalswith open and closed hats, but the kit needs it too.Category 11 — Cymbals
The only category with a spike behind it already. #91 diagnosed why
patches/crash.hsounds like a struck bell — coherent modes, too muchfundamental, a definite pitch — and found the levers that help: phase scatter
applied at the pickup rather than the resonator (resonator-side scatter
breaks the felt choke), a second plate group and a non-integer aspect ratio to
kill the pitch, pickup-only tilt, and velocity into that tilt.
crash-r-dm50is the favorite there,crash-r-dm30close behind.Every patch here inherits that lesson: coherence is the enemy. A cymbal is
incoherent metal. Anything built as a tidy mode bank will sound like a bell,
and the fix is structural rather than a matter of envelope taste.
Hats
modalplatemetallicmodalplatemetallicmodalplatemetallicvametallicnoisyRides
modalplatemetallicmodalplatenoisyIf strike position works as a control,
Rideand the ride bell are one patch— the same argument that made one tom instead of three. Ship them separately
only if the position control cannot span that far.
Crashes and gongs
crash-r-dm50is the starting point, not a fresh designmodalplatemetallicmodalplatebrightmodalplatenoisymodalplatemetallicmodalplatebowedThe tam-tam is a genuine engine need. A large gong blooms: energy migrates
from the low modes into the high ones after the strike, through nonlinear
coupling in the plate. A linear mode bank cannot do that — every mode decays
from its initial energy and nothing feeds it. Faked with an envelope it
sounds like a filter opening, because that is what it is.
Bowed Cymbalis free once the bow exciter exists forStrings, and it isone of the sounds people will remember the instrument for.
Metal percussion
vametallicmodalbarmetallicmodalplatemetallicmodalmetallicA nipple gong is pitched and melodies are played on it, so it goes to
Malletsunder the existing test. Recorded here because "gong" appears inthis row and that one is the exception.
Abstract markers
modalplatedemochaotichybriddemoShips thin first
Closed Hat, Open Hat, Pedal Hat, Ride, Crash, Splash, China, 808 Hats, 808
Cowbell.
Crashships when #91 is resolved; the rest do not wait on it.Gaps and needs
cannot move energy upward after the strike. The one patch here that needs
new physics rather than better authoring.
categories, one mechanism: something buzzing against a vibrating surface.
which is a channel or allocation feature rather than patch data. The one
thing on this list a kit is unusable without.
bell on one cymbal; center and rim on one drum; node and antinode on one
bar.
at voice and layer level, so sixteen identical hi-hats in a row is an
authoring failure rather than an engine limit.
crash.h's header records theshipped choke as an energy ratio of 0.097 over 8192 samples at 4.5 s, while
the spike's windowed means show only 2–5 dB. Different methods, never
reconciled. Worth settling before the rework, since it is the number anyone
judging the choke will reach for.
Category 12 — Percussion
Per-hit variation stops being a nicety here and becomes the category. A
shaker is not one sound but dozens of small collisions per stroke, and what
makes it a shaker rather than a noise burst is that the collisions are
stochastic. Two shakes are never the same, and a listener hears a loop
instantly.
The engine for that already exists.
dsp/particle_layer.his thestochastic-event engine:
particle_scheduler.hdecides when an arrivalhappens,
particle_burst.hholds the waveform each one injects,particle_bodies.his a bank of fixed-corner one-poles and resonances, andparticle_diffuse.his an eight-line feedback network.materials/ atmosphere.hsits beside it, turning one authored distance into per-lineabsorption, an arrival curve and a direct/diffuse balance through ISO 9613-1.
So shaker, maraca, cabasa, tambourine, sleigh bells, vibraslap and rainstick
are authoring work rather than engine work. That also makes
particleasource-family tag alongside
additive,fm,va,waveguide,modalandsample, andunvoiceda seventh.Some existing factory patches probably belong in this category already
(
rattlesnakeamong them). Placing what exists is a separate pass at the endof this ticket, and
rattlesnakeis a good example of why: a rattle is aparticle instrument by mechanism, but a rattlesnake is an animal, so it may
land in
Naturewhile sharing all of the machinery below. Mechanism does notdecide placement.
Hand drums
modalmembranewoodenmodalmembranewoodenmodalmembranewoodenmodalmembraneexpressivemodalmembranemodalmembraneexpressivehybridplatenoisywaveguidehollowTwo of these are physically the same trick as things already met. Tabla is
pitched because the black patch on its head is a mass load pulling the
modes toward harmonic ratios — the timpani's fix by another means. Udu is
a Helmholtz resonator, so the vessel model
Ocarinaasked for inWindsnowhas a second customer and stops being a one-patch indulgence.
Wood
modalbarwoodenmodalwoodenhollowmodalbarwoodenmodalwoodenmodalbarwoodenmodalwoodennoisyGuironeeds a scrape exciter: ridges passing under a stick are a trainof impulses whose rate is the hand speed. A cousin of the particle model
rather than the same thing — ordered where the shaker is random.
Shakers and rattles
particlenoisyparticlenoisymetallicparticlemetallicparticlemetallicparticlewoodenparticlewoodenA rainstick is an instrument, so it lives here; rain is weather and lives in
Nature. Said once, because the name invites the mistake.Electronic
vacleanvanoisyvanoisyvaclean808 Maracassits next toShakerdeliberately: one is a noise burst and oneis a particle system, and hearing them side by side is the fastest way to
understand what the particle model buys.
Hybrid markers
hybriddemohybriddemoShips thin first
Conga, Bongo, Djembe, Tabla, Woodblock, Claves, Shaker, Tambourine, Cabasa.
Nothing here waits on an engine: the membranes need strike position and hand
hardness, and the particle instruments have their engine already.
Gaps and needs
than random arrivals. Whether the particle scheduler can already be driven
that way is worth checking before treating it as new work.
Windsalready askedfor on the ocarina's behalf. Two customers.
loading. Both are a membrane made pitched by loading it, by different
means.
SnareandCajón. Onebuzzing-contact mechanism, three categories.
randomness at voice and layer level is already in the engine. A shaker
authored without it is a sample.
patches down to eight: open, slap and muted conga are one instrument played
three ways.
aftertouch into membrane tension, which is expression routing rather than
new physics.
Category 13 — Atmosphere
The test from
Paddecides membership: if it would sound substantially thesame whatever was played, it belongs here. A pad is a chordal instrument that
happens to be slow; this is furniture, and being furniture is the point.
Two engines carry most of it. Additive does drones that evolve without
repeating, because independent per-partial motion has no cycle. The
particle engine does everything made of events rather than tones — and
materials/atmosphere.hmakes distance a patch parameter rather than areverb setting: one authored number produces the absorption, the arrival
curve and the direct/diffuse balance together. A thing heard from far away is
genuinely a different patch from the same thing heard close, and this bank
can state that instead of approximating it with a send.
Drones
additivewarmdriftingadditivedriftingmodalmetallicdriftingwaveguidetubebreathyadditiveglassydriftingSpaces
particlenoisyparticlenoisynoisyhollowparticlemetallicparticlewarmRoom ToneandLarge Hallbeing one instrument at two distances is thecleanest demonstration of the atmosphere model in the bank. Ship them as a
pair and say so in their descriptions.
Tension
modalmetallicchaoticadditivedriftingvarhythmicwarmEvolving
Morphing Pad's cousin with the harmony taken outadditivedriftingadditivechaoticdemoHybrid markers
hybridstringbreathyhybridparticledemoAeolian Harpis worth singling out. It is an actual instrument, played byweather, and it sits exactly on the seam between this category and
Nature:noise exciting strings is both a physical model and an ambience. It also
answers "what does cross-engine layering buy" with something that exists
rather than something invented.
Ships thin first
Low Drone, Harmonic Drone, Metal Drone, Room Tone, Large Hall, Deep Space,
Machine Room, Dread, Slow Morph.
Two non-gaps, recorded because they looked like gaps
in this category can audibly cycle. Evolution over minutes is ordinary
patch data.
two per layer — eighteen LFO slots across eight layers. Non-repetition is
authoring work here, not an engine request.
Gaps and needs
every time a note arrives: the bed is continuous and the notes are
incidental. Free-run channels have come up before as a concept; this is the
category that requires them.
lists under
Effects.Spectral Cloudand a proper granular wash wantgrains from a sample, and the sample slot plus particle bursts may already
be most of that — worth checking before specifying anything.
Pad, and worse here: thesepatches are held for minutes.
Category 14 — Nature & Environment
The particle engine is the backbone here the way modal is in
Mallets. Rainis arrivals on a surface, fire is arrivals with a different burst, applause is
arrivals shaped like hands, insects are arrivals with a rate. One engine, six
instruments, and the distance model decides how far away all of it is.
Weather
noisybreathydriftingnoisychaoticparticlenoisyparticlenoisyparticlewarmWater
particlecleanparticlenoisynoisywarmdriftingA bubble rings at a frequency set by its size, and the familiar plink rises in
pitch as the bubble collapses. Standard bubble acoustics, passed along rather
than measured here, and recorded because it is an authoring instruction: a
water drop is a pitched event with an upward sweep, not a filtered click.
Built as a click it will sound like a click forever. It is also an ideal
particle burst — one small waveform scattered at many sizes and rates gives
drip, stream and rain from the same layer.
Fire
particlewoodennoisyparticlenoisyLife
fmcleanbrightparticlebrightparticlemetallicparticlenoisyparticlehollowparticlenoisyparticlechaoticBirdsongraises the strum question in a new place. A convincing bird is aphrase — chirps in a rhythm with a contour — and under the existing ruling
a phrase is a part rather than a patch. So the patch is one chirp and the
song belongs in a song. That is the fourth time an answer has landed outside
a
.tymp, and this one differs from the others: it suggests the librarymight eventually ship parts as well as patches, which is a content question
rather than a format one.
Human and machine
particlenoisynoisyrhythmicnoisydriftingnoisyrhythmicparticlerhythmicnoisygrittyexpressiveMachines belong here rather than in
Atmospherebecause they are objects —a helicopter passes, a car goes by, someone is holding the chainsaw. Not
every machine is a vehicle, and the chainsaw is the one to keep in mind: a
working tool whose sound tracks what it is doing, which makes load a
continuous control and the patch genuinely expressive rather than a loop. The bed
a machine makes, a room of humming equipment, stays in
Atmosphereunder thesame test that separates a pad from a drone. This is why the row reads
Nature & Environment.Hybrid markers
hybridparticlebarhybridparticleplateWind Chimesis this category'sDobro: a real thing that happens to be anoise source driving a modal bank, so the cross-engine structure is the
instrument rather than a flourish.
Ships thin first
Wind, Rain, Thunder, Stream, Campfire, Birdsong, Crickets, Applause, Wind
Chimes.
Gaps and needs
scattered: a fire has small ticks and occasional pops, and rain on a roof
differs from rain on leaves. How much variety one particle layer's retained
burst allows decides whether these are one patch or several layers.
Swarmand anything passing want a moving delay. Probablyexpressible; not claimed here.
applause, are phrases. The library may eventually want demo parts alongside
demo patches. Recorded because the question has now arrived from four
directions.
it: thunder, dawn chorus and applause are the same instrument at different
removes.
Category 15 — Hits & Risers
The first category since
Leadwith no acoustic referent anywhere in it, andthe only one whose patches are measured in bars. A riser is four bars long
or it is useless, which makes tempo this category's precondition.
These patches must take their length from the transport. A riser authored
in seconds is right at one tempo and wrong at every other, so envelope times
and LFO rates need a tempo-relative mode. The fabric knows the tempo and the
transport position; whether a patch can reach them is the open question.
One-shot envelopes already exist, which settles the other half: a riser is
triggered rather than held, and the patch runs to completion whatever the key
does.
Risers
vanoisyrhythmicvabrightadditivedemoparticlechaoticA true Shepard–Risset glissando is a fixed spectral envelope with partials
sliding upward through it, fading in at the bottom and out at the top — a
statement about partial amplitudes and frequencies, which is what the
additive engine takes as input. Other synths approximate it with three
detuned oscillators and a crossfade.
Downlifters
vanoisyadditivedemovawarmImpacts
hybridmetallichybridbrasswidehybridbrightmodalplatechaoticBraamis hybrid by necessity: a detuned brass stack over a sub with a modaltail is three engines and the sound does not exist without all three. It is
also the most expensive patch in the bank by voice count, which makes it a
useful stress case.
Transitions
noisywidemodalplatehybriddemorhythmicvachaoticRiser to Impactis the gesture people actually want. Nobody wants a riser;they want a transition, and they currently build it from two patches and a
lot of nudging. One patch spanning the bar line is a small idea that saves
real work.
Stingers
hybridmetallicvagrittyrhythmicShips thin first
Noise Riser, Tonal Riser, Shepard Riser, Downlifter, Sub Drop, Impact, Braam,
Whoosh, Reverse Cymbal.
Gaps and needs
library by a wide margin, and auditioning from
Warm PadtoImpactatone gain will hurt someone. A target loudness per category is a bank-wide
authoring convention rather than a per-patch decision, and this is the
category that forces it. Worth writing into the schema rather than
discovering it in a listening session.
provide it.
stress patch, provided the degradation ladder handles it gracefully rather
than by stuttering.
Category 16 — Abstract
This category needs a membership test more than it needs a long list, because
without one it becomes the drawer everything difficult gets put in.
The test: a knowledgeable listener cannot name the family. If someone says
"that is a weird bell", it is
Mallets. If they say "that is a bowedsomething", it is
Strings.Abstractis for the patches where the honestanswer is I do not know what that is. A patch that lands here because
nobody could be bothered to decide is a filing error rather than a sound
design choice.
This category is also deliberately under-specified. The planned
cross-engine session will produce exactly this kind of patch and most of its
output will land here, so planning eighteen abstract patches in advance would
be guessing at what that session discovers. What follows is a spine.
The spine
additivechaoticmodaldemodriftingfmchaoticgrittyvagrittydemoadditivestaticvachaoticrhythmicwaveguidehollowdemounvoicedvocalnoisyMorphing Materialis the one to build first. The materials system turnsauthored numbers into mode tables, so interpolating between materials
mid-note is natural here and nearly impossible elsewhere — a struck object
becoming a different kind of object while it rings. It is also the clearest
demonstration of why the material generators exist.
Ships thin first
Five is plenty: Inharmonic Cloud, Morphing Material, Feedback Web, Growl
Engine, Spectral Freeze. The category should stay small until the
cross-engine session fills it.
Gaps and needs
with no outstanding engine request, because it is defined by using what
exists in ways nobody intended.
and nine pianos is a tech demo rather than an instrument. This should be
among the smallest categories, and it will be the most tempting to grow,
because these are the most fun patches to make.
patch is before you load it; this one tells you nothing. If the names are
not evocative and the tags are not honest, nobody will audition these
twice.
Category 17 — Utility
The one category where "sounds good" is not the criterion. A utility patch is
correct or it is not, and its value is that its output can be trusted without
being measured first.
Reference tones
additivecleanvacleanvahollowvacleanvahollowadditivestaticNoise
noisynoisynoisyTest signals
cleancleanrhythmicstaticSweepandImpulseare what earn this category its place in the browser.When
Effectsexists they are how anyone finds out what a reverb or aresonator actually does, and they are the difference between "that sounds
about right" and a measurement.
Silencesounds like a joke and is not. A channel routed, armed andoccupying its strip without making a sound is a real thing to want, and the
alternative is everyone rolling their own.
Raw engines
additivedemofmdemovademowaveguidedemomodaldemoparticledemounvoiceddemoThe cheapest teaching material the bank can carry. Someone learning what this
instrument is gets further hearing each engine naked than reading anything,
and these are also the first place to look when something sounds wrong and it
is not yet clear which layer is lying.
Ships thin first
Sine, Saw, Square, White Noise, Pink Noise, Impulse, Sweep, Silence, A440.
The raw-engine set follows as a block, since it is only useful complete.
Gaps and needs
worthless if the number is not written where a user can read it. Every
patch here needs its output level in its description, in dBFS, measured
rather than intended. The
Hits & Riserslevel-discipline item arriving asa hard requirement instead of a convention.
Impulseat full scale and any of thenoises at monitoring volume are genuinely unpleasant on headphones. Whether
that is handled by naming, by level, or by browse order is a decision worth
making on purpose.
the obvious oracles for the suite — a known sine, a known impulse — and
once one is used that way, changing it breaks tests. Fine, but it should be
a deliberate choice recorded in the patch rather than discovered later by a
broken golden.
speakers. Excluded on purpose, recorded so the omission reads as a decision
rather than an oversight.
Category 18 — Effects
This list exists to produce requirements as much as patches, so the
architecture comes first and the patches justify it.
What is already decided and already there
new layer engines that process their inputs, markable as having an
"always open" gate so they run whether or not a note is held.
voice or from the channel's audio input.
sends and inter-layer taps that can feed back are all present, and most
engines can process external input — a VA oscillator type among them. This
category is therefore not gated on new plumbing.
voice. A played resonator — audio in, tuned from the keyboard — needs
nothing new.
layer. Delay lines and reverb tails never allocate on a note.
What this list still asks for
carrier and modulator, a compressor's sidechain.
ducking are four effects over one mechanism.
Hits & Risersraised.Delays and rhythmic tremolo are unusable without it.
delay and the host has to be told honestly. Mostly a requirement of the
spectral group below, which is why that group is a later wave.
dsp/layer_strip.hset the precedent — unity gain isbit-exact. An effect at zero wet should be sample-identical to no effect,
which is a testable property rather than an aspiration.
overflow and limit cycles are found.
dsp/fixed.h's rule —kTowardZero,so requantization is a contraction — is what makes a decaying tail reach
zero, and every structure here inherits it.
The order the instrument list already chose
The first nine effects are not a matter of taste. Seventeen categories named
patches that are incomplete without a specific processor:
Drawbar Organ,Full OrganClean ElectricClavinetSolinaMarimba, strings, kitTine EP,Reed EPAnything not on that list is a second wave.
Reverbs
cleancleanwidemodalplatemetallicwaveguidemetallicnoisyglassydemoPlateandSpringare the signature members. Every other synth's platereverb imitates a plate; this one can be the plate — the same modal
machinery as
Steel DrumandCrash, excited by audio instead of a mallet.The strongest argument in the schema for effects being layer engines rather
than a bolted-on rack.
Delays
cleanrhythmicgrittydriftingwiderhythmicrhythmicnoisydriftingModulation
driftingwarmwidewidemetallichollowrhythmicdriftingRotary deserves doing properly rather than as a tremolo with a filter: two
physically separate rotating sources at different speeds, accelerating at
different rates when the speed changes. The ramp between slow and fast is
most of what people love about it.
Saturation and destruction
Clean Electric's missing halfgrittywarmwarmgrittygrittychaoticmetallicdemoFilters and voices
expressivemacrovocalwaveguidevocalvocalmacroResonators — the distinctive ones
waveguidestringdemomodalplateparticlenoisyString Resonatoris the patch that explains this category to someone. Play adrum loop through it, hold a chord, and the loop is playing that chord. An
effect layer already receives note events, so it needs nothing that does not
exist — and nothing else in this bank's competition has a tunable physical
resonator sitting in the effects path.
Spectral and granular
chaoticcleanstaticdemodriftingThe likeliest second wave. They need an FFT on the audio path, which is a
different cost and latency shape from everything else here, and requirement 4
exists mostly for them.
Strip, not patches
Everything above the line stops being a preset at all, which is the right
outcome: nobody browses for a compressor the way they browse for a plate.
Ships thin first
Rotary, Amp + Cab, Auto-Wah, Chorus, Digital Delay, Tape Delay, Room, Hall,
Plate. Nine, and each one unblocks a patch already on this ticket.
Gaps and needs
The six requirements above, plus:
Hits & RisersversusEffectswas settled by naming: a one-shotsweetener is a hit, and anything that processes its input is here. The one
boundary in the schema that exists purely to prevent a collision.
per patch works, but someone looking for a reverb wants to see reverbs
rather than scroll past forty processors. Whether
Effectsneedssub-grouping is a browser question rather than a schema one — and it is the
only category heterogeneous enough to raise it.
Placing the 45 patches that already exist
The first real test of the schema: every row in
patches/factory.h, assigneda primary category and secondary tags. Every patch placed. Two placements are
arguable and are marked; one of them found a hole in the category list.
Every patch below also carries
factory.Bass (2)
sh101-bassvamonoglidetb303-linevamonogrittyrhythmicLead (5)
moog-leadvamonoglidefilter-whistlevademolets-go-syncvasyncbrightarp2600-ringvaringmodmetallicchiffsamplehybriddemoKeys (2)
dx7-epfmglassyvelocityDigital EPof the listlow-fluewaveguideflutehollowKeys, and a sixteen-foot pipe is an organ's voice rather than a wind instrumentMallets (1)
crystal-bellmodalglassymetallicPad (2)
juno-padvapwmwarmdriftingsem-padvawarmWinds (5)
trumpetwaveguidetubebrassexpressiveclarinetwaveguidetubereedhollowflutewaveguidetubeflutebreathychowning-hornfmbrassdemoobx-brassvabrassunisonVoice (3)
hellovocaldemowhispered-hellounvoicedvocalbreathydemokargyraaadditivevocalgrittyDrums (6)
bass-drummodalmembranesnaremodalmembranenoisytenor-drummodalmembranewoodentimpanimodalmembranelpg-kickvanoisyladder-kickvagrittyCymbals (4)
hihatmodalplatemetalliccrashmodalplatemetallicsynclavier-gongmetallicdemoHits & Risersbowed-platemodalplateboweddemoBowed Cymbalof the list, already builtPercussion (3)
cuicamodalmembraneexpressivecajonmodalplatenoisymaracaparticlenoisyAtmosphere (0)
Nature & Environment (8)
helicopternoisyrhythmicdemowindnoisybreathydriftingrainparticlenoisyrattlesnakenoisyrattlesnake-cloudparticlenoisythunder-nearparticlethunder-distantparticlewarmthunder-rollparticlewarmHits & Risers (1)
shepardadditivedemoAbstract (3)
converging-cloudadditivedemodriftingoctave-lockadditivedemodriftingarp2600-burblevachaoticrhythmicEmpty: Pluck, Strings, Utility, Effects
What the pass found
1. The schema very nearly holds. Forty-five patches, forty-five
placements, no patch needing two categories and one —
helicopter— thatmade a category row widen. The three arguable cases
were resolved by rules already written down rather than by inventing new
ones.
2. There was no home for machines, and now there is.
helicopteris notweather, not an animal, not an instrument and not a bed — and neither is a
passing car, a train or an idling engine. The pass surfaced the only genuine
hole in the schema, and it is closed: row 14 is now
Nature & Environmentand holds machines. The bed a machine makes stays inAtmosphere, under the same test that separates a pad from a drone.3. Four categories are empty, and two of them are the ones people look for
first. No
Pluckat all: no guitar, no harp, no kalimba. NoStrings: nobowed string of any kind, which the waveguide's missing friction drive
explains exactly.
UtilityandEffectsbeing empty is expected — neitherhas been started.
That
Pluckis empty is the more surprising of the two, because nothingblocks it. A plucked string is
kBurstinto a waveguide, which is thebank's best-supported path.
4. Fifteen of forty-five are
demopatches. They exist to prove an engineclaim —
bowed-platefor the junction inside the loop,helicopterforthree noise banks,
converging-cloudandoctave-lockfor partialtrajectories,
chowning-hornfor the index law. That is the right ratio fora bank at this stage and the wrong one for a shipping instrument, and it is
exactly what the
demotag exists to make visible. Nobody has to guess whichpatches are there for the engineers.
5. The bank is percussion-heavy and melody-light. Twenty-one of
forty-five are drums, cymbals, percussion or nature; nine are pitched
instruments anyone would play a tune on. That follows honestly from which
engines were built first, and it is the clearest statement of what the
library needs next.
Corrections this pass forced
Three comments above were wrong about exciters and have been fixed:
dsp/waveguide_layer.h's drives arekBurst,kReed,kJet,kLipandkInput.Windsneeds no newexciter at all.
dsp/junction.h'sJunctionCurve::kFrictionis the Stribeck curve, used bybowed-plateandcuica.Glass Harmonicais not blocked.Stringsactually needs is narrow: a friction drive on thewaveguide string. Bowed plate yes, bowed violin not yet.
kInputin that same list is the audio-input path theEffectscommentdescribes.
Two things lifted out of this ticket so they are findable:
"one patch is not the unit" question that came up here four times (the
six-string guitar, the drum kit, the effect return, demo parts), plus
importing and exporting spectra, materials and layers.
Nature & Environmentandholds vehicles, engines and working equipment. The bed a machine makes
stays in
Atmosphere. The body, the category 14 comment and the placementpass are all updated.