kmatheussen / radium

A graphical music editor. A next generation tracker.
http://users.notam02.no/~kjetism/radium/
GNU General Public License v2.0
835 stars 36 forks source link

Rather difficult to describe but kinda critical: Timing Problem #1345

Open Lykdraft opened 3 years ago

Lykdraft commented 3 years ago

Try to recreate: Add a delay (or any beat-synced effect) to a sound signal. At the SeqBlock boundaries it will go completely offsync for half a second, then some VSTs go into sync again, some don't (They go kinda back in sync, but with a beat-offset)

See picture to look at the spots where this is happening:

test

Then in the waveform Pic you can see what is happening:

testwawv

And in this mp3 you can hear what is happening.

testmp3.zip

In this case, it's just a delay but I think it showcases the problem quite well. Every plugin that requires host-side tempo sync will more or less glitch out at the same spots...

This might be a difficult problem to solve or not, I am not sure. But this is kinda critical. I find it odd though that this only happens on the boundaries of the SeqBlock though. On the other hand, that might be clue?

I know that these kinds of glitches happen when looping in the editor, but on song playback on the linear SeqTrack, I am not sure I've noticed this before...

Best, tL.

kmatheussen commented 3 years ago

I probably need to be able to reproduce this to fix it. I've tried to modulate the pitch of a sound, but can't hear anything wrong.

Does it happen if you use "sequencer timing"? (right-click in a sequencer time lane, and select "Use sequencer timing" nearly at the bottom)

On Thu, Jun 10, 2021 at 3:30 AM Lykdraft @.***> wrote:

(I am not quite sure yet, but it seems that this affects even Radium internals like the modulator. I've assigned a modulator saw-up (mul1/div4) to sample start and it runs out of sync as well after some loop iterations. When I "hardcode the same "saw-up" in the editor via automation all is good...)

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/kmatheussen/radium/issues/1345#issuecomment-858211188, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAIX3J73DS5EVUCBD775ZKDTSAISBANCNFSM46M6KYMA .

kmatheussen commented 3 years ago

Can you try this song? I've tried to recreate the bug you described, using a saw 1/4 modulator on pitch, but can't hear anything wrong. http://users.notam02.no/~kjetism/timingtest.rad

kmatheussen commented 3 years ago

My guess is that this is caused by rounding errors when calculating timing. I should change the calculation to use ratios instead of floating points. But sequencer timing gives a more stable BPM value, at least, than editor timing, so you might not see this then. If sequencer timing solves the problem at least I have a number to look at when trying to improve editor timing.

(When using editor timing, the BPM value switches frequently between 119.999 and 120.001, or something like that, but when using sequencer timing, the BPM value is constantly set at 120).

Lykdraft commented 3 years ago

It was late, I deleted the post about the modulator. I guess something else was up there. I try to setup a demo song later for you with an internal delay of something. I hope this will show the error as well...

(IIRC I checked timing info on imperialDelay and it was also switching frequently between the two values, but on on sequencer playback. I should add that I have a 60/40 swing going as well...(!) this might also play into this? )

Lykdraft commented 3 years ago

Ok, the LADSPA Delay doesn't glitch. Happens only with VST/AU.

BUT you're right about switching to Sequencer Timing. That seems to solve this issue. Cool. So this can be closed I think?

Lykdraft commented 3 years ago

I'll take this as a yes... :)

kmatheussen commented 3 years ago

Sorry, I forgot this one. :-) Reopening as it is a real bug in editor timing. I guess it's just getting rid of the rounding errors in the timing calculations.

kmatheussen commented 3 years ago

Also, could it be that you have enabled "Send swinging beats to plugins, modulators, metronomes, and jack transport" under File -> Song Properties? If so, maybe you don't see the bug if disabling this mode when using editor timing.

Lykdraft commented 3 years ago

No, that's not enabled.