Skip to content

OpenAcousticDevices/AudioMoth-Utils

Repository files navigation

AudioMoth-Utils

A Node.js library for performing various tasks involving AudioMoth and files created by the AudioMoth. The module is hosted on npm under the name 'audiomoth-utils'.

Usage

The module should be imported as normal:

var audiomothUtils = require('audiomoth-utils');

Expanding, Splitting, Downsampling, Aligning and Syncing

Expand an AudioMoth T.WAV recording (a recording with amplitude thresholding or frequency triggering applied):

audiomothUtils.expand(inputPath, outputPath, prefix, expansionType, maximumFileDuration, generateSilentFiles, alignToSecondTransitions, (progress) => {
    console.log(progress + '% completed');
}));

To be identified as an AudioMoth T.WAV file, a recording must fit the regex /^([0-9A-F]{16}_)?((\d{8}_)?\d{6})T\.WAV$/ and have the correct WAV header comment.

Note that all the functions in this library return an object with a boolean indicating success, and a string describing any errors that have occurred. For example, in the event that an input file could not be opened, the following object is returned.

{
    success: false,
    error: 'Could not open input file.'
}

Split an AudioMoth WAV file into a number of smaller files:

audiomothUtils.split(inputPath, outputPath, prefix, maximumFileDuration, (progress) => {
    console.log(progress + '% completed');
}));

To be identified as an AudioMoth WAV file, a recording must fit the regex /^([A-Za-z-_0-9]+_)?(\d{8}_\d{6})(_SYNC)?\.WAV$/ and have the correct WAV header comment.


Downsample an AudioMoth WAV file to a lower sample rate:

audiomothUtils.downsample(inputPath, outputPath, prefix, requestedSampleRate, (progress) => {
    console.log(progress + '% completed');
}));

To be identified as an AudioMoth WAV file, a recording must fit the regex /^([A-Za-z-_0-9]+_)?(\d{8}_\d{6})((_\d{3})|(_SYNC))?\.WAV$/.


Align an AudioMoth WAV file recorded with the standard firmware. First parse the associated GPS.TXT file:

audiomothUtils.aligner.initialise(inputPath);

Then align each individual WAV file.

audiomothUtils.aligner.align(inputPath, outputPath, prefix, onlyProcessFilesBetweenFixes, (progress) => {
    console.log(progress + '% completed');
}));

Finally, generate the summary GPS.CSV output file.

audiomothUtils.aligner.finalise(outputPath);

To be identified as an AudioMoth WAV file, a recording must fit the regex /^([0-9A-F]{16}_)?(\d{8}_\d{6})\.WAV$/ and have the correct WAV header comment.


Synchronise an AudioMoth WAV file recorded using the AudioMoth-GPS-Sync firmware:

audiomothUtils.sync(inputPath, outputPath, prefix, resampleRate, resolveWAV, resolveGPS, (progress) => {
    console.log(progress + '% completed');
}));

To be identified as an AudioMoth WAV file, a recording must fit the regex /^([0-9A-F]{16}_)?(\d{8}_\d{6})\.WAV$/ and have the correct WAV header comment. The function will check for, and load, the associated CSV file generated by the AudioMoth-GPS-Sync firmware.

Summarising AudioMoth Files

To summarise a folder of AudioMoth files first clear any previous summary:

audiomothUtils.summariser.initialise();

Then provide the path to the parent folder and each file:

audiomothUtils.summariser.summarise(folderPath, filePath, (progress) => {
    console.log(progress + '% completed');
}));

Finally, write the summary CSV file to a destination:

audiomothUtils.summariser.finalise(outputPath);

Example applications using this module

License

Copyright 2017 Open Acoustic Devices.

MIT license.

About

Module of utilities for use with the AudioMoth and recordings created by AudioMoth.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •