Skip to content

Commit a799c25

Browse files
committed
Added feature flags information
1 parent 3849397 commit a799c25

1 file changed

Lines changed: 198 additions & 0 deletions

File tree

Lines changed: 198 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,198 @@
1+
# SFe Feature Flags List 4.0.10
2+
3+
The feature flags system is split like this:
4+
5+
- Branches: Roughly corresponds to each version (but not all listed features are part of the version). Maximum of 256. Number may increase with later SFe64 wMajor versions.
6+
- Leaves: Corresponds to each feature. Maximum of 256. These may change with later SFe64 wMajor versions. Contains 32-bit data declaring how much of the feature is implemented.
7+
- Flags: Each of the 32-bits that comprise a leaf, declaring support for specific features.
8+
9+
## Branch 00: Foundational synthesis engine
10+
11+
### Leaf 00:00: Tuning
12+
13+
- Bit 1: Coarse tuning
14+
- Bit 2: Fine tuning
15+
- Bit 3: Root key
16+
17+
### Leaf 00:01: Looping
18+
19+
- Bit 1: Loop during release
20+
- Bit 2: Non-loop during release
21+
22+
### Leaf 00:02: Filter Types
23+
24+
- Bit 1: Sound Blaster compatible low pass
25+
26+
### Leaf 00:03: Amplification and attenuation
27+
28+
- Bit 1: Attenuation supported in preset
29+
- Bit 2: Attenuation supported in instrument
30+
- Bit 3: Amplification supported in preset
31+
- Bit 4: Amplification supported in instrument
32+
- Bit 5: True dB supported. If not supported, 0.4x dB is supported.
33+
34+
### Leaf 00:04: Effects blocks
35+
36+
- Bit 1: Reverb supported
37+
- Bit 2: Chorus supported
38+
- Bit 3: Pan supported
39+
40+
### Leaf 00:05: Low Frequency Oscillators
41+
42+
- Bit 1: Vibrato supported
43+
- Bit 2: Pitch Modulation
44+
- Bit 3: Filter Modulation
45+
- Bit 4: Amplitude Modulation
46+
47+
### Leaf 00:06: Envelopes
48+
49+
- Bit 1: Volume delay
50+
- Bit 2: Volume attack
51+
- Bit 3: Volume hold
52+
- Bit 4: Volume decay
53+
- Bit 5: Volume sustain
54+
- Bit 6: Volume release
55+
- Bit 7: Key to volume hold
56+
- Bit 8: Key to volume decay
57+
- Bit 9: Modulation delay
58+
- Bit 10: Modulation attack
59+
- Bit 11: Modulation hold
60+
- Bit 12: Modulation decay
61+
- Bit 13: Modulation sustain
62+
- Bit 14: Modulation release
63+
- Bit 15: Key to modulation hold
64+
- Bit 16: Key to modulation decay
65+
- Bit 17: Modulation of pitch
66+
- Bit 18: Modulation of filter
67+
68+
### Leaf 00:07: MIDI Control Changes
69+
70+
- Bit 1: 00 Bank Select MSB
71+
- Bit 2: 06 Data Entry MSB
72+
- Bit 3: 32 Bank Select LSB (Multiple banks)
73+
- Bit 4: 38 Data Entry LSB
74+
- Bit 5: 64 Sustain
75+
- Bit 6: 66 Soft
76+
- Bit 7: 67 Sostenuto
77+
- Bit 8: 98 NRPN LSB
78+
- Bit 9: 99 NRPN MSB
79+
- Bit 10: 100 RPN LSB
80+
- Bit 11: 101 RPN MSB
81+
- Bit 12: 120 All sound off
82+
- Bit 13: 121 Reset all controllers
83+
- Bit 14: 123 All notes off
84+
- Bit 15: 32 Bank Select LSB (wBank support)
85+
- Bit 16: Sysex changes with wPreset (4.3 and later)
86+
87+
### Leaf 00:08: Generators
88+
89+
- Bit 1: Index gen support
90+
- Bit 2: Range gen support
91+
- Bit 3: Substitution gen support
92+
- Bit 4: Sample gen support
93+
- Bit 5: Value gen support
94+
- Bit 6: PGEN support
95+
- Bit 7: IGEN support
96+
97+
### Leaf 00:09: Zones
98+
99+
- Bit 1: Key range
100+
- Bit 2: Velocity range
101+
- Bit 3: Exclusive class
102+
- Bit 4: Fixed key
103+
- Bit 5: Fixed velocity
104+
- Bit 6: Sample offset
105+
- Bit 7: Loop offset
106+
107+
### Leaf 00:0a: SFCF support (4.2 and later)
108+
109+
- Bit 1: Always play sample to end
110+
- Bit 2: DLS vel-to-vol env.atk
111+
- Bit 3: DLS vel-to-mod env.atk
112+
- Bit 4: Vibrato LFO to volume
113+
114+
## Branch 01: Modulators and NRPN
115+
116+
### Leaf 01:00: Modulators
117+
118+
- Bit 1: Primary source
119+
- Bit 2: Secondary source
120+
- Bit 3: Transform support
121+
- Bit 4: Linear curves
122+
- Bit 5: Concave curves
123+
- Bit 6: Convex curves
124+
- Bit 7: Switch curves
125+
- Bit 8: Positive unipolar
126+
- Bit 9: Negative unipolar
127+
- Bit 10: Positive bipolar
128+
- Bit 11: Negative bipolar
129+
- Bit 12: Modulator chaining
130+
- Bit 13: PMOD support
131+
- Bit 14: IMOD support
132+
133+
### Leaf 01:01: NRPN
134+
135+
- Bit 1: NRPN select MSB=120
136+
- Bit 2: NRPN select LSB: 1-2 digits
137+
- Bit 3: NRPN select LSB: 3 digits
138+
- Bit 4: NRPN select LSB: 4 digits
139+
- Bit 5: NRPN select LSB: 5 digits
140+
141+
### Leaf 01:02: DMOD chunk (4.1 and later)
142+
143+
- Bit 1 off, bit 2 off: No support
144+
- Bit 1 on, bit 2 off: Read support only
145+
- Bit 1 on, bit 2 on: Playback support
146+
147+
### Leaf 01:03: PNMM chunk (4.1 and later)
148+
149+
- Bit 1 off, bit 2 off: No support
150+
- Bit 1 on, bit 2 off: Read support only
151+
- Bit 1 on, bit 2 on: Playback support
152+
- Bit 3: NRPN
153+
- Bit 4: RPN
154+
- Bit 5: MSB
155+
- Bit 6: LSB
156+
157+
## Branch 02: Sample bitdepth support
158+
159+
### Leaf 02:00: 24-bit support
160+
161+
- Bit 1 off, bit 2 off: No support
162+
- Bit 1 on, bit 2 off: Read support only
163+
- Bit 1 on, bit 2 on: Playback support
164+
- Bit 3: 8-bit support
165+
166+
### Leaf 02:01: 32-bit support
167+
168+
- Bit 1 off, bit 2 off: No support
169+
- Bit 1 on, bit 2 off: Read support only
170+
- Bit 1 on, bit 2 on: Playback support
171+
- Bit 2: Support for combining two 8-bit chunks into a 16-bit sample
172+
173+
## Branch 03: Compression support (WernerSF3)
174+
175+
### Leaf 03:00: Compression flag
176+
177+
- 0: sfSampleType bit 4 unsupported
178+
- 1: sfSampleType bit 4 supported
179+
180+
### Leaf 03:01: Sample compression formats
181+
182+
- Bit 1: OGG
183+
- Bit 2: Opus
184+
- Bit 3: FLAC
185+
- Bit 4: MP3
186+
187+
## Branch 04: Metadata upgrades
188+
189+
### Leaf 04:00: Metadata improvements
190+
191+
- Bit 1: UTF-8 in INFO
192+
- Bit 2: UTF-8 in pdta
193+
194+
### Leaf 04:01: Preset management system
195+
196+
- Bit 1: dwLibrary support (4.4 and later)
197+
- Bit 2: dwGenre support (4.4 and later)
198+
- Bit 3: dwMorphology support (future version)

0 commit comments

Comments
 (0)