-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Save Scale/Key Highlighting, and Many More Editor Options. #7854
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
base: master
Are you sure you want to change the base?
Conversation
Tested, works well. |
Also, currently I am saving the values as attributes of the editor's xml element. However, this means that any automation connections will not be saved. Are we okay with this? Or should I try to save each model using their own saveSettings/loadSettings functions? If so, I may need to edit them to add a way to specify a default value, since currently that's not possible (and we probably want that so that old projects get loaded with reasonable values. |
Scale highlights are a good idea. For all the other stuff like zoom, scroll mode and stuff it seems like a more sensible solution would be saving currently used settings in something like lmmsrc.xml instead. Saving them per project doesn't make much sense because old projects will have to be adjusted one by one. These defaults are entirely user preference anyways, and in case of something like a collaboration, it will present an additional step user has to do every time the project is passed back and forth |
After thinking about this, you're right. It doesn't make sense to save those kind of ui things per-project. I've changed it in the latest commit to save it in the lmmsrc file, so now whatever zoom/snap/quantization/notelength you have last will be restored when you open lmms again. |
Wait, maybe these kind of settings should be project specific.
Currently just the scale, key, and chord are project specific. Are you saying you also want the zoom/snap/note length/quantization settings to be saved in the project? |
Imo user preferences should not be project specific for reasons I outlined above. In an ideal world we would just have defaults in settings, but saving these in config does achieve this in the meantime |
This PR makes it so that the scale/key/chord in the Piano Roll is saved with the project.
Also, while I was at it, I made it so that the zoom, vertical zoom, snap settings, quantization, and note lengths are saved too.
Aaand I also decided to save the zoom and snap size in the Song Editor because why not :D
However, the zoom/snap/etc are saved in the lmmsrc file, since it doesn't really make sense to save them per-project.
Note
It seems odd that the song editor is saved as a
<trackcontainer>
in the xml, since it's theEditor
which does the saving, not the editor window. This means that I cannot save the state of the proportional zoom option, since that is not accessible from the editor object, only the window. However, the piano roll does it via the editor window. It feels like we should be doing it that way via the gui, since saving isn't something which should be in the core(?) (or should it? idk)