Skip to main content

Python wrapper for SignaVis Player (HTML/Streamlit embedding)

Project description

signavis (Python wrapper)

SignaVis Screenshot

PyPI GitHub stars

Python package to embed the SignaVis DAW player in Streamlit, Jupyter, Gradio, and any HTML-capable UI. Supports waveform & spectrogram visualization, annotation, and custom player layouts.

Live demo: https://limitlessgreen.github.io/SignaVis/


Installation

pip install signavis

Optional for demos:

pip install "signavis[streamlit]"
pip install "signavis[gradio]"

Example: Load and Display Your Own Audio

You can load your own audio file (WAV, MP3, etc.) and display it as a spectrogram or waveform in any supported environment. Just read the file as bytes and pass it to render_daw_player:

Jupyter Notebook:

from signavis import render_daw_player

with open("your_audio.wav", "rb") as f:
    audio_bytes = f.read()

html = render_daw_player(audio_bytes, viewMode="spectrogram")

# Display in Jupyter:
from IPython.display import HTML
HTML(html)

Streamlit:

import streamlit as st
from signavis import render_daw_player
import streamlit.components.v1 as components

uploaded = st.file_uploader("Choose an audio file", type=["wav", "mp3", "ogg", "flac"])
if uploaded is not None:
    html = render_daw_player(uploaded.read(), viewMode="spectrogram")
    components.html(html, height=620, scrolling=False)

You can use all other options as described above to customize the player.

Quickstart

Embed a DAW player for your own audio in Streamlit, Jupyter, or any HTML UI:

from signavis import render_daw_player
html = render_daw_player(
        audio_bytes,  # bytes (WAV/MP3)
        viewMode="spectrogram",   # 'both' | 'waveform' | 'spectrogram'
        transportStyle="hero",    # 'default' | 'hero'
        showOverview=False,        # Hide overview navigator
        showFileOpen=False,        # Hide file open button
        showStatusbar=False,       # Hide status bar
        labelTaxonomy=[{"name": "Species", "color": "#0ea5e9"}],
        # ...any other BirdNETPlayer option
)

Display in Streamlit:

import streamlit.components.v1 as components
components.html(html, height=620, scrolling=False)

Display in Jupyter:

from IPython.display import HTML
HTML(html)

Player Options

Option Example Description
viewMode 'spectrogram' Show only the spectrogram
transportStyle 'hero' Large centered play button
showOverview False Hide overview navigator
showFileOpen False Hide file open button
showStatusbar False Hide status bar
labelTaxonomy [{'name': 'Species', 'color': '#0ea5e9'}] Custom label presets
iframe_height 320 Set iframe height (default: 620)

For all options, see the Web API docs.


Presets & Layouts

The package includes several ready-to-use presets (see demo_streamlit.py):

  • Full DAW: All controls, waveform & spectrogram, annotation
  • Compact: Minimal controls, no overview/statusbar
  • Preview Waveform Hero: Large play button, waveform only
  • Preview Spectrogram Hero: Large play button, spectrogram only
  • Ultra Compact Hero: Smallest possible embed

You can combine or override any option for your use case.


Advanced: Custom Spectrograms

You can inject your own pre-computed spectrogram data or images:

  • spectrogram_data: 2D numpy array (nFrames × nMels, float32)
  • spectrogram_image: PNG/JPEG bytes, data-URL, matplotlib Figure, PIL Image, or numpy uint8 array

See the Web API for details.


Demos

Streamlit:

streamlit run demo_streamlit.py

Gradio:

pip install gradio
python demo_gradio.py

Google Colab:

Open In Colab

Try the interactive notebook demo directly in your browser—no setup required!


License

GNU AGPL-3.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

signavis-0.7.0.tar.gz (182.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

signavis-0.7.0-py3-none-any.whl (180.2 kB view details)

Uploaded Python 3

File details

Details for the file signavis-0.7.0.tar.gz.

File metadata

  • Download URL: signavis-0.7.0.tar.gz
  • Upload date:
  • Size: 182.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for signavis-0.7.0.tar.gz
Algorithm Hash digest
SHA256 f0c9806bd6c51014810d944b3556232d4a0628268e5333d011d0e9660ecbde18
MD5 c28ac8661f0e8b34202d40ff846b3ebb
BLAKE2b-256 8a7173c61c13b4fdd15a8b57d33f22d0db38eef102a847aeb2644d6240c58bfe

See more details on using hashes here.

File details

Details for the file signavis-0.7.0-py3-none-any.whl.

File metadata

  • Download URL: signavis-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 180.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for signavis-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c60392714cc20ec80a0d5529be1b73ef10f7108f40c6cf489f1f6d89f5c29347
MD5 736be9b27e7a35b1a43913f0a01b102d
BLAKE2b-256 c74121b699389c56b229dce9b358f93bf148593e78330d1b994d2c7e06d3740f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page