Skip to Content

Quits JACK immediately on 64/4, 128/4...

8 replies [Last post]
peppo
Offline
Joined: 04/17/2010

Using qt4 dev branch, svn from 2009-03-25 14hrs gmt+1.
On ubuntu 9.04, jack 0.116.2 and ffado 2.0rc1.

I get good performance and latency with 64/4 or 128/4 with Ardour and such... but Hydrogen bails out on launch with these settings. I actually have to step it up to 512/4 to get it to start reliably, which gives a completely unacceptable latency.
I use 4 Periods/Buffer as this is a requirement for ffado to work properly.
Is there a workaround somehow, or is this a problem in h2?

mauser
Offline
Joined: 03/30/2010

Hi!

Have you build hydrogen with debug mode enabled? Debug mode should be disabled when run with low latencies. Is this a new behaviour or did older versions ( like 0.9.3) fail as well on that system?

Thanks,
Sebastian

peppo
Offline
Joined: 04/17/2010

0.9.3 did not run because of the SMP bug.
I've not build with debug.

Any other ideas?

mauser
Offline
Joined: 03/30/2010

Hm.. Does that even happen when you load a complete empty song without any plugins?? I can run hydrogen here with 128/4 on an ibm x31 (1.4ghz) with a crappy onboard soundcard without any problems, so i think it is not a general problem.

peppo
Offline
Joined: 04/17/2010

Empty song yes.
This is on a Vaio VGN-FW21M, 2.4ghz core duo, 4gb ram... so... I wonder if it's ffado?

mauser
Offline
Joined: 03/30/2010

You could try to start jack with alsa as the jackd backend (instead of ffado).

peppo
Offline
Joined: 04/17/2010

Yeah, that seems to work quite nicely.

Damn it. I wonder what ffado is doing wrong?

mauser
Offline
Joined: 03/30/2010

Hm i don't know, it's the first time that i hear about that issue. I'm using a firewire interface too, but with freebob. *Maybe* (and that's a very big maybe) ffado consumes so much cpu power that hydrogen is too slow to feed jack with data. Maybe you could ask on the ffado-mailing list for advice? And if you do so, please CC our development mailing list!

I'm really not sure what the role of hydrogen is in this crash..

peppo
Offline
Joined: 04/17/2010

Trying to get some debug data for ffado, and OF COURSE, when running jack with debug, hydrogen starts running.
However, didn't take long until it died:

