Skip to main content

Control JACK server with Python

Project description

Test

Control JACK audio server with Python. Can be used as replacement for jackd for more robust configuration, for example, when using jack package.

Installation

pip install jack_server

Also you need to have jackserver library on your machine, it comes with JACK2. I had problems with apt-package on Ubuntu (jackd2), if you do too, compile jack yourself.

Usage

🎛 jack_server.Server

On server creation you can specify some parameters:

import jack_server

server = jack_server.Server(
    name="myfancyserver",
    sync=True,
    realtime=False,
    driver="coreaudio",
    device="BuiltInSpeakerDevice",
    rate=48000,
    period=1024,
    # nperiods=2  # Work only with `alsa` driver
)
server.start()

input()

They are actually an equivalent of jackd flags:

  • -n, --name to name,
  • -S, --sync to sync,
  • -R, --realtime, -r, --no-realtime to realtime,
  • -d to driver,

And driver arguments:

  • -d, --device to device,
  • -r, --rate to rate,
  • -p, --period to period,

start(self) -> None

Open and start the server. All state controlling methods are idempotent.

stop(self) -> None

Stop and close server.

driver: jack_server.Driver

Selected driver.

name: str

Actual server name. It is property that calls C code, so you can actually set the name.

sync: bool

Whether JACK runs in sync mode. Useful when you`re trying to send and receive multichannel audio.

realtime: bool

Whether JACK should start in realtime mode.

params: dict[str, jack_server.Parameter]

Server parameters mapped by name.

💼 jack_server.Driver

Driver (JACK backend), can be safely changed before server is started. Not supposed to be created by user code.

name: str

Driver name, read-only.

device: str

Selected device.

rate: jack_server.SampleRate

Sampling rate.

period: int

Buffer size.

nperiods: int

Number of periods. 2 is right for motherboard, PCI, PCI-X, etc.; 3 for USB (source).

Can be helpful when tailoring performance on jittery systems.

params: dict[str, jack_server.Parameter]

Driver parameters mapped by name.

📻 jack_server.SampleRate

Valid sampling rate, 44100 or 48000.

🔻 jack_server.Parameter

Not supposed to be created by user code.

name: str

Read-only verbose name of parameter.

value: int | str | bytes | bool

Value of the parameter, can be changed.

❗️ jack_server.set_info_function(callback: Callable[[str], None] | None) -> None

Set info output handler. By default JACK does is itself, i. e. output is being printed in stdout.

‼️ jack_server.set_error_function(callback: Callable[[str], None] | None) -> None

Set error output handler. By default JACK does is itself, i. e. output is being printed in stderr.

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

jack_server-0.2.0.tar.gz (7.9 kB view details)

Uploaded Source

Built Distribution

jack_server-0.2.0-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

File details

Details for the file jack_server-0.2.0.tar.gz.

File metadata

  • Download URL: jack_server-0.2.0.tar.gz
  • Upload date:
  • Size: 7.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for jack_server-0.2.0.tar.gz
Algorithm Hash digest
SHA256 cd1838510cef2275110bf39c85faecbd24462c80b8c119c8d24b701e8285ad61
MD5 fab63aff92a320bb5661b8bcefb2c0d1
BLAKE2b-256 47c255f6b52c7fdfbbf06f84c13c23f0d0ae9bb56e23749fca27b807a0c3909c

See more details on using hashes here.

File details

Details for the file jack_server-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: jack_server-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 8.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for jack_server-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bc7e263c714377f58b4b75bc7546e75c916e07c1dc3a9e9175657b54b84a5bc2
MD5 41beffd5bd04a6bea30f4bd7032c4878
BLAKE2b-256 6a11804a6a2e5a2ef0890d19f00a4e709942e1f1ff7494ff9d38241f528a4ede

See more details on using hashes here.

Supported by

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