Control JACK server with Python
Project description
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
toname
,-S
,--sync
tosync
,-R
,--realtime
,-r
,--no-realtime
torealtime
,-d
todriver
,
And driver arguments:
-d
,--device
todevice
,-r
,--rate
torate
,-p
,--period
toperiod
,
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | cd1838510cef2275110bf39c85faecbd24462c80b8c119c8d24b701e8285ad61 |
|
MD5 | fab63aff92a320bb5661b8bcefb2c0d1 |
|
BLAKE2b-256 | 47c255f6b52c7fdfbbf06f84c13c23f0d0ae9bb56e23749fca27b807a0c3909c |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | bc7e263c714377f58b4b75bc7546e75c916e07c1dc3a9e9175657b54b84a5bc2 |
|
MD5 | 41beffd5bd04a6bea30f4bd7032c4878 |
|
BLAKE2b-256 | 6a11804a6a2e5a2ef0890d19f00a4e709942e1f1ff7494ff9d38241f528a4ede |