Skip to content

Add native macOS duplex stream#20

Merged
iancharest merged 2 commits into
mainfrom
codex/native-macos-duplex
Jun 12, 2026
Merged

Add native macOS duplex stream#20
iancharest merged 2 commits into
mainfrom
codex/native-macos-duplex

Conversation

@iancharest

@iancharest iancharest commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add _native.DuplexStream on macOS.
  • Implement one native duplex object that owns Core Audio input and output queues together.
  • Add Linux miniaudio duplex support using one native ma_device_type_duplex callback.
  • Wire NativeBackend.open_duplex_stream() to native handles on Core Audio and miniaudio.
  • Convert native duplex stats into DuplexStreamStats.
  • Update README and architecture docs now that Linux duplex is implemented.

Validation

  • PYTHONPATH=src python3 -m unittest discover -s tests
  • python3 -m compileall -q src tests examples
  • Isolated Linux wheel build: python3 -m pip wheel . --no-deps -w /tmp/tachyaudio-wheel
  • Wheel-installed Linux null-device duplex smoke test: create, write silence, start, read 128 input frames, stats, close.
  • Real Linux PipeWire/PulseAudio explicit-device duplex smoke test: create, write silence, start, read 256 input frames, stats, close.
  • Previous local Core Audio duplex smoke test: create, write silence, start, read 64 input frames, stats, close.

Continues #4.

@iancharest iancharest marked this pull request as ready for review June 12, 2026 14:40
@iancharest iancharest merged commit e6caa0d into main Jun 12, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant