-
Notifications
You must be signed in to change notification settings - Fork 1
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
Generator enums #35
Comments
Where? I'm sure it differs on implementations. On some it may work, others might reject it. What then? |
You actually have a good point. Maybe the question I asked was bad; I should've asked "are there any commonly used programs that error out on a generator value beyond 60?" |
What counts as commonly used? I can only think of fluidsynth and BASSMIDI. PS: Did you read the discussion I started in this repo? |
If FluidSynth and Bassmidi are the only frequently used players, then we should just test on these two? Even though Davy mentioned "FluidLight" in the original SF update proposal repository, I can't find a project on GitHub called that. And even if I could, it seems like it would be a fork of FluidSynth, right? Also, talking about the conversation you made, you are right. We shouldn't care about legacy players. But the problem is that I worry that people will attempt to run SFe banks on their legacy player and then complain and blame many different people, whether that be whoever made the bank, or even the SFe team for doing something that doesn't work. You say that the multiple different variants of SFe are problematic. Well, davy7125 said that it is ok to delay 64-bit support until it's truly ready with a good foundation, because the format would be incompatible anyway:
We can thus safely get rid of SFe64. This would eliminate one variant of SFe, leaving just two variants:
While this would still be two formats, SFe-S would eventually stop getting features (this was what I envisioned with SFe32/64 in the first place!). Eventually the only format left would be SFe-D. I think that this strikes the perfect balance between compatibility and feature potential. What do you think? The SFe-L subset would stay within the limit of generator Sorry for sounding angry, and sorry if I annoyed you with how I was structuring the format. Thank you for your feedback. |
@sylvia-leaf looks like you didn't read what I wrote. I addressed this. I proposed changing |
Ah, I get it now! So you are wanting to rename the Update: The plan is to actually now have one unified specification with the same data. Instead of three incompatible specifications, we will just maintain three RIFF header types that start with identical data (at least for 4.0). There may be divergence, but not in 4.x versions. While |
All features in categories 1-3 are now being tracked in their own issue. Won't close this issue yet, as there are features in category 4 that need to be tracked. |
Generator enums are limited by the field size. Because it is a Provisional generator enum assignments for some features are now listed, with adjustments made to compensate for SFCF features. These are not to be confused with the original assignments proposed in |
Generator enums
Introduction
To add extra features such as round-robin sampling, we need to use unused generator enumerator values. However, there is insufficient research about how enum values are used.
Right now, work is being done to reverse engineer SFCF. We've already found out that SFCF uses unused generator enum values for DLS features. Once this reverse engineering process reveals all of the enum values used by SFCF, we can then fit in our extra features.
This is the reason why the partial reverse engineering of SFCF (to find unusable enum values) should be completed before we attempt to fit in extra generator features.
List of features to work on
Category 1: high priority (SFe 4 must have these features)
[Generator Enum
42
] - Round Robin Sample Playback Class (rrSamplePlaybackClass) #42[Generator Enum
54
] - Sample Modes (sampleModes) improvement #43[Generator Enum
49
] - Initial Attenuation Mode (initialAttenuationMode) #55Category 2: medium priority (SFe 4 should have these features)
55
] - Exclusive Class Mode (exclusiveClassMode) #4461 ~ 72
] - Independent envelopes/LFOs for pitch/attenuation/filter #4559 ~ 60
] - Filter Type (filterType) and Filter Depth (filterDepth) #46Category 3: low priority (SFe 4 could have these features)
Category 4: not in SFe 4 (SFe 4 won't have these features)
Other things to do
Mirrored from here:
60
is found? Nothing - it works fine.65535
.60
for category 1 features.60
and127
for category 2.127
for category 3 - Not necessary, we've got loads of spaces left and DLS is likely to fit before we hit127
If you've got anything else to add to the list, please send a comment here.
The text was updated successfully, but these errors were encountered: