Files
Chris Tate 80d1c46d36 Prepare v0.9.5 release (#391)
- Make app.json the default manifest with a published versioned schema.
- Add registered-image source cropping and harden installed TypeScript toolchain resolution.
- Synchronize v0.9.5 package metadata and release notes.
2026-08-18 10:21:12 -05:00
..
2026-08-18 10:21:12 -05:00

Voice Memo

A TypeScript-core Native SDK example that records the default microphone or system playback, shows a live input-level trace, writes each take as a mono 48 kHz PCM WAV, and plays saved takes back. The logic is in src/core.ts, the view is in src/app.native, and no JavaScript runtime ships in the binary.

Recordings are written below the platform's durable per-app data directory, under recordings/voice-memo-N.wav~/Library/Application Support/voice-memo/ on macOS and %LOCALAPPDATA%\voice-memo\Data\ on Windows. The generated TypeScript runner resolves that directory and delivers it through the journaled NATIVE_SDK_APP_DATA_DIR envMsgs channel, so packaged apps do not depend on their launch working directory. A take is capped at ten seconds so its WAV stays below the current 1 MiB whole-file effect limit. Recording stops through Cmd.audioCaptureStop; the app waits for the terminal stopped event before building the WAV, so already-accepted capture chunks are included.

Run it

cd examples/voice-memo
native dev

The first microphone or system-audio recording may prompt for the matching access. The manifest declares microphone, system_audio, and filesystem permissions. The example targets macOS and Windows; Linux capture is not currently available.

Useful checks:

native check
native test -Dplatform=null
native build

native dev --core can exercise the pure state machine and show effect transcripts, but it does not provide live microphone samples.