Skip to content
LimitlessGreenPublic

Latest commit

 

History

869 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SignaVis

SignaVis Screenshot

💡 Try it — Demo

Interactive demo and a full labeling app (BirdNET detection & annotation). Try them in your browser:

Live Demo Labeling App

CI NPM PyPI License DOI

DAW-like audio player (waveform + spectrogram + transport controls) as a standalone library — built for bioacoustic analysis, annotation, and embedding.

Table of contents

✨ Highlights

  • Fast, accurate spectrograms — computed in Rust/WebAssembly and rendered on the GPU; presets, colour schemes, auto contrast, PCEN, log frequency
  • Synced waveform + spectrogram with smooth zoom, scroll and playhead follow — also for long recordings
  • Label annotation — draw, move, resize, undo/redo; snap to call boxes a call from a single click; zoom box and edit loupe for precise edges
  • BirdNET suggestions — accept or discard detections in one click
  • Xeno-canto integration — import recordings and their annotation sets, compare with reference calls, upload your labels as Annota-JSON sets
  • Projects — stored in the browser or in a local folder (File System Access API), Raven export
  • Bat recordings — time expansion, heterodyne, frequency division and pitch shift
  • Embeddable — npm package (ESM / IIFE) and a Python wrapper for Jupyter, Streamlit and Gradio

Labeling app

The labeling app runs entirely in the browser — no install, no server.

Overview — load a recording, zoom and play
Overview
Labeling — draw and name labels
Labeling
Snap to call — one click boxes the call
Snap to call
Zoom box & loupe — precise box edges
Zoom box and loupe
Display — presets, colour schemes, contrast
Display settings

SignaVis Lite — the same app as a small desktop program for Windows, macOS and Linux (project folders, offline use, self-update). Download the latest release · install notes (the installers are not code-signed yet).

Install

npm i signavis

Note: signavis expects wavesurfer.js as a peer dependency (v7). Install it with:

npm i wavesurfer.js@^7

Or include wavesurfer.js from a CDN in the browser:

<script src="https://unpkg.com/wavesurfer.js@7"></script>

Or for Python:

pip install signavis

See PyPI and the python-wrapper/README.md for full Python usage.

Quickstart

import { BirdNETPlayer } from 'signavis'
import 'signavis/style'

const player = new BirdNETPlayer(document.getElementById('player'))
await player.ready

Documentation

Full documentation lives on the docs site:

Demos

  • Live Demo (GitHub Pages) — component storybook with configurable stories
  • Labeling App — full-featured annotation tool with BirdNET detection, Xeno-canto integration, label management and spectrogram settings (demo/labeling-app.html)
  • Google Colab Demo Notebook Open In Colab
  • Streamlit: streamlit run python-wrapper/demo_streamlit.py
  • Gradio: pip install gradio && python python-wrapper/demo_gradio.py

Python wrapper

The Python wrapper allows embedding the player in Streamlit, Jupyter, and Gradio.

pip install signavis

See python-wrapper/README.md for full usage, options, and advanced features, and PyPI for the published package.

Development

npm ci
npm run dev          # Vite dev server, labeling app at /demo/labeling-app.html
npm run typecheck
npm test
npm run build        # library + types into dist/ and types/

See DEVELOPER.md for the full setup, git hooks, release and desktop (Tauri) build instructions.

Contributing

See CONTRIBUTING.md. Issues and PRs welcome on GitHub.

Citation

If you use SignaVis in your research, please cite it — see CITATION.cff for machine-readable metadata (also shown via the "Cite this repository" button on GitHub), or use:

@software{signavis,
  author  = {Behrisch, Jairus},
  title   = {SignaVis: Interactive waveform + spectrogram audio player for bioacoustic analysis and annotation},
  url     = {https://github.com/LimitlessGreen/SignaVis},
  license = {AGPL-3.0-only}
}

A DOI via Zenodo is minted automatically for each GitHub release; see the DOI badge at the top of this README for the latest version.

License

GNU AGPL-3.0

Releases

Sponsor this project

Used by

Contributors

Languages