# vn-tts

> Visual novel style local TTS — sine-wave beeps per character, zero dependencies.

- Role: Visual novel TTS library
- Status: Open source npm package and browser demo
- Stack: TypeScript, Web Audio, sine-wave synthesis
- Page: https://thomasjvu.com/projects/vn-tts
- Markdown: https://thomasjvu.com/projects/vn-tts.md

## Links

- [GitHub](https://github.com/thomasjvu/vn-tts)
- [Demo](https://thomasjvu.github.io/vn-tts/)


## Writeup

## Overview

vn-tts turns text into visual-novel-style sine-wave beeps locally in the browser or Node. Each character becomes a short pitched tone: vowels longer and softer, consonants shorter and sharper.

## How It Works

- Characters map to pitched sine-wave tones with simple attack and release envelopes.
- The output is stylized VN gibberish, not intelligible speech.
- Zero runtime dependencies; ships as `@thomasjvu/vn-tts` on npm.

## Hard Parts

The challenge is making the beeps feel lively without turning into noise. Timing, pitch variation, and volume differences between vowels and consonants need to stay readable at typewriter speed.

## Results

vn-tts powers the portfolio hero typewriter audio and is an optional TTS provider in Phantasy products. Source and demo: [github.com/thomasjvu/vn-tts](https://github.com/thomasjvu/vn-tts) · [thomasjvu.github.io/vn-tts](https://thomasjvu.github.io/vn-tts/).
