soundgen v1.5.0


Monthly downloads



Parametric Voice Synthesis

Tools for sound synthesis and acoustic analysis. Performs parametric synthesis of sounds with harmonic and noise components such as animal vocalizations or human voice. Also includes tools for spectral analysis, pitch tracking, audio segmentation, self-similarity matrices, morphing, etc.



R package for sound synthesis and acoustic analysis.
Homepage with help, demos, etc:
Source code on github:

Performs parametric synthesis of sounds with harmonic and noise components such as animal vocalizations or human voice. Also includes tools for spectral analysis, pitch tracking, audio segmentation, self-similarity matrices, morphing, etc.

Key functions:

  • Sound synthesis from R console: soundgen()
  • Shiny app for sound synthesis (opens in a browser): soungen_app()
  • Acoustic analysis of a wav/mp3 file: analyze()
  • Shiny app for editing intonation contours (opens in a browser): pitch_app()
  • Measuring syllables, pauses, and bursts in a wav/mp3 file: segment()

For more information, please see the vignettes on sound synthesis and acoustic analysis:

vignette("sound_generation", package="soundgen")

vignette("acoustic_analysis", package="soundgen")

Or, to open the vignettes in a browser:
RShowDoc('sound_generation', package = 'soundgen')

RShowDoc('acoustic_analysis', package = 'soundgen')


To install the current release from CRAN: install.packages("soundgen")

NB: Make sure all dependencies have been installed correctly! For problems with seewave, see

On Macs, you may need to do the following:

  • First install brew according to the instructions here:
  • Then run the following from the terminal
    brew install libsndfile
    brew install fftw
  • Finally, install soundgen in R:

Functions in soundgen

Name Description
Mode Modified mode
addFormants Add formants
clumper Clump a sequence into large segments
beat Generate beat
addVectors Add overlapping vectors
addPitchCands Plot pitch candidates
analyzeFolder Analyze folder
HzToSemitones Convert Hz to semitones
analyze Analyze sound
analyzeFrame Analyze fft frame
fart Fart
convertStringToFormants Prepare a list of formants
filled.contour.mod Modified filled.contour
compareSounds Compare sounds (experimental)
ftwindow_modif Fourier transform windows (seewave)
gaussian.w Gaussian window
getFormantDispersion Get formant dispersion
divideIntoSyllables Syllable structure of a bout
defaults_analyze Defaults and ranges for analyze()
gaussianSmooth2D Gaussian smoothing in 2D
generateEpoch Generate an epoch
defaults Shiny app defaults
findBursts Find bursts
findGrad Find gradient
downsample Simple downsampling
getFrameBank Frame bank
convert_sec_to_hms Print time
getMelSpec Mel-transformed spectrum
getPrior Get prior for pitch candidates
getLoudnessPerFrame Get loudness per frame
getCheckerboardKernel Checkerboard kernel
getBandwidth Get bandwidth
getRMS RMS amplitude per frame
getVocalFry_per_epoch Constant subharmonics regime
estimateVTL Estimate vocal tract length
drawContour Draw contour
generateGC Generate glottal cycles
costPerPath Cost per path
getSmoothContour Smooth contour from anchors
generateHarmonics Generate harmonics
morph Morph sounds
listDepth List depth
normalizeFolder Normalize folder
modulationSpectrumFolder Modulation spectrum per folder
morphList Morph lists
killDC Kill DC
getLoudness Get loudness
getSpectralEnvelope Spectral envelope
getLoudnessFolder Loudness per folder
costJumps Cost of jumps
getVocalFry Subharmonics
isCentral.localMax Simple peak detection
matchColumns Match number of columns
evaluatePars Evaluate parameters for optimization
iso226 iso226
reportCI Report CI
crossFade Join two waveforms by cross-fading
fade Fade
forcePerPath Force per path
generateNoise Generate noise
flatSpectrum Flat spectrum
getPitchSpec BaNa pitch tracker
getDiscreteContour Discrete smooth contour from anchors
getIntegerRandomWalk Discrete random walk
getGlottalCycles Divide f0 contour into glottal cycles
generatePath Generate path
findSyllables Find syllables
matchLengths Resize vector to required length
getRMSFolder RMS amplitude per folder
soundgen_app Interactive sound synthesizer
schwa Schwa-related formant conversion
pitch_app Interactive pitch editor
playme Play audio
wiggleAnchors Randomly modify anchors
permittedValues Defaults and ranges for soundgen()
scaleSPL Scale SPL
pathfinding_slow Path through pitch candidates: slow
soundgen Generate a sound
segment Segment a sound
htmlPlots HTML for clickable plots
interpolMatrix Interpolate matrix
notesDict Conversion table from Hz to musical notation
morphDF Morph dataframes
presets Presets
getRandomWalk Random walk
morphFormants Morph formants
interpolate Interpolate
optimizePars Optimize parameters for acoustic analysis
wiggleGC Wiggle glottal cycles
mergeSyllables Merge syllables
getDom Get lowest dominant frequency band
phon2sone Convert phon to sone
modulationSpectrum Modulation spectrum
sampleModif sampleModif
pitchManual Manual pitch estimation in 260 sounds
scaleNoiseAnchors Scale noise anchors
upsample Upsample pitch contour
transplantFormants Transplant formants
segmentFolder Segment all files in a folder
ssm Self-similarity matrix
splitContour Split contour
getPitchCep Cepstral pitch tracker
findVoicedSegments Find voiced segments
wigglePars Wiggle parameters
zeroOne Normalize 0 to 1
to_dB Convert to dB
findZeroCrossing Find zero crossing
getEntropy Entropy
getNovelty SSM novelty
flatEnv Flat envelope
getEnv Get amplitude envelope
getPitchAutocor Autocorrelation pitch tracker
reformatAnchors Reformat anchors
getSigmoid Get sigmoid filter
matchPars Match soundgen pars (experimental)
pathfinder Pathfinder
logMatrix Log-warp matrix
pDistr Proportion of total
getRough Get roughness
osc_dB Oscillogram dB
getRolloff Control rolloff of harmonics
log01 log01
segmentManual Manual counts of syllables in 260 sounds
medianSmoother Median smoothing
reportTime Report time
rnorm_truncated Random draw from a truncated normal distribution
selfsim Compute self-similarity
snake Snake
semitonesToHz Convert semitones to Hz
spectrogram Spectrogram
spectrogramFolder Save spectrograms per folder
pathfinding_fast Path through pitch candidates: fast
reformatFormants Reformat formants
spreadSpec Spread spectrum
No Results!

Vignettes of soundgen

No Results!

Last month downloads


Type Package
Date 2019-09-11
License GPL (>= 2)
Encoding UTF-8
LazyData true
RoxygenNote 6.1.1
VignetteBuilder knitr
NeedsCompilation no
Packaged 2019-09-11 10:35:05 UTC; allgoodguys
Repository CRAN
Date/Publication 2019-09-11 11:00:02 UTC

Include our badge in your README