-
Notifications
You must be signed in to change notification settings - Fork 81
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
Should performances be in their own (sub)project on Github? #571
Comments
@diyelectromusic |
My thoughts so far were that I would put together 128 “factory performances” and then they would permanently belong to the project. And if there is an opportunity to work with multiple performance folders or performance banks, I wanted to create additional topic-related performance banks. I created a performance update as a new repository. I hope it makes your work easier. https://github.com/Banana71/Soundplantage I think @probonopd should link this into his miniDexed project as submodule. !? |
My conversions from DX/TX-series will go here: |
wow, that's nice. @BobanSpasic https://github.com/probonopd/MiniDexed/files/10717692/Performance.TX816.Factory.zip |
Thanks @Banana71 , I'll include TX816 too. |
Thanks @Banana71. Indeed, should make my work easier. So I take it that the "performance" directory contains the MiniDexed "factory" performances. If I could have one wish for those, all of them should support aftertouch. What is supposed to happen with the B-Side directory?
Thanks @BobanSpasic, very helpful! For the conversions, wouldn't it be even cooler if they were generated on-the-fly by your conversion software, as we had started to do? |
With this, it looks like it is time to think about supporting more than one directory (folder) full of performances? |
Can you make one example script for me, that will work on the files from the directory Test_files from the same repository? I am fighting with conversion from SoundDiver 3 files to SysEx at the moment, as all the files I've got (and that are worth of converting) are in Sound Diver 3 format. |
Check this: |
You probably already have found this: https://gist.github.com/arteme/76f59209db3fe263c82ee151e35a1723 MIDI-OX is said to be able to open SoundDiver lib files and save them as syx, although I have not tried it. |
I've been chewing over some possibilities, and the simplest I think would be a system where:
Note: We need a maximum number of supported performances as structures in MiniDexed tend to be preallocated for the most part - in this case the record of the filenames. Some choices or variations that increase the complexity but might still be worth considering:
General Issues:
If subdirectories are introduced:
If we switch to a sysex model:
So yes, the simplest is as per the first set of points with no subdirectories or sysex, but just performance numbers in filenames and banks only being meaningful via MIDI. Kevin |
Yes, I think we should map file names to MIDI numbers for performances (and voices). Doing everything via sysex would be nice, but it'd probably be a huge piece of work? And if we do it, I think we should at least try to implement one (the most capable) of the Yamaha performance sysex formats (if not all of them)? Looks like @BobanSpasic has figured out how they work (but his code is Pascal rather than C++). |
Well, for all the issues I list about the use of subdirectories, whilst ideally I think this would be a good way to go, I think it will be a lot of complications in the code for very little real gain.
As I say, I think it is a complete re-implementation. |
About SysEx - the nearest device to MiniDexed is TX802, but this would need a re-write from scratch. Voices need to be in DX7II format and performances something like TX802 Performances, where TX802 uses a very ugly format for performance files. I would not go for it. What we could optimize is:
|
Actually what I like about the current format of our performances is that they contain the needed voices, makes it easy to share/move just 1 file, and you don't have to keep track of matching the correct voices with the corresponding performances in the filesystem. So maybe we should just somehow "binary serialize" our performance files for sending/receiving them via sysex over MIDI... (e.g., base64 encode, then send inside a sysex - something along these lines). Wouldn't be compatible to other existing instruments, but would probably be the easiest and most flexible way? |
Um yeah, are you really serious? Not every dessert has raisins, not every picture has all the colors, not every song uses all the notes,.... 😅
I use the B-Side folder for discarded performances, which is neither sorted nor documented. When I think about it, it doesn't make sense at this point and I'll remove the folder again. |
...where it makes sense of course ;-) It's not a probem to have a B-Side folder in the repository, but given your explanation let's not include it in the MiniDexed download. |
Does that mean I can create additional folders, but you only pick up what you need? |
Yes, as long there is one folder that I should pick. Ideally the folder would be called |
btw - should @Banana71's performance github project be included in the main MiniDexed github too? I don't really know how these things work, but it is certainly useful to be able to get from MiniDexed to the list of performances from the same github starting point. |
It already is: MiniDexed/.github/workflows/build.yml Lines 73 to 74 in c6325cd
|
It is included in the build, but not in the project...? |
It is not a git submodule if you mean that by "included in the project". To be honest, I find git submodules a pain and try to avoid them if not absolutely needed. |
Ok - it was more that it allows one to click through from the main project to any sub-projects easily for browsing the repositories :) I guess a prominent link in the readme would do just as well! Kevin |
Good idea, done! |
Closing this now as I think it is pretty much covered by #581 If elements are still outstanding, then I suggest they are picked up as new issues. Kevin |
It's great to see the performances continually evolving, but having so many files changing so much does make managing branches with code in development quite challenging.
Is it worth creating another repository for them so they can be maintained independently? Perhaps it would be included in the main repository as a submodule or maybe they should be pulled into the build when images are created?
I don't really know enough about how Github works to know what is the best solution, but having so many files changing in a way that doesn't affect the code but seems to really confuse the merging/syncing process does seem to add quite a bit of overhead to anyone updating code. Although, I'd be the first to admit I'm perhaps not using Github in the most optimal way!
Kevin
The text was updated successfully, but these errors were encountered: