Skip to main content

Crate sound_to_patch

Crate sound_to_patch 

Source
Expand description

Turn an audio stem or a written sound description into a starting point in a target synth, Vital or Serum 2.

The library holds all logic. The sound-to-patch binary parses the command line with cli::Cli, calls the library and prints the result. The library itself never prints.

§Modules

  • audio: stem intake. Decodes a file at its native rate, mixes it to mono and resamples it for a consumer with a fixed rate.
  • cli: the command-line definition, shared by the binary and by the generators of the man pages and the shell completions.
  • confidence: how far a layer trusts an estimate, as a level with reasons and a spread, or no estimate.
  • dsp: the signal core: windows, STFT, peak picking, active frames, the analytic signal and decay fits.
  • estimate: the layer estimators that read the note list and the f0 track: the pitch layer with its glides, pitch drops and vibrato, and the envelope layer with the note envelopes and the sidechain pump, and the voices layer with the count of voices and the joins of a mono line.
  • music: the music dictionary for notes, embedded from dictionary/music/, with the key, note-name, numeral and chord-symbol parsers, the snap rule and the rhythm arithmetic.
  • notes: the note list that every layer reads, the transcriber with its profiles and its register detection, the f0 track, the cleanup with the quiet-note guard, the notes step of a stem, the MIDI reader and writer, and the harmonic masks built from the list.
  • preset: preset files behind one adapter per synth: the format traits, the parameter registry with its laws, the template, the edit list and its applier, the mapper trait that turns layer values into edits, and the Vital adapter.
  • render: rendering a preset and its notes to audio: the recipe, the render job and record, the renderer trait, a fake renderer for tests, the plug-in state of a preset and the renderer that drives the plug-in host process.
  • report: the outputs of a stem: layers.json, the spectrogram image and the final notes.mid with the analyze pipeline that writes them, and the first notes.mid with the notes command.
  • synth: the target synth, the shared --synth argument and what each synth offers in structure.
  • units: unit newtypes, checked once when built, with their conversions, serde and the unit-string parser.

Modules§

audio
Stem intake: decoding, mono, resampling and the Stem.
cli
The command-line definition.
confidence
How far a layer trusts one of its estimates.
dsp
The signal core that every estimator uses.
estimate
The layer estimators that read the note list and the f0 track.
music
The music dictionary for notes: scales, keys, chords, progressions, rhythm and technique words, each with a checkable note rule, and the parsers and functions that read them.
notes
The note list that every layer reads, the transcriber, the f0 track and the MIDI files that produce and store it, and the harmonic masks built from it.
preset
Preset files of the target synths, behind one adapter per synth.
render
Rendering a preset and its notes to audio through a synth.
report
The outputs of a stem: layers.json, spectrogram.png and the final notes.mid from analyze, and the first notes.mid from notes.
synth
The target synth: the Synth enum, the shared --synth argument and the structure each synth offers, SynthCapabilities.
units
Unit newtypes: a value is checked once, when it is built, and is valid by type afterwards.
words
The word dictionary: what a producer’s sound word means.