Vowel:
Filter:
Vowel/Classes (extension) | Convenience

Vowel
ExtensionExtension

convenience class to store and manipulate formant information

Description

A Vowel contains and handles data to describe formants that allow to distinguish the vowel sounds \a, \e, \i, \o, \u for the registers \bass, \tenor, \counterTenor, \alto and \soprano. The current implementation uses formant data that originally appeared in the C-sound Manual: http://www.csounds.com/manual/html/MiscFormants.html

2011 -- Florian Grond, Till Bovermann

Supported by: the Ambient Intelligence Group, CITEC ( http://www.techfak.uni-bielefeld.de/ags/ami ) Bielefeld University, and the TAI Studio ( http://TAI-Studio.org ), Department of Media, Aalto University, Helsinki. Many thanks go to Alberto de Campo and and Julian Rohrhuber.

Class Methods

.formLib

holds formant information

Returns:

a Dictionary

.new

creates a new instance of Vowel

Arguments:

vowel

select a vowel by the symbols \a, \e, \i, \o, \u. default value is 'a'.

register

select a register by the symbols \bass, \tenor, \counterTenor, \alto, \soprano. Default value is 'bass'.

Returns:

a Vowel

Discussion:

The class exhibits multichannel expansion behaviour

.basicNew

You can also explicitly set the formants

Arguments:

freqs

an array of freqs

dBs

an array of dBs

widths

an array of widths in Hz

Returns:

a Vowel

.compose

compose your own vowel based on the ones defined in formTable. Wraps when argument lengths differ (as in channel expansion).

Arguments:

vowelNames

an array describing the vowels' character: \a, \e, \i, \o, \u.

registers

an array describing the vowels' voice: \bass, \tenor, \counter, \alt, \sopran.

weights

an array describing the vowels' weight relative to the others. Should be a normalized sum.

Returns:

a Vowel

Discussion:

Instance Methods

.freqs

Array of freqs, one for each formant.

.dBs

Array of dBs,

.widths

array of widths in Hz, one for each formant.

.amps

array of amps in dB, one for each formant.

.rqs

array of rQ values, one for each formant.

.midinotes

array of midinotes, one for each formant.

.addFormants

Arguments:

freq
db
width

.removeFormants

Arguments:

index

index of the formant to remove

.ampAt

get amp value for freq according to order of filter

Arguments:

freq
filterOrder

.plot

plot the frequency spectrum of the vowel.

Arguments:

fmin
fmax
fstep
order

.asArray

serialise the vowel into an array

Returns:

an arrays of [ freqs, dBs, widths ]

.asEvent

convert into an Event

.asKeyValuePairs

convert into an array of key value pairs

Arguments:

id

optional argument added to each key

.addControls

creates controls in the wrapping synth such that the vowel's parameters can be controlled seamlessly from the language.

Arguments:

id

Optional. If more than one vowel need to be controlled inside one Synth, this id can be used to differentiate them from each other.

rate

either \kr or \ar

lag

array of lag times

Discussion:

+

plus

Arguments:

that
adverb

-

minus

Arguments:

that
adverb

*

multiply

Arguments:

that
adverb

/

divide

Arguments:

that
adverb

.blend

blends two vowels by linear interpolation between of midinotes, widths and dBs.

Arguments:

that

a Vowel

blendFrac

coefficient. Range from 0.0 (this) to 1.0 (that).

Returns:

a new instance of Vowel

.brightenRel

lift the upper formants by multiplying their dBs with a factor. The sum of all dBs remains fixed.

Arguments:

bright

coefficient to brighten the vowel. Typical ranges are from 1 (no change) to 3.

refFormant

reference formant, whose amplitude remains unchanged. Default value is 0 (first formant)

Discussion:

NOTE: If the coefficient bright is > 1 and the refFormant is > 0, the resulting signal may raise to a very big amplitude.

.brightenLin

allows to lift the upper formants by multiplying their dBs. the sum of all dBs remains constant.

Arguments:

bright

coefficient to brighten the vowel. Typical ranges are from 1 (no change) to 3.

refFormant

reference formant, whose amplitude remains unchanged. Default value is 0 (first formant)

Discussion:

.brightenExp

allows to relatively lift the upper formants by keeping the sum of gains of all formants constant.

Arguments:

bright

coefficient to brighten the vowel. Typical ranges are from 1 (no change) to 3.

Discussion:

.asKlankRef

(describe method here)

Arguments:

baseFreq

undocumented

numPartials
ring

.printOn

prettyprint support

Arguments:

stream

.storeArgs

archival support

Examples

In SynthDefs:

using addControls to create buses

JITLib style:

Fun.