[yoshimi] Re: Still not decided - need opinions

  • From: Lorenzo Sutton <lorenzofsutton@xxxxxxxxx>
  • To: yoshimi@xxxxxxxxxxxxx
  • Date: Fri, 22 Jun 2018 09:57:12 +0200

Hi Will,

On 21/06/2018 18:01, Will Godfrey wrote:

Since V 1.5.6, when saving instruments you have the option of the legacy format
(.xiz) the new ysohimi format (.xiy) or both.

If saving both, you potentially double the size of the bank, and neither zyn
nor older versions of yoshimi will recognise the new format.

When re-loading, no matter what *save* format has been selected recent
versions of Yoshimi will look for .xiy first and if that fails will load .xiz

Like this, there is the least possibility of losing information and all
versions of the synth should get what they can handle.

There is a potential problem though when saving and you have just one of the two
formats selected. Currently the selected format only will be saved and the
other format will be *deleted*. This means you can ensure the minimum size of
banks and also that you will never have two files with different settings, but
at the cost of losing information if there is a .xiy copy with (say) humanise
set, but you save to the legacy format - which doesn't include this feature.

This whole issue has implications for exporting banks as well as instrument
swaps and renames. Currently these move/swap both formats regardless of the
save setting.

Disclaimer: personally I use only Yoshimi 99.5% of the time (vs Zyn), so my use case is to be able to save my yoshimi states, banks, etc. and be able to retrieve them even after a period of time, so essentially Yoshimi 'internal' retro-compatibility.

That said, IMHO explicit is always better than implicit. What I mean is: if today Yoshimi uses and needs a new file format which is not (backwards) compatible with Zyn, then 'saving' should save to that new format, while saving to a 'legacy' format should even go to an 'export' function (of course maybe in a bunch of the versions with this behaviour have some warnings to users, and in documentation etc.)

As a parallel I'm thinking of (both proprietary and FLOSS) office application where the 'save' functionality is a real mess... it's really confusing, as you can 'save' a plethora of formats, but then there's only one format which really ensures full compatibility with the current versions of what you're using. So, really, save should only save to the application's native format and everything else should be 'export' - with the implicit warning that an export is usually not 100% compatible and feature-rich compared to the native format.

The above is the same approach GIMP has, for example. 'Save' saves to its native format with all layers etc. Export will export to other formats. In fact if you export a file without saving it you will even get the unsaved warning when you try to quit. A similar example are also Ardour or Audacity: save is to their 'DAW format' with all of the information, export is just that.

Now, from your message (and forgive me if I don't get some of the technicalities of the new vs. old format, but I think it's still a compressed XML right?), I'm not 100% sure if by saving to the new .xiy format potentially contains all the information which would eventually be useful to then save to .xiz. What I mean is: if I save to .xiy, then close and re-open in Yoshimi, can I then save (export) that to .xiz (minus of course the new features which are inevitably lost)?). If that is the case I think my proposal works. If, on the other hand, saving to .xiy loses information which would have been saved to a .xiz, then my model might have a problem.

Ok sorry for the long email for just a single user's opinion, let's see what others think and we can follow up on the last point if relevant :)

Yoshimi source code is available from either: 
Or: https://github.com/Yoshimi/yoshimi
Our list archive is at: https://www.freelists.org/archive/yoshimi
To post, email to yoshimi@xxxxxxxxxxxxx

Other related posts: