Repository navigation
v0.1.4
What's Changed
Features
- recording: Add
Recorder.pause()/resume()across JVM (JavaSound + native macOS), Android, iOS, macOS native, and Web (9d033d5, #22, #24) - recording: Add
AudioRecording.concatfor stitching multiple takes with format conversion (d82642a) - extensions: New
kodio-extensions:ktor— streamAudioFlowover WebSockets (8bc0caf, #6) - web: Surface
AudioError.DeviceSelectionUnsupportedfor non-default device selection;OpenAIWhisperEnginesupports customendpointUrl/ headers for proxy-based transcription (f815503, #3, #16) - file-io: Support AIFF/AU interchange in addition to WAV (dff002c)
- jvm: Configurable JavaSound recording warmup via
-Dkodio.jvm.recording.warmupMillis(default 200 ms) (a169c2c, #5)
Bug Fixes
- android: Coalesce concurrent microphone permission requests (956d8e8)
- web: Share PCM decoding across JS / WasmJS playback targets (9962280)
- apple / jvm: AVAudioEngine format negotiation, Float32 playback path, and related iOS
-10868/ playback fixes (cdd6867, 1810920, 62ac4e9) - macos: AudioQueue leak / disposal safety; native playback session completion on JVM FFI (c4b5a1b, 02d051f)
- recording: Thread
AudioQualitythrough the recording pipeline on all platforms (c22f06b) - sample-app: Conversion progress UX, iOS file picker / transcription fixes, Xcode wrapper (6dd4661, 86d27fd, add9c3c)
Maintenance
- ci: Expand matrix (
linux-jvm,android-unit,web,macos-native,ios-sim) with host-gated native libs (b30d13e, #11, #12, #13, #14, #15) - ci: Stabilise gates — SLF4J on Android unit tests, skip unsupported Compose UI test harnesses, skip mic-only native checks on CI, work around Ktor + K/N test link on Apple (d0d866c, 6454e33, f7fab13)
- docs: Pause/resume, JVM warmup, Android emulator notes, Ktor / web transcription topics, release checklist (a169c2c)
- chore: Sample-app polish, JVM property forwarding, JS lockfile, dev ignores (7387bce)
- release: Bump version to 0.1.4 (8d08a47)
Full Changelog: v0.1.2...v0.1.4
Installation
Add to your build.gradle.kts:
implementation("space.kodio:core:0.1.4")
// Optional extensions
implementation("space.kodio.extensions:compose:0.1.4")
implementation("space.kodio.extensions:compose-material3:0.1.4")
implementation("space.kodio.extensions:transcription:0.1.4")
implementation("space.kodio.extensions:ktor:0.1.4")