warbleR

Is intended to facilitate the analysis of the structure of animal acoustic signals in R.
https://github.com/marce10/warbler

Category: Biosphere
Sub Category: Bioacoustics and Acoustic Data Analysis

Keywords

animal-acoustic-signals audio-processing bioacoustics spectrogram streamline-analysis

Keywords from Contributors

behavior acoustic-signals animal compendium birdsong cultural-evolution phylogenetics

Last synced: about 12 hours ago
JSON representation

Repository metadata

streamline acoustic analysis in R

README.Rmd

          ---
title: "warbleR: Streamline Bioacoustic Analysis"
output: github_document
editor_options: 
  chunk_output_type: console
---




[![CRAN status](https://www.r-pkg.org/badges/version/warbleR)](https://cran.r-project.org/package=warbleR)
[![Total downloads](https://cranlogs.r-pkg.org/badges/grand-total/warbleR)](https://cranlogs.r-pkg.org/badges/grand-total/warbleR)
[![Lifecycle: stable](https://img.shields.io/badge/lifecycle-stable-brightgreen.svg)](https://lifecycle.r-lib.org/articles/stages.html#stable)
[![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active)
[![Codecov test coverage](https://codecov.io/gh/maRce10/warbleR/branch/master/graph/badge.svg)](https://app.codecov.io/gh/maRce10/warbleR?branch=master)
[![Dependencies](https://tinyverse.netlify.app/badge/warbleR)](https://CRAN.R-project.org/package=warbleR)
[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
[![Paper DOI](https://img.shields.io/badge/DOI-10.1111%2F2041--210X.12624-1f6feb.svg)](https://doi.org/10.1111/2041-210X.12624)


warbleR logo

**warbleR** is an R package for analyzing the structure of animal acoustic signals at scale. Bring your own recordings (or open-access ones from repositories like [Xeno-canto](https://xeno-canto.org/), easily obtained with [suwo](https://docs.ropensci.org/suwo/)), annotate them in a *selection table*, and run the whole pipeline — from file wrangling and spectrograms to acoustic measurements and similarity analyses — in batch, on as many signals as you have.

Built on top of [seewave](https://cran.r-project.org/package=seewave) and [tuneR](https://cran.r-project.org/package=tuneR), warbleR adds the workflow layer those packages leave to the user:

- 🗂️ **Selection-table-driven workflows** — every function loops over the signals listed in an annotation table, so one call handles one sound or ten thousand
- 📦 **Extended selection tables** — a single R object that bundles annotations *and* the audio clips, making analyses portable and easy to share
- ⚡ **Parallel processing** — most functions take a `parallel` argument to spread the work across cores
- 🔍 **Built-in quality checks** — spectrogram images and diagnostic tools let you verify each step before moving on

## What can you do with it?

| Task | Key functions |
|:-----|:--------------|
| Inspect, convert and fix sound files | `info_sound_files()`, `check_sound_files()`, `fix_wavs()`, `mp32wav()`, `wav_2_flac()`, `split_sound_files()`, `remove_channels()` |
| Build and validate annotation tables | `selection_table()`, `check_sels()`, `tailor_sels()`, `cut_sels()`, `overlapping_sels()`, `consolidate()` |
| Create spectrograms | `spectrograms()`, `full_spectrograms()`, `color_spectro()`, `snr_spectrograms()`, `catalog()`, `phylo_spectro()` |
| Measure acoustic structure | `spectro_analysis()`, `mfcc_stats()`, `song_analysis()`, `freq_range()`, `sig2noise()`, `sound_pressure_level()`, `gaps()`, `wpd_features()` |
| Track frequency contours | `freq_ts()`, `track_freq_contour()`, `track_harmonic()`, `inflections()` |
| Compare signals | `cross_correlation()`, `freq_DTW()`, `multi_DTW()`, `waveform_similarity()`, `compare_methods()` |
| Analyze duet / chorus coordination | `test_coordination()`, `plot_coordination()` |
| Simulate signals | `simulate_songs()` |

See the [function reference](https://marce10.github.io/warbleR/reference/) for the full list.

## Installation

From CRAN:

```{r, eval = FALSE}
install.packages("warbleR")
```

Development version from GitHub (requires [remotes](https://cran.r-project.org/package=remotes)):

```{r, eval = FALSE}
remotes::install_github("maRce10/warbleR")
```

## Quick example

The example recordings and annotations come from the [NatureSounds](https://cran.r-project.org/package=NatureSounds) package (installed with warbleR):

```{r, eval = FALSE}
library(warbleR)

# load example long-billed hermit songs and their annotations
data(list = c("Phae.long1", "Phae.long2", "Phae.long3", "Phae.long4", "lbh_selec_table"))

# save the sound files to a temporary folder
for (i in paste0("Phae.long", 1:4)) {
  tuneR::writeWave(get(i), file.path(tempdir(), paste0(i, ".wav")))
}

# check that annotations and sound files match
check_sels(lbh_selec_table, path = tempdir())

# measure spectral and temporal parameters for every annotated signal
params <- spectro_analysis(lbh_selec_table, path = tempdir())

# pairwise acoustic similarity via spectrographic cross-correlation
xc <- cross_correlation(lbh_selec_table, path = tempdir())
```

## Learn more

- 📘 [Intro to warbleR](https://marce10.github.io/warbleR/articles/a_warbleR.html) — an overview of the package
- 📝 [Annotation data format](https://marce10.github.io/warbleR/articles/b_annotation_data_format.html) — how input annotations (selection tables) should look
- 🔁 [All vignettes](https://marce10.github.io/warbleR/articles/) — worked examples of complete analysis workflows
- 📄 [Original paper](https://doi.org/10.1111/2041-210X.12624) in *Methods in Ecology and Evolution* (the package has grown a lot since, so check the vignettes for current usage)

## Related packages

| Package | What it does |
|:--------|:-------------|
| [seewave](https://cran.r-project.org/package=seewave) & [tuneR](https://cran.r-project.org/package=tuneR) | Core sound analysis and manipulation of wave objects in R |
| [ohun](https://docs.ropensci.org/ohun/) | Automated detection of sound events, with tools to diagnose and optimize detection routines |
| [suwo](https://docs.ropensci.org/suwo/) | Search, download and map nature media (Xeno-canto, Macaulay Library, iNaturalist, GBIF, WikiAves) — replaces warbleR's `query_xc()` and `map_xc()` |
| [baRulho](https://docs.ropensci.org/baRulho/) | Quantifying habitat-induced degradation of acoustic signals, with inputs/outputs compatible with warbleR |
| [Rraven](https://cran.r-project.org/package=Rraven) | Data exchange between R and [Raven](https://www.ravensoundsoftware.com/) (Cornell Lab of Ornithology), handy for using Raven as the annotation tool |
| [dynaSpec](https://cran.r-project.org/package=dynaSpec) | Dynamic spectrograms (spectrogram videos) |
| [NatureSounds](https://cran.r-project.org/package=NatureSounds) | Example recordings and annotations of animal sounds |

## Getting help & contributing

Found a bug or have a feature request? Please open an [issue](https://github.com/maRce10/warbleR/issues). Contributions are welcome — see the [contributing guidelines](https://github.com/maRce10/warbleR/blob/master/CONTRIBUTING.md).

## Citation

If you use warbleR, please cite:

> Araya-Salas, M. & Smith-Vidaurre, G. (2017). warbleR: an R package to streamline analysis of animal acoustic signals. *Methods in Ecology and Evolution*, 8, 184–191. 

Please also cite [tuneR](https://cran.r-project.org/package=tuneR) and [seewave](https://cran.r-project.org/package=seewave) if you use any function that creates spectrograms or measures acoustic parameters. You can get all citations from R with `citation("warbleR")`.

        

Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 1 day ago

Total Commits: 898
Total Committers: 8
Avg Commits per committer: 112.25
Development Distribution Score (DDS): 0.296

Commits in past year: 4
Committers in past year: 1
Avg Commits per committer in past year: 4.0
Development Distribution Score (DDS) in past year: 0.0

Name Email Commits
maRce10 m****7@g****m 632
Marcelo Araya-Salas m****a@u****r 211
gsmithvi g****i@g****m 49
maRce10 m****7@g****m 2
Open AI Tx o****x@o****m 1
Ed Baker e****r@g****m 1
Andrew S a****e@g****m 1
Grace Smith Vidaurre g****e@M****l 1

Committer domains:


Issue and Pull Request metadata

Last synced: 1 day ago

Total issues: 66
Total pull requests: 14
Average time to close issues: 2 months
Average time to close pull requests: 4 days
Total issue authors: 48
Total pull request authors: 5
Average comments per issue: 1.77
Average comments per pull request: 0.07
Merged pull request: 11
Bot issues: 0
Bot pull requests: 0

Past year issues: 1
Past year pull requests: 0
Past year average time to close issues: N/A
Past year average time to close pull requests: N/A
Past year issue authors: 1
Past year pull request authors: 0
Past year average comments per issue: 0.0
Past year average comments per pull request: 0
Past year merged pull request: 0
Past year bot issues: 0
Past year bot pull requests: 0

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/marce10/warbler

Top Issue Authors

  • maRce10 (14)
  • jkvrtilek (3)
  • axelsoundingwild (2)
  • madelynore (2)
  • auman-chan (2)
  • thk686 (1)
  • swricci (1)
  • lmolles (1)
  • abfleishman (1)
  • mjw246 (1)
  • pau-vazquezc (1)
  • akashrc (1)
  • Yaniel-Wong (1)
  • Raoul-Kima (1)
  • gnunezmir (1)

Top Pull Request Authors

  • gsvidaurre (9)
  • openaitx-system (2)
  • edwbaker (1)
  • maRce10 (1)
  • andrew-1234 (1)

Top Issue Labels

  • bug (1)

Top Pull Request Labels


Package metadata

cran.r-project.org: warbleR

Streamline Bioacoustic Analysis

  • Homepage: https://marce10.github.io/warbleR/
  • Documentation: http://cran.r-project.org/web/packages/warbleR/warbleR.pdf
  • Licenses: GPL-2 | GPL-3 [expanded from: GPL (≥ 2)]
  • Latest release: 1.1.38 (published 24 days ago)
  • Last Synced: 2026-10-24T05:37:35.919Z (1 day ago)
  • Versions: 40
  • Dependent Packages: 3
  • Dependent Repositories: 6
  • Downloads: 1,340 Last month
  • Rankings:
    • Forks count: 3.597%
    • Stargazers count: 6.826%
    • Average: 9.276%
    • Dependent packages count: 10.87%
    • Dependent repos count: 11.889%
    • Downloads: 13.196%
  • Maintainers (1)

Dependencies

.github/workflows/pkgdown.yaml actions
  • JamesIves/github-pages-deploy-action v4.4.1 composite
  • actions/checkout v3 composite
  • r-lib/actions/setup-pandoc v2 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite
.github/workflows/tic.yml actions
  • actions/checkout v3 composite
  • actions/upload-artifact v2 composite
  • pat-s/always-upload-cache v3 composite
  • r-lib/actions/setup-pandoc v2 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-tinytex v2 composite
DESCRIPTION cran
  • NatureSounds * depends
  • R >= 3.2.1 depends
  • seewave >= 2.0.1 depends
  • tuneR * depends
  • RCurl * imports
  • Rcpp * imports
  • bioacoustics * imports
  • cli * imports
  • dtw * imports
  • fftw * imports
  • grDevices * imports
  • graphics * imports
  • knitr * imports
  • methods * imports
  • monitoR * imports
  • parallel * imports
  • pbapply * imports
  • rjson * imports
  • stats * imports
  • testthat >= 3.0.0 imports
  • utils * imports
  • Sim.DiffProc * suggests
  • ape * suggests
  • covr * suggests
  • ggplot2 * suggests
  • jpeg * suggests
  • kableExtra * suggests
  • leaflet * suggests
  • maps * suggests
  • png * suggests
  • pracma * suggests
  • rmarkdown * suggests
  • soundgen * suggests
  • wavethresh * suggests
.github/workflows/R-CMD-check.yaml actions
  • actions/checkout v3 composite
  • r-lib/actions/check-r-package v2 composite
  • r-lib/actions/setup-pandoc v2 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite

Score: 13.753209531766895