trouble syncing Hydrogen to luppp

Support & discussion regarding DAWs and MIDI sequencers.

Moderators: MattKingUSA, khz

User avatar
Digital Larry
Established Member
Posts: 150
Joined: Thu Jan 09, 2014 5:25 am

trouble syncing Hydrogen to luppp

Post by Digital Larry »

Set luppp tempo to 121
luppp-tempo.png
luppp-tempo.png (8.76 KiB) Viewed 1570 times
Check QJackCtl status.
qjackctl.png
qjackctl.png (33.51 KiB) Viewed 1570 times
Set Hydrogen to internal 100 BPM.
hydrogen-100-internal.png
hydrogen-100-internal.png (7.55 KiB) Viewed 1570 times
Make sure luppp is "stopped" - the button at lower right should say "Play". Set Hydrogen to "Jack transport mode On". Now either Hydrogen or QJackCtl transport control Hydrogen. luppp ignores all that.

Pres "Play" on luppp. Hydrogen gets very unhappy and emits a buzz. Hydrogen's progress pointer is vibrating just after the first beat. Hydrogen's time readout is several hours in the past.
User avatar
Digital Larry
Established Member
Posts: 150
Joined: Thu Jan 09, 2014 5:25 am

Re: trouble syncing Hydrogen to luppp

Post by Digital Larry »

Screenshot, looks like I can only attach 3 images to a post.
hydrogen-is-freaking-out.png
hydrogen-is-freaking-out.png (46.7 KiB) Viewed 1570 times
User avatar
Linuxmusician01
Established Member
Posts: 1523
Joined: Mon Feb 23, 2015 2:38 pm
Location: Holland
Has thanked: 756 times
Been thanked: 134 times

Re: trouble syncing Hydrogen to luppp

Post by Linuxmusician01 »

I can reproduce this error. I don't know exactly what Luppp is and what it does. I can't find any settings for it, it doesn't have a man page and I cannot find a manual on its homepage (only some technical document).

First I thought that it might be a problem arising from Hydrogen and Luppp both wanting to be the tempo transport master. But you've set that right (in Hydrogen) and so did I. It seems to me that Lupp always wants to be the transport master. After some fiddling with starting and stopping Hydrogen first, then Luppp first, pressing the rewind button in Qjackctl etc. I got it working. But it's very fiddly.

And I still have the old Hydrogen problem. When I use Hydrogen as a standalone application then it will play every drum sample/beat properly. But when I start it via another app (like Luppp) it skips a beat. I just can't get Hydrogen to play nice w/ other music production software. So I don't know if its Hydrogen or Luppp... I'm very sorry for the developer of Hydrogen, but I'd never ever use it.
User avatar
Digital Larry
Established Member
Posts: 150
Joined: Thu Jan 09, 2014 5:25 am

Re: trouble syncing Hydrogen to luppp

Post by Digital Larry »

Linuxmusician01 wrote:I can reproduce this error. I don't know exactly what Luppp is and what it does. I can't find any settings for it, it doesn't have a man page and I cannot find a manual on its homepage (only some technical document).
Thanks for taking some time to look at this. :D I'm interested to figure out how to see all of the JACK messages that luppp generates. Is there some utility that shows everything? the QJackCtl Messages window just shows "Transport Start" "Transport Rewind" etc. If I can figure this out, maybe I can even look at the part of the luppp code doing JACK Transport and fix it (big maybe, but still I can try).

