morph  R Documentation 
Takes two formulas for synthesizing two target sounds with
soundgen
and produces a number of intermediate forms (morphs),
attempting to go from one target sound to the other in a specified number of
equal steps. Normally you will want to set temperature
very low; the
tempEffects
argument is not supported.
morph( formula1, formula2, nMorphs, playMorphs = TRUE, savePath = NA, samplingRate = 16000 )
formula1, formula2 
lists of parameters for calling

nMorphs 
the number of morphs to produce, including target sounds 
playMorphs 
if TRUE, the morphs will be played 
savePath 
if it is the path to an existing directory, morphs will be saved there as individual .wav files (defaults to NA) 
samplingRate 
sampling rate of output, Hz. NB: overrides the values in

A list of two sublists ($formulas
and $sounds
), each
of length nMorphs
. For ex., the formula for the second hybrid is
m$formulas[[2]]
, and the waveform is m$sounds[[2]]
soundgen
# write two formulas or copypaste them from soundgen_app() or presets: playback = c(TRUE, FALSE)[2] # [a] to barking m = morph(formula1 = list(repeatBout = 2), # equivalently: formula1 = 'soundgen(repeatBout = 2)', formula2 = presets$Misc$Dog_bark, nMorphs = 5, playMorphs = playback) # use $formulas to access formulas for each morph, $sounds for waveforms # m$formulas[[4]] # playme(m$sounds[[3]]) ## Not run: # morph intonation and vowel quality m = morph( 'soundgen(pitch = c(300, 250, 400), formants = c(350, 2900, 3600, 4700))', 'soundgen(pitch = c(300, 700, 500, 300), formants = c(800, 1250, 3100, 4500))', nMorphs = 5, playMorphs = playback ) # from a grunt of disgust to a moan of pleasure m = morph( formula1 = 'soundgen(sylLen = 180, pitch = c(160, 160, 120), rolloff = 12, nonlinBalance = 70, subDep = 15, jitterDep = 2, formants = c(550, 1200, 2100, 4300, 4700, 6500, 7300), noise = data.frame(time = c(0, 180, 270), value = c(25, 25, 40)), rolloffNoise = 0)', formula2 = 'soundgen(sylLen = 320, pitch = c(340, 330, 300), rolloff = c(18, 16, 30), ampl = c(0, 10), formants = c(950, 1700, 3700), noise = data.frame(time = c(0, 300, 440), value = c(35, 25, 65)), mouth = c(.4, .5), rolloffNoise = 5, attackLen = 30)', nMorphs = 8, playMorphs = playback ) # from scream_010 to moan_515b # (see online demos at http://cogsci.se/soundgen/humans/humans.html) m = morph( formula1 = "soundgen( sylLen = 490, pitch = list(time = c(0, 80, 250, 370, 490), value = c(1000, 2900, 3200, 2900, 1000)), rolloff = c(5, 0, 25), rolloffKHz = 0, temperature = 0.001, jitterDep = c(.5, 1, 0), shimmerDep = c(5, 15, 0), formants = c(1100, 2300, 3100, 4000, 5300, 6200), mouth = c(.3, .5, .6, .5, .3))", formula2 = "soundgen(sylLen = 520, pitch = c(300, 310, 300), ampl = c(0, 30), temperature = 0.001, rolloff = c(18, 25), jitterDep = .05, shimmerDep = 2, formants = list(f1 = c(700, 900), f2 = c(1600, 1400), f3 = c(3600, 3500), f4 = c(4300, 4200)), mouth = c(.5, .3), noise = data.frame(time = c(0, 400, 660), value = c(20, 10, 60)), rolloffNoise = c(5, 15))", nMorphs = 5, playMorphs = playback ) ## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.