Published

May 19, 2025


0.1 Before the course starts

 

Refresh basic R concepts R basics

  • Object types in R
  • Subsetting
  • Style matters
  • R documentation

 

 

1 Day 1 (Video)


1.1 Aditional resources

1.1.1 Readings

1.1.2 Videos

 

Introduction Introduction

  • How animal acoustic signals look like?
  • Analytical workflow in bioacoustics research
  • Advantages of programming
  • Course outline

 

What is sound? Sound

  • Create a Rstudio project for the course

  • Download this folder into the course project directory

  • Sound as a time series
  • Sound as a digital object
  • Acoustic data in R
  • ‘wave’ object structure
  • ‘wave’ object manipulations
  • additional formats

 

1.2 Homework

  1. Use the function query_xenocanto() from the suwo package to check the availability of recordings for a species of interest in Xeno-Canto. This repository offers recordings for several taxonomic groups. Take a look at this link for a list of species by taxonomic group. Check this brief tutorial on how to get the recordings with suwo.

  2. Subset the data frame returned by the function to get a subset of subspecies/populations or recordings from a specific country and for certain vocalization type (using base R subsetting tools)

  3. Download the associated recordings using download_media()

  4. Explore the recordings with any spectrogram creating GUI program (e.g. Raven, Audacity)


 

2 Day 2 (Video)


2.1 Additional resources

2.1.1 Raven tutorials

Building spectrograms Building spectrograms

  • Fourier transform
  • Building a spectrogram
  • Characteristics and limitations
  • Spectrograms in R

Package seewave seewave

  • Explore, modify and measure ‘wave’ objects
  • Spectrograms and oscillograms
  • Filtering and re-sampling
  • Acoustic measurements

 

2.2 Homework

  1. Use Raven Pro to annotate some of the signals found in the xeno-canto recordings you downloaded previously

 

3 Day 3 (Video)


3.1 Additional resources

3.1.1 Readings

 

Annotation software annotations

  • Raven / audacity
  • Open and explore recordings
  • Modify-optimize visualization parameters
  • Annotate signals

Quantifying acoustic signal structure Quantify structure

  • Spectro-temporal measurements (spectro_analysis())
  • Parameter description
  • Harmonic content
  • Cepstral coefficients (mfcc_stats())
  • Cross-correlation (cross_correlation())
  • Dynamic time warping (freq_DTW())
  • Signal-to-noise ratio (sig2noise())
  • Inflections (inflections())
  • Parameters at other levels (song_analysis())

 

3.2 Homework

  1. Double-check annotations using warbleR’s dedicated functions
  • Create single spectrograms of each annotation
  • Create full spectrograms of all sound files along with annotations
  • Create catalogs

 

  1. Double-check annotations using Raven (export data from R to Raven)

 

4 Day 4 (Video)


4.1 Additional resources

4.1.1 Readings

 

Quality control in recordings and annotations Quality checks

  • Check and modify sound file format (check_wavs(), info_wavs(), duration_wavs(), mp32wav() y fix_wavs())
  • Tuning spectrogram parameters (tweak_spectro())
  • Double-checking selection tables (check_sels(), spectrograms(), full_spectrograms() & catalog())
  • Re-adjusting selections (tailor_sels())

Characterizing hierarchical levels in acoustic signals

  • Creating ‘song’ spectrograms (full_spectrograms(), spectrograms())
  • ‘Song’ parameters (song_analysis())

 

4.2 Homework

  1. Select best quality signals for analysis
  2. Measure acoustic parameters
  3. Summarize variation at higher hierachical levels (if necessary)

 

5 Day 5 (Video)


5.1 Additional resources

5.1.1 Readings

 

Choosing the right method for quantifying structure Comparing methods

  • Compare different methods for quantifying structure (compare_methods())

Quantifying acoustic spaces

  • Intro to PhenotypeSpace
  • Quanitfying space size
  • Comparing sub-spaces