Currently only one tuning dictionary file (tunings.json) is loaded or saved. The first time the program is run, the tuning dictionary from the installation folder is loaded. After exiting, the tuning dictionary's contents are saved to the user's prefs folder, and this file will be loaded instead of the one in the install folder on subsequent runs. Any edits, like new tunings, removing tunings, or editing a tuning will be written out to this tunings.json in the user prefs folder
This becomes problematic when we make any changes to the default tuning dictionary shipped with the program, e.g. adding or reordering some tunings (#363). These changes won't be seen by existing users unless they clear out their prefs folder
I think this should be changed so that the factory tuning dictionary is always loaded, and the user prefs tuning dictionary only contains new custom tunings that the user added. If we want to allow the user to delete or edit factory tunings, the JSON format could include some way to express overrides.
This is somewhat related to #342
Currently only one tuning dictionary file (
tunings.json
) is loaded or saved. The first time the program is run, the tuning dictionary from the installation folder is loaded. After exiting, the tuning dictionary's contents are saved to the user's prefs folder, and this file will be loaded instead of the one in the install folder on subsequent runs. Any edits, like new tunings, removing tunings, or editing a tuning will be written out to thistunings.json
in the user prefs folderThis becomes problematic when we make any changes to the default tuning dictionary shipped with the program, e.g. adding or reordering some tunings (#363). These changes won't be seen by existing users unless they clear out their prefs folder
I think this should be changed so that the factory tuning dictionary is always loaded, and the user prefs tuning dictionary only contains new custom tunings that the user added. If we want to allow the user to delete or edit factory tunings, the JSON format could include some way to express overrides.