Next: `conf' Files Example, Previous: Database Configuration Files Example, Up: Database Configuration Files Example
This specifies five dynamic levels, two tuning systems (semitones and quartertones) and a few orchestral instruments along with their pitch ranges.
# -*- Conf -*- # sample SPORCH instrument def file # ----------------------------------------------------------------------------- # this file (named `insts' by default) must appear in the root sound file # directory. it tells sporchdb how to gather all of the analyzed data and # organize it, and also specifies a few default parameters # ----------------------------------------------------------------------------- # comment // another comment /* one more... comment */ # "a string" # 'another string' # yet_another_string # "string with \"quotes\"" # "string\\with\\backslashes" # quoteless\ string\ with\ spaces # ("a" "list" "of" "strings") # (another one) # "list of only one string" # (2 4 6 8 10) # 12 # specifies the number of dynamic levels in the database (mandatory, defaults # to 6). the higher this number is, the more refined sporch's search is (so a # value of 20 or more might be reasonable, for example) n-dyns = 5 # specifies the number of dynamic levels that appear in the output. `n-dyns' # affects sporch's search and the amount of information stored in the database # while `n-user-dyns' specifies the range of values the user sees. this # setting is here because the number of dynamic levels specified above might # not be useful for composing. it also affects how sporchdb interpolates # missing spectra (more specifically it affects the distance between different # pitch/dynamic levels) and becomes the default setting when the database is # loaded. a reasonable value for this is between 6 and 8 since that's # approximately how many notated dynamic levels there are (the default is 6) /* n-user-dyns = 8 */ # defines a tuning. peaks are extracted separately for each one specified. # right now only equal temperaments are possible. if none are specified the # database is compiled for 12-tone equal temperament tune { # a unique, case insensitive id for this tuning name = "12tet" # 2 (the default) indicates that the tuning is based on divisions of one # octave (a 2:1 frequency ratio). a value of 3, for example, specifies a # tuning based on a justly tuned octave and a fifth (a tritave) /* oct = 3 */ # the number of divisions per octave (or whatever was specified in `oct' # above). this is the default n-divs = 12 # the number of microtones per division (this multipled by `n-divs' gives the # actual number of divisions per octave). `n-divs' and `n-mics' together # determine how data appear in the output. 1 is the default n-mics = 1 # `base-freq' and `base-pitch' together determine how to translate # frequencies into pitch numbers. pitch number `base-pitch' has a frequency # of `base-freq'. the numbers here are the defaults base-freq = 440 base-pitch = 69 # the minimum frequency distance between peaks (1.0 is a semitone here) inst-min-fdist = 1.0 source-min-fdist = 1.0 } /* tune { name = "qtones" n-divs = 12 n-mics = 2 base-freq = 440 base-pitch = 69 } */ # sets the default tuning default-tune = 12tet # specifies the farthest distance (pitchwise and dynamic-levelwise) sporchdb # searches when interpolating missing data. if data is missing for a certain # pitch and dynamic level and no other data exists within this distance # (according to the tuning and `n-user-dyns' above) then the database won't # contain peaks for that pitch/dynamic. this probably shouldn't be more than # 2 (a semitone in 12-tone equal temperament, the default) unless there is a # lot of missing sound samples interp-dist = 2 # specifies whether to choose lower over higher or vice-versa when selecting # neighboring spectra to interpolate (options are `none', `low' and `high'--the # defaults are `low') pitch-pref = low dyn-pref = low # these default settings may also appear here (note: they can also appear in # the `.sporch' init file--the values in this file take precendence over # `.sporch' file values) /* db-name = ... db-conf-name = ... tmp-file-ext = ... use-tmp-files = ... rm-extra-tmp-files = ... */ # integer specifying the highest power used to determine FFT sizes. 3 # specifies the FFT size must be some multiple of powers of 2 and 3. 5 would # specify that it must be a multiple of 2, 3 and 5, etc.. The default value is # 2 (only power of 2 sizes allowed) fft-pow-limit = 3 # WOODWINDS # `inst' followed by braces defines an instrument inst { # this is a unique, case insensitive name for the instrument name = "flute" # this is a regular expression or list of expressions indicating which # peak extractions belong to this instrument--it matches ids specified in the # `conf' files ids = "flute" # the lowest and highest pitches of this instrument (in the default tuning # specified above)--ranges for other tunings will be calculated from these minp = 60 maxp = 96 # a "practical" highest pitch for this instrument--pitches above this value # get increasingly worse scores during the search process so they are chosen # less often. (there is also a `pract-minp' setting) pract-maxp = 94 } /* inst { name = "alto flute" ids = "alto flute" minp = 55 maxp = 86 pract-maxp = 84 } */ /* inst { name = "bass flute" ids = "bass flute" minp = 48 maxp = 79 pract-maxp = 74 } */ inst { name = "oboe" ids = "oboe" minp = 58 maxp = 91 pract-minp = 62 pract-maxp = 86 } inst { name = "clarinet" ids = "bfclarinet" minp = 50 maxp = 91 pract-maxp = 87 } /* inst { name = "bass clarinet" ids = "bass clarinet" minp = 37 maxp = 72 pract-maxp = 67 } */ inst { name = "bassoon" ids = "bassoon" minp = 34 maxp = 72 pract-maxp = 69 } /* inst { name = "alto sax" ids = "alto sax" minp = 49 maxp = 80 pract-minp = 62 } */ # BRASS inst { name = "horn" ids = "horn" minp = 35 maxp = 77 pract-minp = 48 pract-maxp = 72 } inst { name = "trumpet" ids = "trumpet" minp = 52 maxp = 82 pract-minp = 55 pract-maxp = 80 } inst { name = "trombone" ids = "tenortrombone" minp = 40 maxp = 72 pract-minp = 41 pract-maxp = 68 } /* inst { name = "bass trombone" ids = "bass trombone" minp = 36 maxp = 71 pract-maxp = 65 } */ inst { name = "tuba" ids = "tuba" minp = 26 maxp = 67 pract-minp = 31 pract-maxp = 58 } # STRINGS inst { name = "violin" ids = "violin" minp = 55 maxp = 103 pract-maxp = 88 } inst { name = "viola" ids = "viola" minp = 48 maxp = 93 pract-maxp = 79 } inst { name = "cello" ids = "cello" minp = 36 maxp = 84 pract-maxp = 67 } inst { name = "contrabass" ids = "bass" minp = 28 maxp = 67 pract-maxp = 62 } # PIANO /* inst { name = "piano" ids = "piano" minp = 21 maxp = 108 } */ # PERCUSSION /* inst { name = "bass drum" ids = "bass drum" # specify `perc' for unpitched instruments--sporch's default method of # extracting peaks also works for noisy instruments and sound sources perc } */ /* inst { name = "cymbal" ids = "cymbal" perc } */ /* inst { name = "snare drum" ids = "snare drum" perc } */