ush 0.1.0

Ultrasonic Shell - communicate between devices using ultrasonic sound waves
Documentation
# Technical Documentation

This directory contains detailed technical documentation for the `ush` (ultrasonic shell) project.

## Documentation Structure

- **[architecture.md]architecture.md** - Overall system architecture and design patterns
- **[audio-processing.md]audio-processing.md** - Cross-platform audio I/O and signal processing
- **[modulation.md]modulation.md** - FSK modulation theory and implementation
- **[protocol.md]protocol.md** - Message framing, error detection, and networking protocol
- **[performance.md]performance.md** - Performance characteristics and optimization techniques
- **[references.md]references.md** - Academic papers, standards, and external resources

## Quick Technical Overview

`ush` implements ultrasonic data communication using:

1. **Frequency Shift Keying (FSK)** modulation at 18-22 kHz
2. **Fast Fourier Transform (FFT)** for signal demodulation
3. **CRC-32** checksums for error detection
4. **Cross-platform audio** via the `cpal` library
5. **Async I/O** with Tokio for non-blocking operations

The system achieves approximately 50-100 characters per second data transmission rate over distances of 2-10 meters, depending on environmental conditions.

## Key Technical Innovations

- **Adaptive symbol timing** with configurable duration and ramping
- **Multi-platform audio abstraction** supporting different sample formats
- **Robust protocol stack** with automatic error recovery
- **Real-time signal processing** with minimal latency
- **Comprehensive test coverage** including noise resilience testing