Skip to content

Control JACK audio server with Python

License

Notifications You must be signed in to change notification settings

kleblackford/jack_server

 
 

Repository files navigation

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,
)
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.

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.

About

Control JACK audio server with Python

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%