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
}
*/