Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 24 additions & 34 deletions examples/chatty_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,20 +10,19 @@
from __future__ import print_function # only needed for Python 2.x
import jack

print("setting error/info functions")


@jack.set_error_function
def error(msg):
print("Error:", msg)


@jack.set_info_function
def info(msg):
print("Info:", msg)


print("setting error/info functions")
jack.set_error_function(error)
jack.set_info_function(info)


print("starting chatty client")

client = jack.Client("Chatty-Client")
Expand All @@ -39,71 +38,62 @@ def info(msg):
print("registering callbacks")


def shutdown(status, reason, userdata):
@client.set_shutdown_callback
def shutdown(status, reason):
print("JACK shutdown!")
print("status:", status)
print("reason:", reason)

client.set_shutdown_callback(shutdown)


def freewheel(starting, userdata):
@client.set_freewheel_callback
def freewheel(starting):
print(["stopping", "starting"][starting], "freewheel mode")

client.set_freewheel_callback(freewheel)


def blocksize(blocksize, userdata):
@client.set_blocksize_callback
def blocksize(blocksize):
print("setting blocksize to", blocksize)
return jack.SUCCESS

client.set_blocksize_callback(blocksize)


def samplerate(samplerate, userdata):
@client.set_samplerate_callback
def samplerate(samplerate):
print("setting samplerate to", samplerate)
return jack.SUCCESS

client.set_samplerate_callback(samplerate)


def client_registration(name, register, userdata):
@client.set_client_registration_callback
def client_registration(name, register):
print("client", repr(name), ["unregistered", "registered"][register])

client.set_client_registration_callback(client_registration)


def port_registration(port, register, userdata):
@client.set_port_registration_callback
def port_registration(port, register):
print(repr(port), ["unregistered", "registered"][register])

client.set_port_registration_callback(port_registration)


def port_connect(a, b, connect, userdata):
@client.set_port_connect_callback
def port_connect(a, b, connect):
print(["disconnected", "connected"][connect], a, "and", b)

client.set_port_connect_callback(port_connect)


def port_rename(port, old, new, userdata):
@client.set_port_rename_callback
def port_rename(port, old, new):
print("renamed", port, "from", repr(old), "to", repr(new))
return jack.SUCCESS

client.set_port_rename_callback(port_rename)


def graph_order(userdata):
@client.set_graph_order_callback
def graph_order():
print("graph order changed")
return jack.SUCCESS

client.set_graph_order_callback(graph_order)


def xrun(userdata):
@client.set_xrun_callback
def xrun():
print("xrun; delay", client.xrun_delayed_usecs, "microseconds")
return jack.SUCCESS

client.set_xrun_callback(xrun)

print("activating JACK")
with client:
Expand Down
5 changes: 2 additions & 3 deletions examples/midi_chords.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@
outport = client.midi_outports.register("output")


def callback(frames, userdata):
@client.set_process_callback
def process(frames):
outport.clear_buffer()
for offset, indata in inport.incoming_midi_events():
# Note: This may raise an exception:
Expand All @@ -33,8 +34,6 @@ def callback(frames, userdata):
outport.write_midi_event(offset, (status, pitch + i, vel))
return jack.CALL_AGAIN

client.set_process_callback(callback)

with client:
print("#" * 80)
print("press Return to quit")
Expand Down
5 changes: 2 additions & 3 deletions examples/midi_monitor.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,14 @@
port = client.midi_inports.register("input")


def callback(frames, userdata):
@client.set_process_callback
def process(frames):
for offset, data in port.incoming_midi_events():
# TODO: use ringbuffer
print("{0}: 0x{1}".format(client.last_frame_time + offset,
binascii.hexlify(data).decode()))
return jack.CALL_AGAIN

client.set_process_callback(callback)

with client:
print("#" * 80)
print("press Return to quit")
Expand Down
9 changes: 4 additions & 5 deletions examples/thru_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,23 +41,22 @@
event = threading.Event()


def process(frames, userdata):
@client.set_process_callback
def process(frames):
assert len(client.inports) == len(client.outports)
assert frames == client.blocksize
for i, o in zip(client.inports, client.outports):
o.get_buffer()[:] = i.get_buffer()
return jack.CALL_AGAIN

client.set_process_callback(process)


def shutdown(status, reason, userdata):
@client.set_shutdown_callback
def shutdown(status, reason):
print("JACK shutdown!")
print("status:", status)
print("reason:", reason)
event.set()

client.set_shutdown_callback(shutdown)

# create two port pairs
for number in 1, 2:
Expand Down
Loading