rncbc / qtractor

Qtractor - An Audio/MIDI multi-track sequencer
https://qtractor.org
GNU General Public License v2.0
509 stars 88 forks source link

Hydrogen out of sync #260

Open lpgasparotto opened 4 years ago

lpgasparotto commented 4 years ago

Hi, I was working on a project on which I used Hydrogen (as slave) for creating a drum track based on a bass audio track recorded with a click. I found Hydrogen played behind in a noticeable way. I exported the Hydrogen song as a WAV file and imported it as an audio track and the drums audio track was OK with the bass track so I decided to make Hydrogen and the drums WAV play together and the the delay was even more noticeable as a long "flam" effect on each sound. I did the same experiment with MuSE (3.1) and Ardour and I had the same issue with MuSE but Ardour did it perfectly, the conclusion is the problem is not related (or not exclusively) to Hydrogen, I was expecting Hydrogen fails always but it was OK with Ardour. Am I missing to configure something? Or is this a bug? Thank you very much in advance, Luis Pablo Gasparotto

suedwestlicht commented 4 years ago

Do you sync Hydrogen (Hydrogen plays patterns) or do you trigger single notes and have the midi clips in Qtractor?

In the latter case you might try the drmr plugin. It can load Hydrogen drumsets and you avoid the MIDI latency.

lpgasparotto commented 4 years ago

Do you sync Hydrogen (Hydrogen plays patterns) or do you trigger single notes and have the midi clips in Qtractor?

Hydrogen plays a song with several patterns, I feel very comfortable using Hydrogen for drum programming and just want to make it play in sync with WAV tracks in QTractor. I guess this is something related to latency compensation. Ardour smartly recognizes when to compensate and when to not. MusE has the same problem as QTractor with latency compensation enabled but plays in sync if it's disabled. Non Time Line has a clever approach, latency compensation is related to each track when something is recorded to that track then offsets the clip according to the values reported by Jack (periods, frames per period, input latency and output latency).

suedwestlicht commented 4 years ago

Latenc compensation is a name for different mechanism:

Qtractor does the latter per track and you can switch it off in the track's properties.

You can try to improve alignment when you feed Hydrogen's ausio output into Qtractor's master bus. You can concatenate several duplex buses. The "earlier" you feed a signal the more it's delayed (one jack buffer). I use this construct to align reverb:

tracks -> subgroup bus -> master bus tracks' aux send -> reverb bus -> master bus

So you could feed Hydrogen's out in "subgroup bus" or "master bus" and see the different latencies.