(W) static int H2Core::LocalFileMng::readXmlInt(TiXmlNode*, const QString&, int, bool, bool) 'jack_track_output_mode' node not found
(W) static bool H2Core::LocalFileMng::readXmlBool(TiXmlNode*, const QString&, bool, bool) 'jack_ardour_transport_workaround' node not found
(W) static int H2Core::LocalFileMng::readXmlInt(TiXmlNode*, const QString&, int, bool, bool) 'countoffset' node not found
(W) static int H2Core::LocalFileMng::readXmlInt(TiXmlNode*, const QString&, int, bool, bool) 'playoffset' node not found
(W) static bool H2Core::LocalFileMng::readXmlBool(TiXmlNode*, const QString&, bool, bool) 'expandSongItem' node not found
(W) static bool H2Core::LocalFileMng::readXmlBool(TiXmlNode*, const QString&, bool, bool) 'expandPatternItem' node not found
(W) SongReader readSong Trying to load a song created with a different version of hydrogen.
(W) SongReader readSong Song [/usr/local/share/hydrogen/data/DefaultSong.h2song] saved with version 0.9.4-svn
(W) static QString H2Core::LocalFileMng::readXmlString(TiXmlNode*, const QString&, const QString&, bool, bool) 'license' node not found
(W) void H2Core::audioEngine_setSong(H2Core::Song*) Set song: Untitled Song
(W) JackOutput setBpm setBpm: 120
(W) JackOutput locate Calling jack_transport_locate(0)
(W) void H2Core::audioEngine_process_checkBPMChanged() Tempo change: Recomputing ticksize and frame position
(W) JackOutput updateTransportInfo Frame offset mismatch; triggering resync in 2 cycles
(W) static QString H2Core::LocalFileMng::readXmlString(TiXmlNode*, const QString&, const QString&, bool, bool) 'license' node not found
(W) AudioEngine try_lock trylock != 0. Lock in audioEngine_stopAudioDrivers
(W) AudioEngine try_lock trylock != 0. Lock in audioEngine_stopAudioDrivers
(W) AudioEngine try_lock trylock != 0. Lock in audioEngine_stopAudioDrivers
(W) AudioEngine try_lock trylock != 0. Lock in audioEngine_stopAudioDrivers
(W) AudioEngine try_lock trylock != 0. Lock in audioEngine_stopAudioDrivers
(W) AudioEngine try_lock trylock != 0. Lock in audioEngine_stopAudioDrivers
(W) AudioEngine try_lock trylock != 0. Lock in audioEngine_stopAudioDrivers
(W) AudioEngine try_lock trylock != 0. Lock in audioEngine_stopAudioDrivers
(W) AudioEngine try_lock trylock != 0. Lock in audioEngine_stopAudioDrivers
(W) AudioEngine try_lock trylock != 0. Lock in audioEngine_stopAudioDrivers
(W) AudioEngine try_lock trylock != 0. Lock in audioEngine_stopAudioDrivers
(W) AudioEngine try_lock trylock != 0. Lock in audioEngine_stopAudioDrivers
(W) AudioEngine try_lock trylock != 0. Lock in audioEngine_stopAudioDrivers
(W) JackOutput setBpm setBpm: 170
(W) void H2Core::audioEngine_process_checkBPMChanged() Tempo change: Recomputing ticksize and frame position
(W) JackOutput updateTransportInfo Frame offset mismatch; triggering resync in 2 cycles
(W) AudioEngine try_lock trylock != 0. Lock in audioEngine_stopAudioDrivers
(W) AudioEngine try_lock trylock != 0. Lock in audioEngine_stopAudioDrivers
(W) AudioEngine try_lock trylock != 0. Lock in audioEngine_stopAudioDrivers
(W) AudioEngine try_lock trylock != 0. Lock in audioEngine_stopAudioDrivers
(W) AudioEngine try_lock trylock != 0. Lock in audioEngine_stopAudioDrivers
(W) AudioEngine try_lock trylock != 0. Lock in audioEngine_stopAudioDrivers
(W) AudioEngine try_lock trylock != 0. Lock in audioEngine_stopAudioDrivers
(W) AudioEngine try_lock trylock != 0. Lock in audioEngine_stopAudioDrivers
(W) AudioEngine try_lock trylock != 0. Lock in audioEngine_stopAudioDrivers
(W) AudioEngine try_lock trylock != 0. Lock in audioEngine_stopAudioDrivers
(W) AudioEngine try_lock trylock != 0. Lock in audioEngine_stopAudioDrivers
(W) AudioEngine try_lock trylock != 0. Lock in audioEngine_stopAudioDrivers
(W) AudioEngine try_lock trylock != 0. Lock in audioEngine_stopAudioDrivers
(W) AudioEngine try_lock trylock != 0. Lock in audioEngine_stopAudioDrivers
(W) AudioEngine try_lock trylock != 0. Lock in audioEngine_stopAudioDrivers
(W) AudioEngine try_lock trylock != 0. Lock in audioEngine_stopAudioDrivers
(W) AudioEngine try_lock trylock != 0. Lock in audioEngine_stopAudioDrivers
(W) AudioEngine try_lock trylock != 0. Lock in audioEngine_stopAudioDrivers
(W) AudioEngine try_lock trylock != 0. Lock in audioEngine_stopAudioDrivers
(W) AudioEngine try_lock trylock != 0. Lock in audioEngine_stopAudioDrivers
(W) AudioEngine try_lock trylock != 0. Lock in audioEngine_stopAudioDrivers
(W) JackOutput setBpm setBpm: 170
(W) AudioEngine try_lock trylock != 0. Lock in audioEngine_startAudioDrivers
(W) void H2Core::audioEngine_process_checkBPMChanged() Tempo change: Recomputing ticksize and frame position
(W) JackOutput updateTransportInfo Frame offset mismatch; triggering resync in 2 cycles