Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update instruments submodule #21

Merged
merged 1 commit into from
May 11, 2024
Merged

Conversation

Snowiiii
Copy link
Contributor

@Snowiiii Snowiiii commented Apr 14, 2024

Merged latest changes from upstream

@zonkmachine
Copy link
Member

No description provided.

Please add a description.

@Snowiiii
Copy link
Contributor Author

No description provided.

Please add a description.

okay i have

@JohannesLorenz
Copy link
Contributor

We need to verify that each instrument's creator version is smaller than the LMMS zyn version. Did you verify that?

@tresf
Copy link
Member

tresf commented Apr 29, 2024

This seems rather benign of a change. Of course @JohannesLorenz will know the technicalities of this, but @zonkmachine asked for a description and although the PR is not now labeled properly, @JohannesLorenz's question raises some eyebrows about compatibility.

@Snowiiii Is this mainly to help with some bugged presets in LMMS?

@JohannesLorenz with regards to "createrVersion", is this strictly necessary? For example, if a preset's settings were tweaked with a newer Zyn version does it completely break in older Zyn or is this statement one made out of paranoia?

In my opinion, the best way to test this PR is to simply build LMMS with these presets and make sure that they sound proper (e.g. before.wav vs. after.wav, but due to the number of presets that ship with Zyn and the lack of a framework for testing audible similarities, we can't accommodate this, at least not easily or with the tools we have readily available.

@JohannesLorenz
Copy link
Contributor

It is not paranoia 😁 It is an update over 10 years, in that time, for sure, we added new stuff, fixed compatibility etc. If we merge this and not exclude the new instruments, many users might report bugs with broken instruments.

@tresf
Copy link
Member

tresf commented Apr 29, 2024

It is not paranoia 😁 It is an update over 10 years, in that time, for sure, we added new stuff, fixed compatibility etc. If we merge this and not exclude the new instruments, many users might report bugs with broken instruments.

Right, but as a project we need to know the scope of the breaks versus the fixes that this PR aims to achieve. I agree, we want it to sound correct, but in your experience, how many breaking sound changes to presets have occured in those 10 years? Perhaps a better question... how common was it to update the presets to the new version to fix a particular bug? Or maybe a better better question... Can we just see a diff of the files in question and try to read the changes?

@Snowiiii
Copy link
Contributor Author

Snowiiii commented May 1, 2024

I tested the latest instruments in LMMS and compared them with the old ones, They sound all the same and nothing is buggy or broken. They added alot of cool new Instruments

@tresf
Copy link
Member

tresf commented May 1, 2024

I tested the latest instruments in LMMS and compared them with the old ones, They sound all the same and nothing is buggy or broken. They added alot of cool new Instruments

This is sort of my instinct as well. Since @JohannesLorenz contributes to the Zyn project upstream, I don't want to make any false assumptions though.

@JohannesLorenz
Copy link
Contributor

how many breaking sound changes to presets have occured in those 10 years? Perhaps a better question... how common was it to update the presets to the new version to fix a particular bug? Or maybe a better better question... Can we just see a diff of the files in question and try to read the changes?

422 files have changed, too much to just view them.

I talked to fundamental, and also looked at the git log. It seems unlikely that any of those commits are related to code changes, they are just related to intended sound changes (not a programmer thing, but an artist thing).

Nonetheless, if any of those 2024-instruments (changed or added) uses features that are not available in 2014-zyn, this can cause crashes, or even speaker/hearing damage (unlikely, but possible). I am not sure if this is acceptable for us in LMMS (I think rather no). But the alternatives are:

  1. Rejecting this PR here
  2. Testing 422 instruments manually
  3. Waiting until we update the zyn core - I do not remember why we waited with this, @tresf do you? Might be because Lv2 and CLAP will come anyways, but IIRC we wanted to keep zyn even with Lv2/CLAP? Or did we?

@tresf
Copy link
Member

tresf commented May 2, 2024

Waiting until we update the zyn core - I do not remember why we waited with this, @tresf do you? Might be because Lv2 and CLAP will come anyways, but IIRC we wanted to keep zyn even with Lv2/CLAP? Or did we?

In short, waiting on Lv2, etc. The long: LMMS/lmms#1860

@JohannesLorenz
Copy link
Contributor

In short, waiting on Lv2, etc. The long: LMMS/lmms#1860

So, it is indeed planned to remove the zyn submodule from LMMS?

@tresf
Copy link
Member

tresf commented May 10, 2024

In short, waiting on Lv2, etc. The long: LMMS/lmms#1860

So, it is indeed planned to remove the zyn submodule from LMMS?

I think the end-game is to remove our own fork, yes, but not necessarily remove it as a bundled plugin, however we decide to do that.

@tresf
Copy link
Member

tresf commented May 10, 2024

422 files have changed [...]

to break down this 422 number:

  • 160 are newly added Cris Owl Alvarez banks, ⚠️ one of which crashes Zyn on playback.
    • banks/Cris Owl Alvarez/0131-FX heavy rain.xiz causes the remote process to crash on playback.
  • 128 are newly added net-wisdom banks, none of which crash Zyn on playback.
  • 49 are newly added olivers-other banks, none of which crash Zyn on playback.
  • The remaining 85 changed presets are in the olivers-100 and Companion banks, none of which crash Zyn on playback.
    • to @JohannesLorenz's credit, there are some differences... For example, olivers-100/0007-FM Saxophone 2.xiz sounds considerably different, as does olivers-100/0010-FM Brass 2.xiz. Someone with Zyn Fusion would have to confirm if these are artistic differences or regressions caused by missing features.

... so this reduces the scope of "change" drastically.

More thoughts...

  • What may be a bigger concern is that if we do merge presets with future unmapped features, it has the potential to cause future regressions (progressions?) when the unmapped features become available in a future Zyn release. Comically, we could handle this as an upgrade routine if people complain by stripping out any features that didn't exist when loading old projects, mimicking the broken sound.
  • Although I tested playback, I didn't attempt to load any of the new presets using the Zyn UI (I'm on Mac and the Zyn UI appears to be broken on master). Someone else sppot-checking the UI is a good idea.

[...] too much to just view them.

I'm interested in knowing how to "view" them

With all that said, I think the PR needs justification if we're to dive further. For example, @Snowiiii are there certain presets in particular that you feel would benefit LMMS?

@JohannesLorenz
Copy link
Contributor

to break down this 422 number:

First of all, thanks for breaking it down and inspecting. If I got you right, you loaded each and every of those and even checked if there are no bad sounds (e.g. no over-distorted sounds, no popping, clipping etc). If this is the case, then that is already a good justification for the PR.

there are some differences...

For me, this is OK. LMMS users will rarely use these few patches, and if they will, their songs will sound "better". For those who will want to keep the original sounds - they could still fetch the old patch from the old instruments commit.

What may be a bigger concern is that if we do merge presets with future unmapped features, it has the potential to cause future regressions (progressions?) when the unmapped features become available in a future Zyn release. Comically, we could handle this as an upgrade routine if people complain by stripping out any features that didn't exist when loading old projects, mimicking the broken sound.

Writing such routines would work, but would be that complicated that it IMO does not justify this PR here. Alternatively, we just tell the users: "Patch your savefiles manually" - again, I guess these are all edge cases. How many users will really use those specific patches and will be unhappy about it being broken?

Although I tested playback, I didn't attempt to load any of the new presets using the Zyn UI (I'm on Mac and the Zyn UI appears to be broken on master). Someone else sppot-checking the UI is a good idea.

For both UIs, they work relatively separate. Zyn first loads the patch into the core. In our case, after loading, the patch inside the core would be 2.4 compatible. Then the 2.4 UI reads from the 2.4 core. So, I do not expect such an issue.

All in all, I consider this PR doable. There might be few edge cases, but users should be able to handle them?

@tresf
Copy link
Member

tresf commented May 10, 2024

First of all, thanks for breaking it down and inspecting. If I got you right, you loaded each and every of those and even checked if there are no bad sounds (e.g. no over-distorted sounds, no popping, clipping etc). If this is the case, then that is already a good justification for the PR.

Correct, and I had headphones in. banks/Cris Owl Alvarez/0131-FX heavy rain.xiz is still a problem child tho as it temporarily deadlocks LMMS while (I assume) it tries to recover from the crashed process. 😆

@JohannesLorenz
Copy link
Contributor

banks/Cris Owl Alvarez/0131-FX heavy rain.xiz is still a problem child

We could either create another fork (of submodule instruments) which does not have that instrument, or create a blacklist denylist for non-working instruments.

@tresf
Copy link
Member

tresf commented May 10, 2024

banks/Cris Owl Alvarez/0131-FX heavy rain.xiz is still a problem child

We could either create another fork (of submodule instruments) which does not have that instrument, or create a blacklist denylist for non-working instruments.

I'd vote for the denylist? Unless it's a quick patch in Zyn 2.4. I think forking instruments is a bit too much entropy.

@JohannesLorenz
Copy link
Contributor

I'd vote for the denylist? Unless it's a quick patch in Zyn 2.4. I think forking instruments is a bit too much entropy.

I would agree. However, that instrument loads for me - it just takes a few seconds. Does this crash for you in standalone-zyn (with the newest zyn from master)?

@tresf
Copy link
Member

tresf commented May 11, 2024

I'd vote for the denylist? Unless it's a quick patch in Zyn 2.4. I think forking instruments is a bit too much entropy.

I would agree. However, that instrument loads for me - it just takes a few seconds. Does this crash for you in standalone-zyn (with the newest zyn from master)?

In that case, let's merge. I had only assumed a crash based on the very slow load time.

@JohannesLorenz JohannesLorenz merged commit aac04bc into LMMS:master May 11, 2024
@Snowiiii
Copy link
Contributor Author

Wow, This was an quiet relaxing PR for me 😆

@Snowiiii
Copy link
Contributor Author

I think we should now update the LMMS submodule

@JohannesLorenz
Copy link
Contributor

Btw, thanks for the PR 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants