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
Switchable performance files and saving all voice data parameters. #228
Switchable performance files and saving all voice data parameters. #228
Conversation
Thanks @arsamus. What is supposed to happen if VoiceDataN is not there, e.g., in the default |
For this example, nothing, just random data is apply to parameters, then if you want to load a former performance.ini file you have to go to voice menu and move the encoder 1 step up and 1 step down then save Performance to fill VoiceDataN. On a final release it is possible to define that don't set anything if the value is not properly formated or missing. Sounds different maybe because for the example I paste the same voice parameter for all TG. But nothing would have change in relation to sound. |
Hi @probonopd I have an improvement for this feature. If VoiceDataN is not there it will priorice BankNumber and VoiceNumber values, so no random data will be load. I will commit this soon. Moreover, I also have a solution for #125 switchable performance files (load, save and create), I can commit all in this PR. Maybe after #238 will be merged in order to get that improvement. |
Looking forward to it @arsamus. |
Hi @probonopd I've just PR the code for manage switcheable performances and save all voice data parameters on performance, with this patch it's possible to edit all paramenters and saved on the actual performance file or in a new one. On the other hand the new Performance menu allows to switch from diferent saved performance files, very usefull on live performance. To load selected performance it is necessary to double click on it, performance is loaded when [Ld] flag apears on left side of the LCD. The enhacement is retrocompatible so, the only thing that it have to be done is create a folder named "performance" on root directory. performance.ini is the default performance file and has to be located on root directory, other performances files must be saved in a "performance" named folder. The format file name must be: XXXXXX_NAME.ini, XXXXXX is the incremental index and Name can't exced 14 characters. Example: 000001_Perf1.ini. If VoiceData# parameter is not set on the file, voice and bank parameters are loaded. Future improvements: |
Thank you very much @arsamus. |
This is super! Trying it now. |
Works for me. 👍 This is really, really useful. Couple of questions:
Would have expected the order in the menu to be:
|
It could be but from my point of view I think load performance needs to be very easy to get. So first level it could be the best option.
I've asked myself this question at the begining, but there are two things here. In live performance if you want to switch from one perf.. to another you would have to pass for all perf.. in between, with de current implementation you activate the new performance just when double click it. The way that Voices works ok for voices and banks because musicians used it in an "experimental mode" when want to find a proper sound, but in performance, they would need to switch between different configs. The other thing here is that, in order to get a easy viable solution and to avoid to do agressive code interventions, performance is loaded from file at the moment you select it and it is not preloaded like voices and banks. Change this implies re-think Performanceconfig class and it dependents, creating arrays for all variables, etc.
Yes, I've saw that, I think this is easy to fix.
This would have been easy to implement, let me see how to do it.
Yes, same as 3rd question, this is related to the "saving performance fix" #238 where the function always returns a true value, but I thing it could be avoided in some way. |
This seems to be working well. no problems here |
I've just update some minimum changes in order to fix or improve the following things:
Respect to the performance menu. Do you think that Load and Save would have to be grouped in a new menú, or both would have to be on first level menu as it is now? I've commented my opinion above. |
Thanks @arsamus. Let's test MiniDexed_2022-05-23-55242cd |
I am terribly sorry @arsamus but it seems my latest merge has introduced merge conflicts. Before I butcher it, may I ask you to have a look at these? Thanks and sorry for the extra hassle. |
No problem @probonopd, done it! actually there was no real conflict |
Let's test: MiniDexed_2022-05-25-838edab |
Wow! It works! |
I just tried this version it works very well, excellent implementation 👍 |
It works as expected! |
Thank you very much @arsamus 👍 |
unsigned nLastFileIndex; | ||
unsigned nActualPerformance = 0; | ||
unsigned nMenuSelectedPerformance = 0; | ||
std::string m_nPerformanceFileName[40]; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this limit the number of performances to 40? #379
This feature allows to save on Performance.ini all voice parameters edited via UI or SysEx.