featsynthmaker
usage: featsynthmaker [CtrlParamName cpvalue]* -s s.syn -e e.ext
[-m m.mtr] [-p p.mtr]
-o o.op -c c.mch [-n initialMappings -w winsize] [-W paramWeight]
output.fs
Builds a FeatSynth object out of a ParamSynth (s.syn), a FeatureExtractor
(e.ext), an Optimizer (o.op), a MappingCache (c.mch), and optionally Metrics
to judge distances between parameter and feature vectors
(p.mtr and m.mtr respectively - if no Metric is specified then the default
Metrics associated with the ParamSynth and FeatureExtractor are used).
Optionally, values for any number of control parameters on the FeatSynth
can be set by
specifying the names (CtrlParamName) and values (cpvalue) for those
parameters.
If the -n flag is included, the MappingCache is initialized with an additional
initialMappings mappings between random parameter vectors and the feature
vectors they produced for a window size of winsize.
The optional paramWeight
parameter specifies how strongly (on a scale from 0.0 to 1.0) to value smooth
transitions between parameters from frame to frame. For example -W 0.0 tells
the FeatSynth to only consider the feature values, while -W 1.0 would make
the FeatSynth only consider closely matching the previous frame's parameter
vector (which would be pretty boring). Default is 0.0. Set it higher if you
find you're getting very choppy or burbly output from frequent large jumps in
synthesis parameters.
alternate usage: featsynthmaker [CtrlParamName cpvalue]*
-S SynthType [CtrlParamName cpvalue]*
-E ExtractorType [CtrlParamName cpvalue]*
[-M MetricType [CtrlParamName cpvalue]*]
[-P MetricType [CtrlParamName cpvalue]*]
-O OptimizerType [CtrlParamName cpvalue]*
-C CacheType [CtrlParamName cpvalue]*
-n initialMappings -w winsize [-W paramWeight]
output.fs
Instead of using saved components, the -[semoc] flags can be capitalized to
instruct featsynthmaker to create new components of the appropriate type.
Additionally, one may combine multiple ParamSynths or FeatureExtractors by
including multiple -S or -F flags. For
example, -S SinSynth -S SinSynth -S WhiteSynth
would create a ComboSynth that combined two SinSynths and a WhiteSynth.
Any CtrlParamName/cpvalue pairs following one of these flags will be applied
to the component specified immediately to the left. Capital and lowercase flags
may be freely mixed, e.g.
featsynthmaker maxIterations 15 -S SinSynth -S SinSynth
-S WhiteSynth -e e.ext -O GeneticOptimizer -C LSHFCache numHashes 20 -n 100
-w winsize output.fs
would save a FeatSynth object in output.fs whose maxIterations parameter was
set to 15, whose ParamSynth was a ComboSynth mixing two SinSynths and a
WhiteSynth, whose FeatureExtractor was whatever was saved in e.ext, whose
Optimizer was a GeneticOptimizer, and whose MappingCache was an LSHFCache with
the numHashes parameter set to 20.
Applications
These applications use existing components to analyze or produce audio.
fextractor
usage: fextractor -w winsize -h hopsize -e [e.ext |
featsynth.fs] input.wav > out.fsc
Uses the FeatureExtractor saved as e.ext or the FeatureExtractor associated
with featsynth.fs to extract feature vectors from sliding
windows of a PCM audio file (named, e.g., input.wav), then writes the results
in FeatScore format to standard output, which can be redirected using the '>'
character to a file (e.g. out.fsc).
OR
usage: fextractor -w winsize -h hopsize -E ExtractorType
[CtrlParamName cpvalue]* input.wav > out.fsc
Creates a new FeatureExtractor of type ExtractorType, initializes it with any
CtrlParam name/value pairs specified, and uses it to create a FeatScore file
as described above.
featscore
usage: featscore [-t tolerance] [-i iterations]
featsynth.fs score.fsc outfile.wav
Uses the FeatSynth stored in featsynth.fs to attempt to synthesize audio
matching the feature values in score.fsc. The resulting audio is written to
outfile.wav.
The tolerance parameter specifies below what error the Optimizer can
stop searching for a better solution and move on to the next frame. The default
value is 0.0.
The iterations parameter specifies how many iterations the Optimizer should
perform before giving up and moving on to the next frame. The default value
is 20.