View source: R/raven.to.wave.R
raven.to.wave | R Documentation |
".wav"
files using selections from Raven Pro software.Create one ".wav"
file for each selection created using Raven Pro software, which is commonplace in bioacoustical analysis. Each selection (i.e. line in table) should represent an acoustic unit from the sample study.
raven.to.wave(
orig.wav.folder = NULL,
raven.at = orig.wav.folder,
wav.samples = "wav samples"
)
orig.wav.folder |
filepath to the folder where original |
raven.at |
filepath to the folder where selection tables from Raven Pro software are stored. Should be presented between quotation marks. File name should end with |
wav.samples |
folder where new |
Pedro Rocha
Rocha, P. & Romano, P. (2021) The shape of sound: A new R
package that crosses the bridge between Bioacoustics and Geometric Morphometrics. Methods in Ecology and Evolution, 12(6), 1115-1121.
align.wave
, raven.list
,
Useful links:
Report bugs at https://github.com/p-rocha/SoundShape/issues
Raven Pro software https://www.ravensoundsoftware.com/software/raven-pro/
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# Create folders on your console #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# Create temporary folder to store original ".wav" files containing multiple units
orig.wav <- file.path(base::tempdir(), "original wave")
if(!dir.exists(orig.wav)) dir.create(orig.wav)
# Create temporary folder to store sample ".wav" files from original recordings
wav.at <- file.path(base::tempdir(), "wav samples")
if(!dir.exists(wav.at)) dir.create(wav.at)
# Create temporary folder to store results
store.at <- file.path(base::tempdir(), "output")
if(!dir.exists(store.at)) dir.create(store.at)
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# Select acoustic units based on Raven Pro selections #
# #
# Using raven.to.wav function #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# Export original sample ".wav" files from SoundShape examples
tuneR::writeWave(centralis, extensible = TRUE,
filename = file.path(orig.wav, "centralis.wav"))
tuneR::writeWave(cuvieri, extensible = TRUE,
filename = file.path(orig.wav, "cuvieri.wav"))
tuneR::writeWave(kroyeri, extensible = TRUE,
filename = file.path(orig.wav, "kroyeri.wav"))
# Store Raven Pro selection tables at same folder from original ".wav" files
for(i in 1:length(raven.list)){
write.table(raven.list[i], file=file.path(orig.wav, names(raven.list)[i]),
quote=FALSE, sep="\t", row.names = FALSE,
col.names = colnames(raven.list[[i]])) } # end loop
# Verify if folder has both original ".wav" files and Raven's selections
dir(orig.wav)
###
## Start here when using your own recordings
# Export a ".wav" sample for each selection made in Raven Pro
raven.to.wave(orig.wav.folder = orig.wav, wav.samples = wav.at)
# Verify samples
dir(wav.at)
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# Align acoustic units using align.wave #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# Place sounds at the beginning of a sound window
align.wave(wav.at=wav.at, wav.to="Aligned",
time.length = 0.8, time.perc = 0.005, dBlevel = 25)
# Verify alignment using analysis.type = "twoDshape"
eigensound(analysis.type = "twoDshape", wav.at = file.path(wav.at, "Aligned"),
dBlevel = 25, store.at=store.at, plot.exp=TRUE,
flim=c(0, 4), tlim=c(0, 0.8), add.contour = TRUE)
# Go to folder specified by store.at and check jpeg files created
# If alignment/window dimensions are not ideal, repeat process with new settings
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.