You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
-16Lines changed: 0 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,14 +2,10 @@
2
2
3
3
A browser-based acoustic data link for air-gapped, peer-to-peer transmission using device audio hardware. Built with React and the Web Audio API, it encodes text and files into 8-FSK audio signals to transmit data wirelessly over sound waves.
4
4
5
-
---
6
-
7
5
## What This Does
8
6
9
7
This project allows two devices to communicate with each other completely offline and without any RF network (Wi-Fi, Bluetooth, Cellular). It uses the device's built-in speaker to emit a sequence of musical tones (Frequency-Shift Keying) and the receiving device's microphone to listen to and decode those tones back into digital data. It is capable of transmitting both short text payloads and small files across an air gap.
10
8
11
-
---
12
-
13
9
## Features
14
10
15
11
-**8-FSK Modulation**: Encodes 3 bits of data per audio symbol using 8 distinct frequencies.
@@ -18,17 +14,13 @@ This project allows two devices to communicate with each other completely offlin
18
14
-**Data Integrity**: All payloads are verified upon receipt using CRC32 checksums.
19
15
-**"Dead Frequency" UI**: A custom, vintage signal intelligence aesthetic with a warm parchment/amber/teal palette, `DM Serif Display` typography, and kinetic CSS animations.
20
16
21
-
---
22
-
23
17
## Tech Stack
24
18
25
19
-**Frontend Framework**: React 18 + Vite
26
20
-**Styling & Motion**: Tailwind CSS + Framer Motion (for kinetic elements and page transitions)
27
21
-**Audio Processing**: Native Web Audio API (`AudioContext`, `AnalyserNode`, `OscillatorNode`)
28
22
-**Icons**: Lucide React
29
23
30
-
---
31
-
32
24
## Getting Started
33
25
34
26
### Prerequisites
@@ -48,8 +40,6 @@ This project allows two devices to communicate with each other completely offlin
48
40
49
41
*Note: For the acoustic link to work, the transmitting device needs a functioning speaker, and the receiving device needs a functioning microphone and must grant microphone permissions in the browser.*
50
42
51
-
---
52
-
53
43
## How It Works
54
44
55
45
1.**Encoding**: The application takes a text string or a file buffer and chunks it into smaller packets. Each packet calculates a CRC32 checksum. The binary data is then mapped to 8 specific audio frequencies (8-FSK).
@@ -89,19 +79,13 @@ Each transmission is stripped into 64-byte maximum payloads and wrapped in a 10-
89
79
| Handshake B |**1050 Hz**| Outside FSK range, wake-up tone |
90
80
| EOT |**700 Hz**| End-of-transmission, below FSK range |
91
81
92
-
---
93
-
94
82
## Limitations & Future Ideas
95
83
96
84
-**Bitrate**: Current speeds are around ~37 bps. Future versions will optimize the DSP loop to increase throughput.
97
85
-**Distance**: Environmental noise heavily impacts reliability. Devices must be relatively close in a quiet room for uncorrupted transmission. Error correction coding (like Reed-Solomon) is planned to recover flipped bits automatically.
98
86
99
-
---
100
-
101
87
## Deployment
102
88
103
89
This repository includes a GitHub Action for deploying natively to GitHub Pages (`.github/workflows/deploy.yml`).
0 commit comments