[pipewire-jack] Hydrogen transport issues: As slave outputs no sound, as master sends corrupted data
- PipeWire version: 0.3.70
- Distribution: Arch Linux
- Desktop Environment: GNOME
- Kernel version: 6.2.13-zen
Description of Problem:
NOTE: The problems below do not occur with a plain JACK server.
When running Hydrogen as transport slave, the output audio is gone.
When running Hydrogen as transport master, the JACK position struct has unusable values:
-
The bar
is just a constant 1, switching to 0 for a single tick -
The beat
has a similar issue, it's just -2 most of the time, occasionally flipping to 1 -
The tick
is always negative or 0 -
The bar_start_tick
is sometimes < 0
These are the values picked up by a simple Python JACK client:
{'usecs': 49088424042, 'frame_rate': 48000, 'frame': 16126976, 'bar': 1, 'beat': -2, 'tick': -30, 'bar_start_tick': 0.0, 'beats_per_bar': 4.0, 'beat_type': 4.0, 'ticks_per_beat': 1920.0, 'beats_per_minute': 120.0}
{'usecs': 49088445377, 'frame_rate': 48000, 'frame': 16128000, 'bar': 0, 'beat': 1, 'tick': 0, 'bar_start_tick': -7680.0, 'beats_per_bar': 4.0, 'beat_type': 4.0, 'ticks_per_beat': 1920.0, 'beats_per_minute': 120.0}
{'usecs': 49088466712, 'frame_rate': 48000, 'frame': 16129024, 'bar': 1, 'beat': -2, 'tick': -1900, 'bar_start_tick': 0.0, 'beats_per_bar': 4.0, 'beat_type': 4.0, 'ticks_per_beat': 1920.0, 'beats_per_minute': 120.0}
{'usecs': 49088488047, 'frame_rate': 48000, 'frame': 16130048, 'bar': 1, 'beat': -2, 'tick': -1879, 'bar_start_tick': 0.0, 'beats_per_bar': 4.0, 'beat_type': 4.0, 'ticks_per_beat': 1920.0, 'beats_per_minute': 120.0}
{'usecs': 49088509381, 'frame_rate': 48000, 'frame': 16131072, 'bar': 1, 'beat': -2, 'tick': -1860, 'bar_start_tick': 0.0, 'beats_per_bar': 4.0, 'beat_type': 4.0, 'ticks_per_beat': 1920.0, 'beats_per_minute': 120.0}
{'usecs': 49088530717, 'frame_rate': 48000, 'frame': 16132096, 'bar': 1, 'beat': -2, 'tick': -1840, 'bar_start_tick': 0.0, 'beats_per_bar': 4.0, 'beat_type': 4.0, 'ticks_per_beat': 1920.0, 'beats_per_minute': 120.0}
{'usecs': 49088552051, 'frame_rate': 48000, 'frame': 16133120, 'bar': 1, 'beat': -2, 'tick': -1819, 'bar_start_tick': 0.0, 'beats_per_bar': 4.0, 'beat_type': 4.0, 'ticks_per_beat': 1920.0, 'beats_per_minute': 120.0}
{'usecs': 49088573386, 'frame_rate': 48000, 'frame': 16134144, 'bar': 1, 'beat': -2, 'tick': -1800, 'bar_start_tick': 0.0, 'beats_per_bar': 4.0, 'beat_type': 4.0, 'ticks_per_beat': 1920.0, 'beats_per_minute': 120.0}
These are the values actually sent by Hydrogen:
[Hydrogen] [JACK transport] frame: 4607488, frame_rate: 48000, valid: 0x10, bar: 48, beat: 1, tick: 190, bar_start_tick: 9024, beats_per_bar: 4, beat_type: 4, ticks_per_beat: 192, beats_per_minute: 120, frame_time: 1.02509e-312, next_time: 4.63642e-310
[Hydrogen] [JACK transport] frame: 4607744, frame_rate: 48000, valid: 0x10, bar: 48, beat: 1, tick: 191, bar_start_tick: 9024, beats_per_bar: 4, beat_type: 4, ticks_per_beat: 192, beats_per_minute: 120, frame_time: 1.02509e-312, next_time: 4.63642e-310
[Hydrogen] [JACK transport] frame: 4608000, frame_rate: 48000, valid: 0x10, bar: 49, beat: 1, tick: 0, bar_start_tick: 9216, beats_per_bar: 4, beat_type: 4, ticks_per_beat: 192, beats_per_minute: 120, frame_time: 1.02509e-312, next_time: 4.63642e-310
[Hydrogen] [JACK transport] frame: 4608256, frame_rate: 48000, valid: 0x10, bar: 49, beat: 1, tick: 0, bar_start_tick: 9216, beats_per_bar: 4, beat_type: 4, ticks_per_beat: 192, beats_per_minute: 120, frame_time: 1.02509e-312, next_time: 4.63642e-310
How Reproducible:
Very.
Steps to Reproduce:
- Run Hydrogen through
pipewire
jack - Start the transport
- View the JACK position struct
Additional Info (as attachments):
-
pw-dump > pw-dump.log
: pw-dump.log