Ardour as tempo master for Hydrogen

Hi all.

Yet another topic about ardour/hydrogen jack sync.

I want to use ardour as tempo master. When I start/stop playing from either ardour or hydrogen, both softwares play. However, Hydrogen ignores the tempo set in ardour and uses his own. This used to work (hydrogen would ignore his tempo and follow ardour tempo) but I can’t seem to get it to work anymore.

Config (approx translation is mine)

ardour:

  • External sync
    – External timecode source: JACK
  • Session
    – Ardour is JACK master (provides bar|time|beat and others to JACK)
    I do have the rectangle button on the left green “JACK” rather than grey “Int.”.

Hydrogen:

  • Jack transport active
  • Jack-Time-Master active

I believe I went through all config menus and tried everything. I can’t tell whether this is an issue in Hydrogen or in JACK but I’d say ardour because I think I upgraded since last time it worked while I’m pretty sure Hydrogen version is unchanged.

Ardour 5.12 (Debian testing)
Hydrogen 0.9.7

Thanks for any hint.

Jack doesn’t provide tempo sync(It provides sample accurate sync, but that is completely independent of musical time), you need to use MIDI Clock Sync for what you want I believe. Sadly I don’t have a good answer for you on how to set that up in Hydrogen.

     Seablade

JACK does provide tempo information.

The only things it does not do:

  • rationally deal with a tempo change in the middle of a process cycle
  • share a tempo map, allow clients to anticipate changes (this would require agreement/definition of what a tempo map is and how to represent it)

@paul My mistake, I didn’t remember jack sync providing any meter/tempo info.

   Seablade

Thank you for your answers. Indeed it used to work as I described.

Is there anything I could have done wrong in the configuration? Anything else I should check?

I justed tested it here with Ardour 5.12 and Hydrogen 0.9.2 on Debian and it works fine. H2 picks up Ardour’s tempo as expected.

Oh, thank you paul for trying.

I checked again tonight with a new hydrogen profile (mv ~/.hydrogen ~/.hydrogen_bak). It worked a few times, maybe not the first time, and not reliably.

I tried to investigate by launching both Ardour and H2 from a terminal (I don’t know how to get a more verbose output from Ardour):

ardour5 > test_ardour.log  2>&1
hydrogen -VDebug > test_hydrogen.log  2>&1

I think I managed to find a way to reliably screw it up and get it back to work.

Starting from a state where things are working (Ardour just set H2 tempo), in H2, enable Jack-Time-Master (click J.Master). H2 does not follow tempo changes anymore. Disable it (click again). Then H2 still does not follow while I believe it should. In Ardour session properties, the “Ardour is Jack master (provides bar|beat|tempo)” checkbox is still checked. Uncheck it then check it back. Things work again. I tried that a few times and it seems to be reproducible.

When tempo change is successful, I can see such lines in H2 logs.

36m(W) JackOutput::setBpm setBpm: 80

I can’t tell where the problem comes from, Ardour not sending the instruction or H2 not receiving it.

Should I look in some jackd log? How can I do that?

If the procedure described above is functional, I can live with that workaround, but while I’m at it, I’d like to get to the bottom of it and perhaps help fixing what is broken (could be just some config issue on my side).