Skip to main content

SonicMesh

Acoustic Ultrasonic Data Transfer Library (Research Project)

SonicMesh is a Python library designed for high-frequency ultrasonic communication, enabling data transfer over audio. This project is part of ongoing research into ultrasonic FSK (frequency shift keying) communication and aims to push the limits of audio based data transmission particularly for file transfer tht includes images.

Features

  • Send text and files over sound using ultrasonic frequencies
  • 64-FSK encoder for efficient data transmission
  • FFT-based ultrasonic decoder for accurate reception.
  • WAV utils to save and read transmissions
  • Exoposes high-level APIs for quick experimentation

Goals

  • Enable high speed audio-based transfer of data (images and text for now).
  • Explore novel encoding strategies for ultrasonic communication.
  • provides a flexible library for research and experimentation

Installation

pip install sonicmesh

Quick Example

from sonicmesh import transmit, decode_wav

#Encoding a message and transmitting over the speaker
transmit("Hello World!!")

# Decoding received signal (from WAV file for now - microphones later)
decoded = decode_wav("message.wav")
print(decoded)

Research Focus

SonicMesh is serious research project aiming to pushing the limits of acoustic communication where users can:

  • Experiment with ultrasonic-FSK transmissionn
  • Test basic audio-based file transfer, including images (altho its still underdeveloped since the FSK decoding is still not optimized).
  • Contribute to development of high-frequency data transmission techniques

Architecture Overview

SonicMesh internally consists of three major components:

  1. Encoder
  • Convert raw bytes/text into symbols
  • Maps each symbol to one of 64 frequencies (64-FSK)
  • Generates the final audio waveform for transmission
  1. Decoder
  • Performs FFT based frequency detection
  • extracts symbol sequences from the spectrogram
  • converts them back into bytes, text, or file data
  1. Acoustic Configuration Defines:
  • Sample Rate
  • Symbol Duration
  • Frequency Table
  • Bit depth per symbol (64-FSK -> 6 bits/ sybmol)

Roadmap

Planned areas of development:

  • High speed FSK enhancemeents for faster JPEG (and other file) transmission
  • Better noise robustness using windowing and adaptive thresholding
  • Microphone live decoding (real-time RX path)
  • Spectrogram visualization tools for debugging
  • Higher-order modulation (128-FSK or chirp based systems)
  • Erorr correction codes (Hamming, BCH, or even Reed-Solomon)

Current Limitations

To set the correct expectations:

  • File transfer works but is slow at the moment
  • FFT decoding still needs a lot of optimization and noise filtration
  • Microphone live receive is still in experimental / "in-progress" stage.

Contributing

Contributions are welcome especially inL

  • Audio signal processing
  • optimizing fsk encoding/decoding
  • increasing data transfer speed

All contributions should maintain the research oriented and experiment nature of the project.

License

This project is licensed under the MIT License.

Metadata

Release files for sonicmesh 0.1.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sonicmesh 0.1.7
File Size Uploaded
sonicmesh-0.1.7.tar.gz 11.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sonicmesh 0.1.7
File Interpreter ABI Platform
sonicmesh-0.1.7-py3-none-any.whl Python 3 none any Details

Total release size: 23.0 kB

Release files / sonicmesh-0.1.7.tar.gz

Download URL sonicmesh-0.1.7.tar.gz
Size 11.3 kB
Tags Source
SHA-256 checksum
How to use checksums
355991adb1de378cbfee1e688c7eb541ea80157284c596846c5f6df007459daf
BLAKE2b-256 checksum
How to use checksums
f205467b51d62748f85606127702d9c7ace0d74b3d505065d1e58d82c0777f7f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.2

Release files / sonicmesh-0.1.7-py3-none-any.whl

Download URL sonicmesh-0.1.7-py3-none-any.whl
Size 11.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4c14bb787d035c6505f575053e7343eb3ba79dd0aa8cf8a75d23e43657fada9e
BLAKE2b-256 checksum
How to use checksums
f384ac74ad5f567e82cca20a9ef946938c4fb1cd8c13e0c191cb2a455cdb5833
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.2

Release history Release notifications | RSS feed

This release

0.1.7 This release

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page