Skip to main content

A package to add fully featured OSC support to python

Project description

PyOSC

Python library to support OSC (Open Sound Control).

About the Project

I had issues getting the support I needed out of any of the other packages, so I decided to build my own from scratch. I wanted something that was simple to use, and handled OSC peers in a way that makes sense to me, given that most libruaryies try and apply a client server model that doesn't really exist in OSC. I also wanted to support both UDP and TCP transport protocols, as well as both OSC version 1.0 and 1.1. I wanted to make sure the library was flexible enough for me to work the way I wanted to work, and that it would be easy to treat OSC more as an API, than as a messaging protocol.

Features

  • Support for both UDP and TCP transport protocols
  • Flexible message handling with customizable handlers
  • Support for both OSC version 1.0 and 1.1
  • Background processing of incoming messages to avoid blocking the main thread
  • Simple API for sending OSC messages to remote hosts

Installation

You can install PyOSC using pip:

pip install pyopensoundcontrol

or when using poetry:

poetry add pyopensoundcontrol

Documentation

The documentation is currently hosted here, with the source files located inside the docs directory in this repository should you want to contribute to it or run it locally.

Bugs and Issues

If you encounter any bugs or issues, please report them on the GitHub Issues page. Make sure to include a clear description of the problem, steps to reproduce it, and any relevant code snippets or error messages.

Contributing

Contributions are welcome! If you would like to contribute to the project, please follow these steps:

  1. Fork the repository and create a new branch for your feature or bug fix.
  2. Make your changes and ensure that they are well-documented and tested.
  3. Submit a pull request with a clear description of your changes and why they are needed.
  4. The maintainers will review your pull request and provide feedback or merge it if it meets the project's standards.
  5. Please read the CONTRIBUTING.md file for more detailed guidelines on contributing to the project.

Roadmap

See ROADMAP.md for the current roadmap and upcoming features

Dependencies and Thank yous

  • oscparser - A pure Python OSC message parser that supports both OSC 1.0 and 1.1 formats. This library was written by a friend of mine specifically for this project to ensure we have a reliable and flexible OSC parsing solution that meets our needs.
  • pytest - A testing framework for Python that makes it easy to write simple and scalable test cases.
  • socket - A built-in Python library for low-level network communication, used for sending and receiving OSC messages over UDP and TCP.
  • threading - A built-in Python library for creating and managing threads, used to handle incoming OSC messages without blocking the main thread.
  • typing - A built-in Python library that provides support for type hints, used to improve code readability and maintainability.
  • select - A built-in Python library that provides access to the select() function, used for monitoring multiple file descriptors (sockets) for events such as incoming data.
  • Material for MKDocs - A modern and responsive theme for MkDocs, used to create the documentation for this project.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyopensoundcontrol-1.1.0rc4.tar.gz (18.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyopensoundcontrol-1.1.0rc4-py3-none-any.whl (11.3 kB view details)

Uploaded Python 3

File details

Details for the file pyopensoundcontrol-1.1.0rc4.tar.gz.

File metadata

  • Download URL: pyopensoundcontrol-1.1.0rc4.tar.gz
  • Upload date:
  • Size: 18.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyopensoundcontrol-1.1.0rc4.tar.gz
Algorithm Hash digest
SHA256 6b7d33ea8b68f5fbd8a25abc3e9a2b7a6a734e354f5d67953f3db3d0e2334b15
MD5 242f442ca350327b72c4d44f568e7733
BLAKE2b-256 fa129a536893f04f64006e5c320c1490ce6e0ad5436f4408b1539824458c1bbb

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyopensoundcontrol-1.1.0rc4.tar.gz:

Publisher: publish.yml on Theatre-Tools/PyOSC

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyopensoundcontrol-1.1.0rc4-py3-none-any.whl.

File metadata

File hashes

Hashes for pyopensoundcontrol-1.1.0rc4-py3-none-any.whl
Algorithm Hash digest
SHA256 d0f2e869b5ba01e54455a7c800dc52765c42fa4ae1ad72bc1f21b8d4bf07a836
MD5 88e39d4e2a7dd62ece58f08657fd4c7f
BLAKE2b-256 c345f8ab9683c97a49037cbedd76b1cbe2a111a59fde3a41e76692091a1f0eb2

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyopensoundcontrol-1.1.0rc4-py3-none-any.whl:

Publisher: publish.yml on Theatre-Tools/PyOSC

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page