-
Notifications
You must be signed in to change notification settings - Fork 78
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 improvements + Poly/Mono + Fix to #298 and #83 issues #267
Switchable performance files improvements + Poly/Mono + Fix to #298 and #83 issues #267
Conversation
nice! |
Unfortunately, I cant get this build to work- using a pi3. MiniDexed appears to boot, LCD shows "home screen"= TG1... but it does not respond to the encoder/switch or make sound when I play the keyboard. |
Hi @miotislucifugis, I just realized that I had missed to initialize a variable when I've copy the code here, may be that was the reason of the bug. Unfortunatly, I don't have a RPI3 to test it and I have no problems on a RPI2, so let me know if on this last build the issue has been resolved. |
That fixed it. Just did a quick check and everything seems to be working. great work |
Great! 😃 |
Great @arsamus. Please give me a ping once you think this should be merged. Thanks! |
Hi everybody and @miotislucifugis, I've just submit the PR that fixed Foot Controller, Breath Controller and Aftertouch message handling. Right now all modulation paths are working as expected (like Dx7 is supposed to do it, unfortunely I don't have a real one to test it) and also complement #298 and #83 solution. New build is ready to test it: https://github.com/probonopd/MiniDexed/suites/7282549823/artifacts/293357205 |
@arsamus - I would have one more request - could you add to the performance.ini one more key (PerformanceName=char[1..30])? |
Hi @BobanSpasic. Yes, it could be added, but take in mind that performance.ini (and the rest of switchable files) save in one file the eight performance parameters of each TG of MiniDexed so we will have to face with this things:
Other approach could be having the name just for inport/export TX Sysex tasks, but hidden on UI. Names could be stored on performance.ini (users could be edited there if they want) and can be added on future feature that export sysex messages on TX format. @probonopd what it's your point of view? |
DX7II can play 2-voice performance, either as solo (just Voice A), split or dual. There is a defined SysEx bulk dump for such Performance. The performances have names and there are 64 storage positions on DX7II for the performances (32 on TX7) according to the documentation.
|
Got some info: |
The last build of this PR (https://github.com/probonopd/MiniDexed/suites/7282549823/artifacts/293357205) allows to save the whole MiniDexed parameters in one file and named with a 14 chars name that can be editable before save it (renaming saved files is pending). This covers what you think about performance management? Why do you think that it is necessary to add a name parameter inside the file? The loaded performance name can be checked on Perfrormance->load menu. Since the file is loaded at the time the user wants, there are no limit for performance files (just de SD card capacity limit)
Respect to tx802. Performance files save the whole unit as a whole (8 TF modules on the same file (or sysex dump) like MiniDexed) or each module has it own performance file?
Velocity layering, global transpose and key range are relatively easy to implement with a few lines of code, but of course, this is not part of dx7 features. Maybe on other PR I can suggest some of this features, this PR has a lot of new features and covers, as I know, the DX7 performance parameters that are missing on the Productive build. |
Because one day we will want to SysEx dump the performance file, and in such case the name must be written inside the file.
One file for performance: For TX802, the performance name is 20 char long, for TX816 is 30, for V50 is 10 etc...
I agree. |
…-Performance-files-+edit-voice-name
Dear all, thanks for your hard work on this PR. Please test the new build MiniDexed_2022-07-15-144ef8d which is based on top of the now merged #274. |
Hi @probonopd I've tested it and everything works as expected and compatible with #274 |
I was under the impression that on the TX, a "performance" describes the settings how the various TG instances work together (and possibly which effects are added). So I would not use the word "performance" to describe the individual TGs, unless I am overlooking something.
How is Yamaha calling those things in their TX documentation?
So, I'd be fine with "Supplement".
I tend to agree, unless this is confusing because Yamaha users expect something entirely different.
Frankly, I would not care too much at this point and just show the first characters. This is purely cosmetic and maybe people will use larger displays with more characters soon.
Yes. Allow 30 chars to be stored but only show what fits on the respective display.
Once we get to the point that MiniDexed can do this, one could consider to use the TX sysex data format for storing things locally (instead of
Agree. Testing MiniDexed_2022-07-15-144ef8d now. @arsamus do you think this PR is ready for merging? Additional features and improvements to existing features could always be brought in through additional PRs later. I'd like to have major changes (like this one) in main rather sooner than later, so that other PRs won't run into merge conflicts eventually. Thanks for your great work! |
Hi @probonopd, yes I think is ready to merge. This PR adds a lot of new important features. We can continue discussing about other features, improvements and ideas that can be included on future PRs. |
Great @arsamus. Could you suggest edits for https://github.com/probonopd/MiniDexed/wiki/Menu? |
Yes, I will post it here as soon as I can. |
Which defaults do we have do change so that the "silent" BC voices #83 play by default? Or ar they silent by default on Yamaha instruments as well? |
Explanation about the performances on real DX7 DX7mkII - 2xTG. Most of the parameters from performance is moved to voice parameters (supplement data). The remaining parameters in performance are for setting both the TGs (keyboard split, dual etc.) MiniDexed uses DX7 (not mkII) parameters and performance.ini is DX7-alike, but for 8 TGs. |
I don't know which are factory default values for this controllers. Intuition tell me that just Pitch would be setted 'on' and amplitude and EG Bias setted 'off'. I don't think Yamaha default roms have voices that are muted by default. But maybe someone who have a real DX7 can confirm. Maybe @SurvivalHacking can (if this doesn't bother him), I saw some of his YT videos and he have one. |
Hi, @probonopd here are the insertions and changes for Wiki->Menu. Default values for Mod Wheel is Range=99, Pitch=ON, Amplitude=OFF, EG BIAS=OFF; rest of controllers: Range=99, Pitch=OFF, Amplitude=OFF, EG BIAS=OFF to avoid unpredictive behavior (like muted voices); [insert Poly/Mono and Modulation between Portamento and Channel inside TG menu] [Modulation: [on main menu replace "save" with this "performance" menu] ->Save: ->Delete: this function allows to delete custom performance files. Default file (performance.ini at root directory) can't be deleted. [After Transpose and before TG2] |
Are you saying that by default you are not getting muted voices anymore? Then in my last test I must have done something wrong, because I still got muted voices as in #83 (this was the reason why I asked about "detaults"). Maybe because I had pre-existing Performance files. Will delete those and try again. |
This defaults are defined on performance.ini file submited on this PR. But to facilitete users to use their former performances files, I've just set default values on the code. This defaults values applyes only in case the following properties don't exist on the performance file: |
By leaving EG Bias "off" on all mod sources, you will have "muted" voices. The patch expects EG bias to be controlled by a modulation source (usually BC, but can be the mod wheel or aftertouch;) as it is set to a minimum. Only when "modulated" will it open up and produce audible sound. I dont think that there is such a thing as "default" mod setting on the DX7... unless you mean what the setting is after changing the internal battery or what it was set to right out of the box. Unless I am mistaken, the DX7 remembers the last user settings for stuff like modulation, pitchbend, and potamento, etc. I would need to test to confirm 100%( perhaps tomorrow), but i suspect that is is totally normal for the DX7 to produce no sound on these patches if no EG Bias modulation source is connected and value wiggled. often these patches are labeled with the letters "BC" to indicated that they are expecting this to be set up. for example voice #14 on rom 2A= "Brass 6 BC" ... tho' others like "train" (i forget which rom this was on) make sound by default(chug chug), but rely on something to modulate the EG bias to animate the sound and add the train whistle effect. All the original yamaha patch that require this seem to be on the supplementary rom carts... perhaps there was a note in the original paperwork/ documentation that made note of the modulation requirements? |
I don't know what happens on a real DX7 but on Desktop Dexed and on Minidexed, setting off EG Bias unmute those "muted" voices.
I didn't notice that BC means Breath Controller... And what you say sounds convincent.
Yes. This is what I mean, but since DX7 remembers the last user settings until someone disconnect the battery, because DX7 doesn't have a factory reset, and these controllers parameters are not part of voice parameters, I'd think that it doesn't matters these default values. Eventhough, we can define as default values the most "standard" behavior, for example pitch on and amplitude and eg bias off, or set the factory values if some who have a DX7 can check them. |
I tested the some of "quiet" patches today on a DX7. Patches were sent via desktop dexed. the patches were a few of the "BC" patches from yamaha roms 3a and 4a = "brass BC", "sax BC" and "voice BC". As i suspected, when EQ Bias is turn off for all the mod sources (or mod source level is at 0) the patch remains quiet. (by the way, for me, these patch are also quiet on desktop dexed: As i sent the patches to the DX7, I tested the sound in Dexed with the little on screen keyboard, and there was no sound. What patches were quiet in Minidexed, but had sound in Dexed?) One small difference between dexed/minidexed and the real DX7- on both dexed variants, when the EQ Bias is down or not being modulated, there is no sound from the patch... on the dx7, while it is quiet and muted, you can hear the sound... it seems like the filter effect it isnt fully being closed... if that makes sense. I know that the DX7 uses a range of 100 for the velocity. just a guess, but perhaps it also uses this range internally for other variables like modulation level...while Dexed uses 0-127. however I would think that the range would be higher, not lower? ....shrug? regardless, its not really an issue... i kinda prefer how it behaves in dexed vs the original anyway. That aside, the behavior in this merge request seems constant with both the DX7 and Desktop dexed. |
Change voice name: How do I move to the next character? (I only have one button: the one in the rotary encoder). |
You have to mantain the button pushed and move the rotary encoder left or right. Same as shortcut, that is not activated on this menu. |
…-Performance-files-+edit-voice-name
Thank you very much @arsamus. You are a true master of the subject! Sorry it took a bit longer, but I have now tested the PR and updated the documentation. Merging. Thanks for this very valuable contribution! 👍 |
Hi @probonopd , in order to complement the swichable Performance solution, I have added these additional features to improve the usability of the solution:
-Custom defined new performance name: predefined Performance name can be modified. Characters are input by the rotary encoder, to move the cursor, hold down the encoder and turn right or left. Then just double click to confirm.
-Delete Performance files: This allows to delete perfomance files from the list. To do that, just double click on the already loaded performance and confirm yes or no. The default performance.ini file in the root directory can't be deleted.
-Change voice name: Edited voice can have a custom name (and will be saved on performance file).
-Some minor improvements on related Methods.