I couldn't figure out luppp at first either. It's a looper based on an Ableton Live rectangular clip/track/scene layout. It actually looks very close to what I would consider an Ideal solution for my loop recording needs. However, as apparently with many other things in the computer recording world (I'm not even picking on Linux) THERE'S JUST THIS ONE THING WRONG WITH IT that makes it difficult or impossible to use.

I started off printing a 1-bar WAV file from Hydrogen then loading it into the first clip of luppp. Then I could play that and record subsequent clips in sync with the first (although record quantization is not adjustable as on Sooperloooper). In fact I would still be using Sooperlooper if it didn't crash 6 times a day in my recent testing. I know that the developer's forum is still active but you can tell that the guy is not putting any effort into it at this point. I don't even say that to blame or shame the guy, I totally get it.

Luppp offers a primitive arrangement capability a'la Live which is totally lacking in Sooperlooper. Of course, I own Live and SONAR Professional and Ardour and all that. Even though I know how to use them I don't like using the mouse when the guitar is in my hand. I also find the visual complexity of using them destroys my creative flow. I wish it didn't, but it does. I got many more ideas captured when I went to the extreme opposite, a looping pedal. That made it very easy to get ideas down. However it has a bunch of limitations too. So I keep searching.

I was able to get Sooperlooper and Hydrogen to sync "pretty well". The goal being to allow me to develop a MIDI drum part along with the other clips rather than just starting with a "completed" drum loop that imposes the (usually wrong) feeling on the rest of everything.

The reason I am exploring these software looper solutions is to try to optimize my own creative workflow rather than constantly forcing myself into the mold of whatever program I am using. The modular approach of these Linux tools is actually quite helpful in that regard. I just gotta get them to work.
Linuxmusician01 wrote: And I still have the old Hydrogen problem. When I use Hydrogen as a standalone application then it will play every drum sample/beat properly. But when I start it via another app (like Luppp) it skips a beat. I just can't get Hydrogen to play nice w/ other music production software. So I don't know if its Hydrogen or Luppp... I'm very sorry for the developer of Hydrogen, but I'd never ever use it.
I've just been using Hydrogen with Sooperlooper in the last week and actually got it working "pretty well". No beat skipping like you describe. Hydrogen in Jack Transport and Timing Master ON mode. SL set for Jack/Host. THAT part works better than luppp for recording. However, luppp did not crash 6 times... it did not crash at all. Programs crashing in the middle of my struggles to be mildly creative is very discouraging!
Last edited by Digital Larry on Sat Sep 07, 2019 4:00 pm, edited 1 time in total.
merlyn
Established Member
Posts: 1392
Joined: Thu Oct 11, 2018 4:13 pm
Has thanked: 168 times
Been thanked: 247 times

Re: trouble syncing Hydrogen to luppp

Post by merlyn »

In QjackCtl you can tick 'verbose messages' in Settings > Parameters
User avatar
Digital Larry
Established Member
Posts: 150
Joined: Thu Jan 09, 2014 5:25 am

Re: trouble syncing Hydrogen to luppp

Post by Digital Larry »

merlyn wrote:In QjackCtl you can tick 'verbose messages' in Settings > Parameters
THANK YOU!!!! I might have figured it out eventually. :D
User avatar
Digital Larry
Established Member
Posts: 150
Joined: Thu Jan 09, 2014 5:25 am

Re: trouble syncing Hydrogen to luppp

Post by Digital Larry »

By the way, here is the luppp manual, to me it seems like it was not written by someone who understood it very well.

http://openavproductions.com/doc/luppp.html
User avatar
Linuxmusician01
Established Member
Posts: 1523
Joined: Mon Feb 23, 2015 2:38 pm
Location: Holland
Has thanked: 756 times
Been thanked: 134 times

Re: trouble syncing Hydrogen to luppp

Post by Linuxmusician01 »

@Digital Larry: I hear you. Working DAW-less is 100 times better than with a DAW. So Luppp is a looper, eh? Good to know. One of its users or developers might consider writing a manual [edit: I hadn't read your reply above when I was writing this] or make it clear that it works the same as Ableton Rectangular so you can read that manual.

Anyway, if Hydrogen never skips a beat for any instrument you should use it! Is the only problem that you cannot start Hydrogen via Luppp? Then I advice you to systematically experiment. That is: start both, set Hydrogen to not be the transport master. Make sure the're all stopped (including Jackctl). Then set a tempo in Lupp and press start. Try to press one of the transport buttons of Qjackctl etc. etc. Can you really not start Hydrogen w/ Luppp?

If you want to see more Jack or eror messages then try to start all applications from the command line. Most applications print messages on the command line. Also, the "Messages" window af Qjackctl might be of help. I do not know of a separate application that shows (a lot of Jack) messages. You might want to start Jack from the command line too. I always start Jack from the command line like this:

Code: Select all

jackd -d alsa --device hw:0
(use hw:1 instaed of hw:0 for your second audio card etc.)

Good luck with experimenting! :)
User avatar
Linuxmusician01
Established Member
Posts: 1523
Joined: Mon Feb 23, 2015 2:38 pm
Location: Holland
Has thanked: 756 times
Been thanked: 134 times

Re: trouble syncing Hydrogen to luppp

Post by Linuxmusician01 »

I got rif of the weird stutter thing after adjusting the tempo in Luppp before starting it.

[edit] Nope. It hangs again...

[edit] Might work if one deactivates "Loop song" in Hydrogen...

[edit] Looks like it hangs if you select a tempo in Luppp that you've used before, like: just a second ago...

[edit] If I use Qtractor as the master for the tempo I've no problems. Hydrogen still seems to miss a beat every now and then though... Or replaces the beat (bass drum) partly with some sort of noise...
User avatar
Digital Larry
Established Member
Posts: 150
Joined: Thu Jan 09, 2014 5:25 am

Re: trouble syncing Hydrogen to luppp

Post by Digital Larry »

Linuxmusician01 wrote:Hydrogen still seems to miss a beat every now and then though... Or replaces the beat (bass drum) partly with some sort of noise...
I had this problem when I was using Fedora 30 with just a regular kernel (was trying Planet CCRMA). If I pick up the Hydrogen window and drag it around the screen, the sound deteriorates completely. Getting the RT kernel installed there really helped. Then it locked up completely. So I went to Ubuntu Studio with "low-latency" if not the RT kernel, and Hydrogen is behaving itself. Are you using an RT or LL kernel?

Anyway, I decided to go all command line (I actually am somewhat of an embedded Linux nerd).

Code: Select all

tail -f ~/.log/jack/jackdbus.log | grep -v SocketServerChannel
Filters out a lot of the every-ten-seconds messages and lets me focus on the Jack Transport stuff.

Starting off:
QJackCtl and Hydrogen are running. Hydrogen is stopped.
Hydrogen is set for Jack Transport on, Jack Timing Master off.

Click on QJackCtl "Play":

Code: Select all

Sat Sep  7 09:07:50 2019: Jack: transport command: Transport start
Sat Sep  7 09:07:50 2019: Jack: transport stopped ==> starting frame = 2724608
Sat Sep  7 09:07:50 2019: Jack: MakeAllStartingLocating ref = 2
Sat Sep  7 09:07:50 2019: Jack: MakeAllStartingLocating ref = 3
Sat Sep  7 09:07:50 2019: Jack: SyncTimeout fSyncTimeout = 10000000 fSyncTimeLeft = 1875
Sat Sep  7 09:07:50 2019: Jack: CheckAllRolling
Sat Sep  7 09:07:50 2019: Jack: transport starting ==> rolling fSyncTimeLeft = 1874
Hydrogen is playing.

Click on QJackCtl "Play" (again, to stop):

Code: Select all

Sat Sep  7 09:08:45 2019: Jack: transport command: Transport stop
Sat Sep  7 09:08:45 2019: Jack: transport rolling ==> stopped
Sat Sep  7 09:08:45 2019: Jack: MakeAllStopping ref = 2
Sat Sep  7 09:08:45 2019: Jack: MakeAllStopping ref = 3
Sat Sep  7 09:08:45 2019: Jack: MakeAllStopping ref = 4
Sat Sep  7 09:08:45 2019: Jack: MakeAllStopping ref = 6

Hydrogen stops.

Press "Play" on Hydrogen:

Code: Select all

Sat Sep  7 09:09:40 2019: Jack: transport command: Transport start
Sat Sep  7 09:09:40 2019: Jack: transport stopped ==> starting frame = 5393920
Sat Sep  7 09:09:40 2019: Jack: MakeAllStartingLocating ref = 2
Sat Sep  7 09:09:40 2019: Jack: MakeAllStartingLocating ref = 3
Sat Sep  7 09:09:40 2019: Jack: MakeAllStartingLocating ref = 4
Sat Sep  7 09:09:40 2019: Jack: MakeAllStartingLocating ref = 6
Sat Sep  7 09:09:40 2019: Jack: SyncTimeout fSyncTimeout = 10000000 fSyncTimeLeft = 1875
Sat Sep  7 09:09:40 2019: Jack: CheckAllRolling
Hydrogen is playing.

Press "Play/pause" on Hydrogen:

Code: Select all

Sat Sep  7 09:10:30 2019: Jack: transport command: Transport stop
Sat Sep  7 09:10:30 2019: Jack: transport rolling ==> stopped
Sat Sep  7 09:10:30 2019: Jack: MakeAllStopping ref = 2
Sat Sep  7 09:10:30 2019: Jack: MakeAllStopping ref = 3
Sat Sep  7 09:10:30 2019: Jack: MakeAllStopping ref = 4
Sat Sep  7 09:10:30 2019: Jack: MakeAllStopping ref = 6
Hydrogen is paused.

Press "Stop" on Hydrogen:

Code: Select all

Sat Sep  7 09:11:13 2019: Jack: New pos = 0
Sat Sep  7 09:11:13 2019: Jack: transport stopped ==> stopped (locating) frame = 0
Sat Sep  7 09:11:13 2019: Jack: MakeAllLocating ref = 2
Sat Sep  7 09:11:13 2019: Jack: MakeAllLocating ref = 3
Sat Sep  7 09:11:13 2019: Jack: MakeAllLocating ref = 4
Sat Sep  7 09:11:13 2019: Jack: MakeAllLocating ref = 6
Time readout in QJackCtl and Hydrogen goes to 00:00:00, still stopped.

All this is as expected so far.

Now, starting luppp (that is, running the program):
A whole ton of initialization stuff spews out. Here's the very end of it. I'll dig in deeper here if it seems warranted.

Code: Select all

Sat Sep  7 09:12:22 2019: Jack: JackDriver::ClientNotify ref = 1 driver = freewheel name = freewheel notify = 18
Sat Sep  7 09:12:22 2019: Jack: JackExternalClient::ClientNotify ref = 4 client = a2j name = a2j notify = 18
Sat Sep  7 09:12:22 2019: Jack: JackExternalClient::ClientNotify ref = 5 client = Luppp name = Luppp notify = 18
Sat Sep  7 09:12:22 2019: Jack: JackExternalClient::ClientNotify ref = 6 client = Hydrogen name = Hydrogen notify = 18
Sat Sep  7 09:12:22 2019: Jack: JackDriver::ClientNotify ref = 1 driver = freewheel name = freewheel notify = 18
Sat Sep  7 09:12:22 2019: Jack: JackDriver::ClientNotify ref = 1 driver = freewheel name = freewheel notify = 18
Sat Sep  7 09:12:22 2019: Jack: JackExternalClient::ClientNotify ref = 6 client = Hydrogen name = Hydrogen notify = 18
Sat Sep  7 09:12:22 2019: Jack: JackExternalClient::ClientNotify ref = 5 client = Luppp name = Luppp notify = 18
Sat Sep  7 09:12:22 2019: Jack: JackExternalClient::ClientNotify ref = 4 client = a2j name = a2j notify = 18
Sat Sep  7 09:12:22 2019: Jack: JackDriver::ClientNotify ref = 1 driver = freewheel name = freewheel notify = 18
Sat Sep  7 09:12:22 2019: Jack: JackEngine::ClientNotify: no callback for notification = 4
Sat Sep  7 09:12:22 2019: Jack: JackEngine::ClientNotify: no callback for notification = 4
Sat Sep  7 09:12:22 2019: Jack: JackClient::ClientNotify ref = 2 name = dbusapi notify = 4
Sat Sep  7 09:12:22 2019: Jack: JackClient::kGraphOrderCallback
Sat Sep  7 09:12:22 2019: Jack: JackExternalClient::ClientNotify ref = 3 client = qjackctl name = qjackctl notify = 4
Sat Sep  7 09:12:22 2019: Jack: JackEngine::ClientNotify: no callback for notification = 4
Sat Sep  7 09:12:22 2019: Jack: JackEngine::ClientNotify: no callback for notification = 4
Sat Sep  7 09:12:22 2019: Jack: JackEngine::ClientNotify: no callback for notification = 4
I loaded a prerecorded session in luppp.

The transport says "Stop" but it is not currently running as I haven't triggered a scene.

Triggering the scene. Loops play in luppp but nothing happened over Jack at this point.

Press luppp "Stop" button. Nothing happens on Jack.

Press luppp "Play" button. Hydrogen buzzes.

Code: Select all

Sat Sep  7 09:17:16 2019: Jack: transport command: Transport start
Sat Sep  7 09:17:16 2019: Jack: transport stopped ==> starting frame = 12725760
Sat Sep  7 09:17:16 2019: Jack: MakeAllStartingLocating ref = 2
Sat Sep  7 09:17:16 2019: Jack: MakeAllStartingLocating ref = 3
Sat Sep  7 09:17:16 2019: Jack: MakeAllStartingLocating ref = 4
Sat Sep  7 09:17:16 2019: Jack: MakeAllStartingLocating ref = 5
Sat Sep  7 09:17:16 2019: Jack: MakeAllStartingLocating ref = 6
Sat Sep  7 09:17:16 2019: Jack: SyncTimeout fSyncTimeout = 10000000 fSyncTimeLeft = 1875
Sat Sep  7 09:17:16 2019: Jack: CheckAllRolling
Sat Sep  7 09:17:16 2019: Jack: transport starting ==> rolling fSyncTimeLeft = 1874
Press luppp "stop" button:
Hydrogen buzzing stops.

Code: Select all

Sat Sep  7 09:17:20 2019: Jack: transport command: Transport stop
Sat Sep  7 09:17:20 2019: Jack: transport rolling ==> stopped
Sat Sep  7 09:17:20 2019: Jack: MakeAllStopping ref = 2
Sat Sep  7 09:17:20 2019: Jack: MakeAllStopping ref = 3
Sat Sep  7 09:17:20 2019: Jack: MakeAllStopping ref = 4
Sat Sep  7 09:17:20 2019: Jack: MakeAllStopping ref = 5
Sat Sep  7 09:17:20 2019: Jack: MakeAllStopping ref = 6

Press QJackCtl "Play" button. Hydrogen buzzes.

Code: Select all

Sat Sep  7 09:19:20 2019: Jack: transport command: Transport start
Sat Sep  7 09:19:20 2019: Jack: transport stopped ==> starting frame = 12887040
Sat Sep  7 09:19:20 2019: Jack: MakeAllStartingLocating ref = 2
Sat Sep  7 09:19:20 2019: Jack: MakeAllStartingLocating ref = 3
Sat Sep  7 09:19:20 2019: Jack: MakeAllStartingLocating ref = 4
Sat Sep  7 09:19:20 2019: Jack: MakeAllStartingLocating ref = 5
Sat Sep  7 09:19:20 2019: Jack: CheckAllRolling
Sat Sep  7 09:19:20 2019: Jack: transport starting ==> rolling fSyncTimeLeft = 1874
Press QJackCtl "stop" button:
Hydrogen buzzing stops.

Code: Select all

Sat Sep  7 09:19:23 2019: Jack: transport command: Transport stop
Sat Sep  7 09:19:23 2019: Jack: transport rolling ==> stopped
Sat Sep  7 09:19:23 2019: Jack: MakeAllStopping ref = 2
Sat Sep  7 09:19:23 2019: Jack: MakeAllStopping ref = 3
Sat Sep  7 09:19:23 2019: Jack: MakeAllStopping ref = 4
Sat Sep  7 09:19:23 2019: Jack: MakeAllStopping ref = 5
Sat Sep  7 09:19:23 2019: Jack: MakeAllStopping ref = 6
Nothing is jumping out at me as obviously different between the good and bad cases. If I turn Jack transport OFF in Hydrogen though, it doesn't buzz. Obviously it doesn't sync either.
User avatar
Digital Larry
Established Member
Posts: 150
Joined: Thu Jan 09, 2014 5:25 am

Re: trouble syncing Hydrogen to luppp

Post by Digital Larry »

Linuxmusician01 wrote: If I use Qtractor as the master for the tempo I've no problems. Hydrogen still seems to miss a beat every now and then though... Or replaces the beat (bass drum) partly with some sort of noise...
Well here's what I see now. Just running QTractor is sufficient to make Hydrogen stop buzzing and follow luppp's transport control and tempo changes. THAT is very cool, although incomprehensible. People smarter than me will say "of course".

But now, I am getting a glitch on the first bass drum hit that Hydrogen emits when the loop repeats. Every single time. It's not semi random as it was when I was using a plain kernel.
merlyn
Established Member
Posts: 1392
Joined: Thu Oct 11, 2018 4:13 pm
Has thanked: 168 times
Been thanked: 247 times

Re: trouble syncing Hydrogen to luppp

Post by merlyn »

I think there is a problem with JACK and looping.

I use Ardour and if I select JACK as the positional sync the loop button in Ardour is greyed out.

I'd guess if you put the bass drum on the 'and' of the first beat it wouldn't glitch.

As a workaround you could then find how far into the bar you have to push the bass drum to eliminate the glitch. It's possible to put the quantise or 'resolution' as Hydrogen calls it to 'off'. This might result in an acceptable workaround, or it might be noticeable and therefore unacceptable.
User avatar
Digital Larry
Established Member
Posts: 150
Joined: Thu Jan 09, 2014 5:25 am

Re: trouble syncing Hydrogen to luppp

Post by Digital Larry »

Wanting to remove Hydrogen from the equation, I installed Non Sequencer. When triggered from QTractor, it proceeds smoothly (I'm using a blank pattern for starters). When triggered from luppp, the "current location" indicator moves forward but frequently skips backwards a step. So I suspect that luppp is doing something weird with Jack clocks or location requests or something. It did not show up in my more detailed Jack log scan however.
User avatar
Digital Larry
Established Member
Posts: 150
Joined: Thu Jan 09, 2014 5:25 am

Re: trouble syncing Hydrogen to luppp

Post by Digital Larry »

merlyn wrote:I think there is a problem with JACK and looping.

I use Ardour and if I select JACK as the positional sync the loop button in Ardour is greyed out.

I'd guess if you put the bass drum on the 'and' of the first beat it wouldn't glitch.

As a workaround you could then find how far into the bar you have to push the bass drum to eliminate the glitch. It's possible to put the quantise or 'resolution' as Hydrogen calls it to 'off'. This might result in an acceptable workaround, or it might be noticeable and therefore unacceptable.
Yeah, I noticed that awhile back as well. I would be OK with apps using MIDI sync instead of Jack, but I can't tell if luppp has any MIDI sync capability. The documentation is very sparse :shock: .

This may not be a total deal breaker for me as I'm just using the drum machine to build up ideas at a low level against guitar loops prior to transfer to a DAW for other things. I could handle the glitch for live tracking since I could conceivably export a WAV track to take its place when I'm done messing with the pattern.
User avatar
Digital Larry
Established Member
Posts: 150
Joined: Thu Jan 09, 2014 5:25 am

Re: trouble syncing Hydrogen to luppp

Post by Digital Larry »

I tried luppp with Non Sequencer and it does something weird with the sync there too. Using Non Timeline instead of luppp, Non Sequencer behaves properly. However, I don't think Non TImeline does what I want it to do as regards looping.

I couldn't get much further with luppp as configuring a MIDI controller would require me to reverse engineer some existing examples (which are massive). Also I am not so sure I like the (unconfigurable) record sync setting of 1 measure. So I'm back to Sooperlooper for now. I just ran Sooperlooper, Hydrogen and Non Mixer for about an hour with no crashes, could be promising.

I like luppp's interface and arrangement possibilities but I'd need to get some clips recorded into it first which isn't happening without the MIDI footswitch. I was willing to consider the workaround of using a WAV clip rather than syncing to Hydrogen. Oh the wonders of the Linux music world. I will say that I got much further than when I tried last time and I think I will stick with Sooperlooper and Hydrogen as the base and see where I get to.
Post Reply