Lmms: LADSPA automation disconnects on export

Created on 19 Jan 2019  路  11Comments  路  Source: LMMS/lmms

Steps to reproduce:

  • Add a LADSPA effect to a project
  • Connect one of its knobs to an automation track
  • Export the project
  • Note that the knob has been disconnected from the automation track, and the automation is not present in the exported file

This seems to be due to the automation not reconnecting properly after the LADSPA plugin is recreated at the export sample rate.

bug core

All 11 comments

Confirmed in stable-1.2.

Normally, one would set call all ModelView::setModel inside ModelView::modelChanged, but for LadspaControlView, this is done in the ctor. This might be the reason. I could try something out, but it would take a week.

I guess this should be assigned-as and fixed-on 1.2?

Confirmed. However, it works fine when I test already saved projects.
The reason for this bug is similar to #3781. The automation pattern remembers the correct journaling ID. When restoring settings in LadspaEffect::changeSampleRate, however, idToSave() is applied to the ID of controls. If I add a block as I did in #4723 with idFromSave changed to idToSave, everything works fine.

@PhysSong, when you say "If I add a block as I did in #4723 with idFromSave changed to idToSave, everything works fine."

What do you mean exactly ?

Thanks in advance for your help,

EDIT : removed my screenshot, as I didn't understood the problem and was pointing in a wrong direction

@T0NIT0RMX For references, I meant the second one(in AutomationPattern::resolveAllIDs).

@PhysSong alright, thanks, so you mean adding a block (similar but with idToSave) in LadspaEffect::changeSampleRate right ?

@jasp00 Do you have any opinions about what we should do? I'm asking you because this bug is related to #2855:

The automation pattern remembers the correct journaling ID. When restoring settings in LadspaEffect::changeSampleRate, however, idToSave() is applied to the ID of controls.

This is a real blocker for 1.2 and @jasp00 does not seem to answer.

Can't we just abort rendering with a message box in case the file has not been saved/loaded before? Otherwise, what's the problem with your suggestion @PhysSong ?

@JohannesLorenz I agree with you, I use a lot calf filters and this was blocking me so bad, so I tried the method @PhysSong suggested with success !
I did it a month ago, I use LMMS everyday and I never noticed anything bad, so to me it would be a good solution, but I'm not an expert

@T0NIT0RMX If it's not much work, would you mind opening a PR against stable-1.2? It may get accepted or not, but that way, it can be reviewed and may get more attention.

Was this page helpful?
0 / 5 - 0 ratings