From ef50dded9bcefd11d72ce47a3c787ee65581ab31 Mon Sep 17 00:00:00 2001
From: sylvia-leaf <33123585+sylvia-leaf@users.noreply.github.com>
Date: Wed, 18 Dec 2024 13:49:15 +0000
Subject: [PATCH 1/5] Update draft-revision-history.md
---
draft-revision-history.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/draft-revision-history.md b/draft-revision-history.md
index 3f1182f..53bb07d 100644
--- a/draft-revision-history.md
+++ b/draft-revision-history.md
@@ -3,6 +3,7 @@
| | | | |
| -------- | ----------------- | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Revision | Type | Date | Description |
+| 4.0-rc1a | Release candidate | December 18, 2024 | Human-readable version introduced
Fixed some words and formatting
Removed reference to dynamic RIFF for now |
| 4.0-rc1 | Release candidate | December 10, 2024 | Overhauled specification structure
Included program and compatibility specifications, AWE ROM emulator specification and feature flags in same document
Removed references to future features
Got rid of even more redundant things
Added a few more sections
Changed some wordings
Added release candidate information
Shortened SF history to just the post-2.04 breakthroughs |
| 4.0.11a | Update | December 9, 2024 | Corrected some hyphenations for the word "sub-chunk". |
| 4.0.11 | Milestone | December 9, 2024 | Separated copyright/trademark and draft disclaimers
Rewritten 0.2
Separated SFe team and special thanks lists
Corrected a name
Added and changed a few definitions
Added concept of RIFF-type format structures and rewrote 3.1 accordingly
Added clarification to 5.12.3 about tree structure
Defined new SFty value for 8-bit samples
Made it clear that a missing smpl sub-chunk without an SFty value that implies 8-bit samples means that a bank is Structurally Unsound
Added 6.2c
Added the SFe Compression 1.0 standard based on FluidSynth Werner SF3 August 2021 specification
Versioning update again
More consistent use of words and formatting
Added SiliconSFe specification
Clarified that no new illustrations are required for SFe 4.0.
Removed reference to real-time synthesis, as that feature won't be added before SFe 5.0 |
From 08432c7c37e969ae3e6e82f4f5763e452c2dada1 Mon Sep 17 00:00:00 2001
From: sylvia-leaf <33123585+sylvia-leaf@users.noreply.github.com>
Date: Sat, 21 Dec 2024 19:09:02 +0000
Subject: [PATCH 2/5] Added new template
---
.github/ISSUE_TEMPLATE/communication.md | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
create mode 100644 .github/ISSUE_TEMPLATE/communication.md
diff --git a/.github/ISSUE_TEMPLATE/communication.md b/.github/ISSUE_TEMPLATE/communication.md
new file mode 100644
index 0000000..5f79e44
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/communication.md
@@ -0,0 +1,20 @@
+---
+name: Communication
+about: Communication with SF program developers
+title: "[Communication]"
+labels: communication
+assignees: sylvia-leaf
+
+---
+
+**Describe the solution you'd like**
+A clear and concise description of what you want to happen.
+
+**Describe alternatives you've considered**
+A clear and concise description of any alternative solutions or features you've considered.
+
+**Additional context**
+Add any other context or screenshots about the issue here.
+
+**Who do we need to communicate with?**
+Tell us who needs to know about this plan or proposal.
From ded3384081063b7480dba8d436db6ff2f8b86034 Mon Sep 17 00:00:00 2001
From: sylvia-leaf <33123585+sylvia-leaf@users.noreply.github.com>
Date: Tue, 24 Dec 2024 10:30:36 +0000
Subject: [PATCH 3/5] Start work on RC2
---
draft-revision-history.md | 53 ++++++++++---------
....0-rc1a.md => sfe-specification-4.0-dev.md | 14 +++--
2 files changed, 33 insertions(+), 34 deletions(-)
rename sfe-specification-4.0-rc1a.md => sfe-specification-4.0-dev.md (99%)
diff --git a/draft-revision-history.md b/draft-revision-history.md
index 53bb07d..db3ce38 100644
--- a/draft-revision-history.md
+++ b/draft-revision-history.md
@@ -1,29 +1,30 @@
-# SFe Draft Specification Revision History 4.0-rc1
+# SFe Draft Specification Revision History 4.0-20241224
-| | | | |
-| -------- | ----------------- | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| Revision | Type | Date | Description |
-| 4.0-rc1a | Release candidate | December 18, 2024 | Human-readable version introduced
Fixed some words and formatting
Removed reference to dynamic RIFF for now |
-| 4.0-rc1 | Release candidate | December 10, 2024 | Overhauled specification structure
Included program and compatibility specifications, AWE ROM emulator specification and feature flags in same document
Removed references to future features
Got rid of even more redundant things
Added a few more sections
Changed some wordings
Added release candidate information
Shortened SF history to just the post-2.04 breakthroughs |
-| 4.0.11a | Update | December 9, 2024 | Corrected some hyphenations for the word "sub-chunk". |
-| 4.0.11 | Milestone | December 9, 2024 | Separated copyright/trademark and draft disclaimers
Rewritten 0.2
Separated SFe team and special thanks lists
Corrected a name
Added and changed a few definitions
Added concept of RIFF-type format structures and rewrote 3.1 accordingly
Added clarification to 5.12.3 about tree structure
Defined new SFty value for 8-bit samples
Made it clear that a missing smpl sub-chunk without an SFty value that implies 8-bit samples means that a bank is Structurally Unsound
Added 6.2c
Added the SFe Compression 1.0 standard based on FluidSynth Werner SF3 August 2021 specification
Versioning update again
More consistent use of words and formatting
Added SiliconSFe specification
Clarified that no new illustrations are required for SFe 4.0.
Removed reference to real-time synthesis, as that feature won't be added before SFe 5.0 |
-| 4.0.10 | Milestone | November 19, 2024 | Removed leading zeros in versioning
Updated license to be truly Open Source
SFty sub-chunk now required
Added SFvx and flag subchunks
Changed version planning
Removed references to new enum values for now (will be reintroduced in 4.1)
Added UTF-8 to isng
Removed info sub-chunk length limits
Updated structure in section 4
Fixed a pronoun
Merged SFe32 and SFe64 into a single specification once again
Added section about chunk header types and long term support of SFe 4 |
-| 4.0.9c | Update | November 16, 2024 | Updated SFe Team member listing |
-| 4.0.9b | Update | November 14, 2024 | Replaced wBank in a backwards-compatible manner to make it easier for developers to understand |
-| 4.0.9 | Milestone | November 14, 2024 | Updated definitions of "case-insensitive" and "case-sensitive" to use UTF-8 instead of Ascii.
7.2, 7.6 and 7.10 now use UTF-8 instead of ascii.
Changed wPreset to use the ISFe bank for implementation in 4.04.
Because the preset library management system values are DWORDs, reworking them for 4.05.
Added license
Re-added 9.7 from SF2.04 with updated information about implementation accuracy
Clarified incompatibility of cognitone-formatted banks
Changed format extensions
Changed ISFe-list sub-chunk to a list
Added SFty sub-chunk in ISFe-list sub-chunk |
-| 4.0.8 | Milestone | October 30, 2024 | Started to fix SFe RIFF structure for 4.1-4.4
Now consistent with WernerSF3
Clarified versioning information |
-| 4.0.7c | Update | October 17, 2024 | Fixed some more things
Name update |
-| 4.0.7b | Update | October 12, 2024 | Updated program SFe32-to-SFe64 specification
Fix capitalisation in 1.5a
Remove extraneous table of contents entries
Fix more registered trademark symbols
|
-| 4.0.7 | Milestone | October 10, 2024 | Table of contents added
Merge the pages into one
Fix the typos and formatting
Special thanks for spessasus for authoring these changes!
|
-| 4.0.6 | Milestone | October 3, 2024 | Added milestone classification for some draft specifications in 0.1a
Removed all SFe32-specific information, renamed to SFe64 spec
Renamed 3.1a to 3.1, 6.1a to 6.1, 6.1b to 6.1a, 6.2a to 6.2, and 6.2b to 6.2a, for consistency
Delayed modulator update to version 4.1
Removed 7.1a, because it's not relevant to versions before 5.00
Added LSB to example value in 10.1a
Added more information about future plans
Reworked SFe64 to be a simple 64-bit extension to SFe32 for now, features will come later |
-| 4.0.5c | Update | September 2, 2024 | Added clarification for timeframe in which 0.4 will be filled out
Rewritten 1.1a to be clearer, moving links from 1.1b
Removed redundant "important" words in 1.1b
Moved some compatibility info from sections 1.3 and 3.1 to compatibility spec
ROM samples no longer listed as deprecated in 3.2, 5.4, 5.5 and 6.1a
Error handling plans for version 4.00.6 added in 3.3
Fixed capitalisation in 4.5
Added section 4.5a for file format extensions, removed .sf32 and .sf64
Removed isfe reference for 5.1, SFe32 programs can determine WernerSF3 with wMajor=3
Fixed reference to compatibility spec in 5.1a, compatibility spec is not used in SFe64
Rewritten 5.2 to make it clearer, and to mention default modulator definitions for 4.01.
Added heading 3 in formatting of section 7 and section 7.1a for subchunk size alignment.
Removed reverb/chorus definitions in 8.1.2, 8.1.3 and 9.1.5 (will be restored in 4.1)
Fixed some other typos and added a few other clarifications |
-| 4.0.5b | Update | September 1, 2024 | Clarified information about sample rates in section 7.10 |
-| 4.0.5 | Milestone | August 30, 2024 | All remaining SF32/SF64 references should now be renamed to SFe32/SFe64
Added ROM sample specification for the AWE ROM emulator
Replaced draft number references with the new versioning system
Added clarification for the compatibility specification versioning
Fixed mistake in INFO chunk information in the compatibility specification
Clarified that this document is not created by E-mu
Added placeholder for the SF Server link
Specific version number added to title
Added instructions to compatibility spec about how to handle incompatible compression
Error messages modified to remove scom reference and fix version 3 reference to version 4
Added section 1.5a to mention future plans for the SFe format
Added 0.1a to describe specification versioning
Removed unnecessary information about Creative Technology
Proprietary compression formats are now forbidden in the program specification
Added references to SFe Team; a list of developers can be found in 0.3a.
Next version for release by early 2025 will have the SFe file repair program specification |
-| 4.0.4 | Milestone | July 4, 2024 | Clarified about legacy compliance and TSC in section 3.2.
Added more clarification in revision history
8-bit mode information updated again
Added info about how SFe32 can be parsed as SFe64
More information about the pdta structure added
Real time synthesis is no longer mandatory
Renamed to version 4 and updated versioning scheme
Added preliminary Werner SF3 compatibility
Removed scom sub-chunk
For now, removed increased character limits in SFe32.
Changed sleaf's name on the contact.
Added information on bank select and TSC mode
Added the isfe sub-chunk for SFe64
One mention of "back and forth" now "bidirectional"
Added and clarified some terms in glossary
Stated that incompatible compression is no longer allowed in 6.1b.
Renamed SF32 and SF64 to SFe32 and SFe64.
Added clarification of "SFe format developers" in 1.5.
Moved compatibility information to the compatibility specification.
Added 5.1a to describe ifil sub-chunk versioning. |
-| 4.0.3 | Milestone | September 6, 2022 | Added clarification
Renamed 32-bit SF version 3 to SF32
Overall format has been renamed to SFe (SF enhanced)
wBank bit 9 is no longer reserved.
Silicon SF banks for SF64
Added CM reset
Changed isng value
Fixed some pdta sub-chunks for SF64
Corrected sfSampleType reference from bit 15 to bit 16.
Renamed "back and forth" to "bidirectional"
Changed "improved" to "fixed" in revision log
Added a nicer diagram (can you find it?)
Fixed extraneous reference to wBank2 in section 4.
Modified information about the scom sub-chunk.
8-bit mode information updated |
-| 4.0.2 | Milestone | July 22, 2022 | Renamed 64-bit SF3 to SF64 version 3
32-bit SF3 is now 32-bit SF version 3
Changed ASCII to UTF-8
Fixed the wPreset and wBank (removed wBank2) |
-| 4.0.1 | Milestone | April 12, 2020 | First version |
-| (2.04a) | Final | (February 3, 2006) | (The date listed in the specification title, different to value in 0.1 table in SF2.04) |
-| (2.04) | Final | (September 10, 2002) | (Last version authored by E-mu until format abandoned) |
+| | | | |
+| -------------- | ----------------- | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Revision | Type | Date | Description |
+| Latest version | Development | December 24, 2024 | Made small changes to the feature flag system |
+| 4.0-rc1a | Release candidate | December 18, 2024 | Human-readable version introduced
Fixed some words and formatting
Removed reference to dynamic RIFF for now |
+| 4.0-rc1 | Release candidate | December 10, 2024 | Overhauled specification structure
Included program and compatibility specifications, AWE ROM emulator specification and feature flags in same document
Removed references to future features
Got rid of even more redundant things
Added a few more sections
Changed some wordings
Added release candidate information
Shortened SF history to just the post-2.04 breakthroughs |
+| 4.0.11a | Update | December 9, 2024 | Corrected some hyphenations for the word "sub-chunk". |
+| 4.0.11 | Milestone | December 9, 2024 | Separated copyright/trademark and draft disclaimers
Rewritten 0.2
Separated SFe team and special thanks lists
Corrected a name
Added and changed a few definitions
Added concept of RIFF-type format structures and rewrote 3.1 accordingly
Added clarification to 5.12.3 about tree structure
Defined new SFty value for 8-bit samples
Made it clear that a missing smpl sub-chunk without an SFty value that implies 8-bit samples means that a bank is Structurally Unsound
Added 6.2c
Added the SFe Compression 1.0 standard based on FluidSynth Werner SF3 August 2021 specification
Versioning update again
More consistent use of words and formatting
Added SiliconSFe specification
Clarified that no new illustrations are required for SFe 4.0.
Removed reference to real-time synthesis, as that feature won't be added before SFe 5.0 |
+| 4.0.10 | Milestone | November 19, 2024 | Removed leading zeros in versioning
Updated license to be truly Open Source
SFty sub-chunk now required
Added SFvx and flag subchunks
Changed version planning
Removed references to new enum values for now (will be reintroduced in 4.1)
Added UTF-8 to isng
Removed info sub-chunk length limits
Updated structure in section 4
Fixed a pronoun
Merged SFe32 and SFe64 into a single specification once again
Added section about chunk header types and long term support of SFe 4 |
+| 4.0.9c | Update | November 16, 2024 | Updated SFe Team member listing |
+| 4.0.9b | Update | November 14, 2024 | Replaced wBank in a backwards-compatible manner to make it easier for developers to understand |
+| 4.0.9 | Milestone | November 14, 2024 | Updated definitions of "case-insensitive" and "case-sensitive" to use UTF-8 instead of Ascii.
7.2, 7.6 and 7.10 now use UTF-8 instead of ascii.
Changed wPreset to use the ISFe bank for implementation in 4.04.
Because the preset library management system values are DWORDs, reworking them for 4.05.
Added license
Re-added 9.7 from SF2.04 with updated information about implementation accuracy
Clarified incompatibility of cognitone-formatted banks
Changed format extensions
Changed ISFe-list sub-chunk to a list
Added SFty sub-chunk in ISFe-list sub-chunk |
+| 4.0.8 | Milestone | October 30, 2024 | Started to fix SFe RIFF structure for 4.1-4.4
Now consistent with WernerSF3
Clarified versioning information |
+| 4.0.7c | Update | October 17, 2024 | Fixed some more things
Name update |
+| 4.0.7b | Update | October 12, 2024 | Updated program SFe32-to-SFe64 specification
Fix capitalisation in 1.5a
Remove extraneous table of contents entries
Fix more registered trademark symbols
|
+| 4.0.7 | Milestone | October 10, 2024 | Table of contents added
Merge the pages into one
Fix the typos and formatting
Special thanks for spessasus for authoring these changes!
|
+| 4.0.6 | Milestone | October 3, 2024 | Added milestone classification for some draft specifications in 0.1a
Removed all SFe32-specific information, renamed to SFe64 spec
Renamed 3.1a to 3.1, 6.1a to 6.1, 6.1b to 6.1a, 6.2a to 6.2, and 6.2b to 6.2a, for consistency
Delayed modulator update to version 4.1
Removed 7.1a, because it's not relevant to versions before 5.00
Added LSB to example value in 10.1a
Added more information about future plans
Reworked SFe64 to be a simple 64-bit extension to SFe32 for now, features will come later |
+| 4.0.5c | Update | September 2, 2024 | Added clarification for timeframe in which 0.4 will be filled out
Rewritten 1.1a to be clearer, moving links from 1.1b
Removed redundant "important" words in 1.1b
Moved some compatibility info from sections 1.3 and 3.1 to compatibility spec
ROM samples no longer listed as deprecated in 3.2, 5.4, 5.5 and 6.1a
Error handling plans for version 4.00.6 added in 3.3
Fixed capitalisation in 4.5
Added section 4.5a for file format extensions, removed .sf32 and .sf64
Removed isfe reference for 5.1, SFe32 programs can determine WernerSF3 with wMajor=3
Fixed reference to compatibility spec in 5.1a, compatibility spec is not used in SFe64
Rewritten 5.2 to make it clearer, and to mention default modulator definitions for 4.01.
Added heading 3 in formatting of section 7 and section 7.1a for subchunk size alignment.
Removed reverb/chorus definitions in 8.1.2, 8.1.3 and 9.1.5 (will be restored in 4.1)
Fixed some other typos and added a few other clarifications |
+| 4.0.5b | Update | September 1, 2024 | Clarified information about sample rates in section 7.10 |
+| 4.0.5 | Milestone | August 30, 2024 | All remaining SF32/SF64 references should now be renamed to SFe32/SFe64
Added ROM sample specification for the AWE ROM emulator
Replaced draft number references with the new versioning system
Added clarification for the compatibility specification versioning
Fixed mistake in INFO chunk information in the compatibility specification
Clarified that this document is not created by E-mu
Added placeholder for the SF Server link
Specific version number added to title
Added instructions to compatibility spec about how to handle incompatible compression
Error messages modified to remove scom reference and fix version 3 reference to version 4
Added section 1.5a to mention future plans for the SFe format
Added 0.1a to describe specification versioning
Removed unnecessary information about Creative Technology
Proprietary compression formats are now forbidden in the program specification
Added references to SFe Team; a list of developers can be found in 0.3a.
Next version for release by early 2025 will have the SFe file repair program specification |
+| 4.0.4 | Milestone | July 4, 2024 | Clarified about legacy compliance and TSC in section 3.2.
Added more clarification in revision history
8-bit mode information updated again
Added info about how SFe32 can be parsed as SFe64
More information about the pdta structure added
Real time synthesis is no longer mandatory
Renamed to version 4 and updated versioning scheme
Added preliminary Werner SF3 compatibility
Removed scom sub-chunk
For now, removed increased character limits in SFe32.
Changed sleaf's name on the contact.
Added information on bank select and TSC mode
Added the isfe sub-chunk for SFe64
One mention of "back and forth" now "bidirectional"
Added and clarified some terms in glossary
Stated that incompatible compression is no longer allowed in 6.1b.
Renamed SF32 and SF64 to SFe32 and SFe64.
Added clarification of "SFe format developers" in 1.5.
Moved compatibility information to the compatibility specification.
Added 5.1a to describe ifil sub-chunk versioning. |
+| 4.0.3 | Milestone | September 6, 2022 | Added clarification
Renamed 32-bit SF version 3 to SF32
Overall format has been renamed to SFe (SF enhanced)
wBank bit 9 is no longer reserved.
Silicon SF banks for SF64
Added CM reset
Changed isng value
Fixed some pdta sub-chunks for SF64
Corrected sfSampleType reference from bit 15 to bit 16.
Renamed "back and forth" to "bidirectional"
Changed "improved" to "fixed" in revision log
Added a nicer diagram (can you find it?)
Fixed extraneous reference to wBank2 in section 4.
Modified information about the scom sub-chunk.
8-bit mode information updated |
+| 4.0.2 | Milestone | July 22, 2022 | Renamed 64-bit SF3 to SF64 version 3
32-bit SF3 is now 32-bit SF version 3
Changed ASCII to UTF-8
Fixed the wPreset and wBank (removed wBank2) |
+| 4.0.1 | Milestone | April 12, 2020 | First version |
+| (2.04a) | Final | (February 3, 2006) | (The date listed in the specification title, different to value in 0.1 table in SF2.04) |
+| (2.04) | Final | (September 10, 2002) | (Last version authored by E-mu until format abandoned) |
The revision history table refers to development versions as "This version" and includes the cumulative changes made to the specification since the last milestone revision.
diff --git a/sfe-specification-4.0-rc1a.md b/sfe-specification-4.0-dev.md
similarity index 99%
rename from sfe-specification-4.0-rc1a.md
rename to sfe-specification-4.0-dev.md
index df9d763..db271b8 100644
--- a/sfe-specification-4.0-rc1a.md
+++ b/sfe-specification-4.0-dev.md
@@ -1,6 +1,6 @@
# SF-enhanced (SFe) 4 specification
-## Machine readable version (Markdown) - 4.0-rc1a (18/12/2024)
+## Machine readable version (Markdown) - 4.0-20241224
Copyright © 2024 SFe Team and contributors
@@ -27,9 +27,9 @@ The SFe standard has been created to provide a successor to E-mu Systems®'s Sou
## 1.2 Changelog
-| Revision | Date | Description |
-| -------- | ---------------- | ----------- |
-| 4.0-rc1a | 18 December 2024 | n/a |
+| Revision | Date | Description |
+| ------------ | ---------------- | ----------- |
+| This version | 24 December 2024 | n/a |
For draft specification revision history, see `draft-revision-history.md` (available in the SFe specification package or on the GitHub repository).
@@ -943,13 +943,11 @@ The feature flags system is split like this:
- Bit 2: Reserved
- Bit 3: Reserved
-### 6.2.7 Branch 05 SiliconSFe support
-
-#### 05:00 User-defined sample ROMs
+#### 04:02 User-defined sample ROMs
- Bit 1: Support for user-defined sample ROMs
-#### 05:01 ROM emulator
+#### 04:03 ROM emulator
- Bit 1: 1MB ROM emulator support
From ceca86d77f76b3bd51313f8f9eb62eb145205e08 Mon Sep 17 00:00:00 2001
From: sylvia-leaf <33123585+sylvia-leaf@users.noreply.github.com>
Date: Tue, 24 Dec 2024 11:17:26 +0000
Subject: [PATCH 4/5] Definition of how SFe programs handle duplicated presets
between banks
---
sfe-specification-4.0-dev.md | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/sfe-specification-4.0-dev.md b/sfe-specification-4.0-dev.md
index db271b8..30e522b 100644
--- a/sfe-specification-4.0-dev.md
+++ b/sfe-specification-4.0-dev.md
@@ -1,6 +1,6 @@
# SF-enhanced (SFe) 4 specification
-## Machine readable version (Markdown) - 4.0-20241224
+## Machine readable version (Markdown) - 4.0-20241224a
Copyright © 2024 SFe Team and contributors
@@ -1015,7 +1015,7 @@ This occurs when the file is structurally damaged or manually edited in a manner
- In SFe, the preset to be used is no longer necessarily the first one. Instead, selecting the correct preset (or combination of presets) to use will be permissible.
- Such a feature is optional, and if not implemented, the player should use the legacy SF2.04 behavior in these cases (use the first preset found).
- Editors should warn the user if such presets are found.
-- This behavior might change in future versions, so please take the `ifil` value, and later versions of this specification, into account. In particular, later versions of SFe will use the `ISFe-list` sub-chunk to determine this behavior.
+- This behavior might change in future versions, so please take the `ifil` value, and later versions of this specification, into account.
## 8.4 Duplicated preset locations across files
@@ -1025,9 +1025,10 @@ This occurs when multiple files are loaded simultaneously (now a required featur
- This was because multiple file loading was not a standard feature mandated in the legacy SoundFont® standard.
- Legacy SF2.04 and Werner SF3 compatible software developers therefore had the liberty to implement multiple file loading; however, they wanted to.
- This edge case will now be defined in SFe.
-- If multiple presets across loaded files have the same value of `byBankMSB`, `byBankLSB` and `wPreset`, then the preset to be used may be selectable from all the presets with the same bank location, depending on the player implementation. The preset to be used may also be a combination of multiple presets.
-- Such a feature is also optional, and if not implemented, you can either use the first preset found, or you can combine all the presets.
-- This behavior might change in future versions, so please take the `ifil` value, and later versions of this specification, into account. In particular, later versions of SFe will use the `ISFe-list` sub-chunk to determine this behavior.
+- If multiple presets across loaded files have the same value of `byBankMSB`, `byBankLSB` and `wPreset`, then the preset to be used may be selectable from all the presets with the same bank location (in the way described in section 8.3).
+- Such a feature is optional, and if not implemented, the player should use the legacy SF2.04 behavior in these cases (use the first preset found).
+- Editors should warn the user if such presets are found.
+- This behavior might change in future versions, so please take the `ifil` value, and later versions of this specification, into account.
## 8.5 Undefined chunks
From c9986976af27c6f12942d3ddbf55b6e87874575a Mon Sep 17 00:00:00 2001
From: sylvia-leaf <33123585+sylvia-leaf@users.noreply.github.com>
Date: Thu, 26 Dec 2024 11:19:39 +0000
Subject: [PATCH 5/5] Release RC2 earlier than expected
Now that Polyphone 2.5 is released, RC2 is intended to be the stable specification that is used for Polyphone3. The release on 11 January 2025 including the logo assets will be RC3, and there's a good chance that RC3 will be declared as the final version.
---
draft-revision-history.md | 52 +++++++++----------
...4.0-dev.md => sfe-specification-4.0-rc2.md | 8 +--
2 files changed, 30 insertions(+), 30 deletions(-)
rename sfe-specification-4.0-dev.md => sfe-specification-4.0-rc2.md (99%)
diff --git a/draft-revision-history.md b/draft-revision-history.md
index db3ce38..f580932 100644
--- a/draft-revision-history.md
+++ b/draft-revision-history.md
@@ -1,30 +1,30 @@
# SFe Draft Specification Revision History 4.0-20241224
-| | | | |
-| -------------- | ----------------- | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| Revision | Type | Date | Description |
-| Latest version | Development | December 24, 2024 | Made small changes to the feature flag system |
-| 4.0-rc1a | Release candidate | December 18, 2024 | Human-readable version introduced
Fixed some words and formatting
Removed reference to dynamic RIFF for now |
-| 4.0-rc1 | Release candidate | December 10, 2024 | Overhauled specification structure
Included program and compatibility specifications, AWE ROM emulator specification and feature flags in same document
Removed references to future features
Got rid of even more redundant things
Added a few more sections
Changed some wordings
Added release candidate information
Shortened SF history to just the post-2.04 breakthroughs |
-| 4.0.11a | Update | December 9, 2024 | Corrected some hyphenations for the word "sub-chunk". |
-| 4.0.11 | Milestone | December 9, 2024 | Separated copyright/trademark and draft disclaimers
Rewritten 0.2
Separated SFe team and special thanks lists
Corrected a name
Added and changed a few definitions
Added concept of RIFF-type format structures and rewrote 3.1 accordingly
Added clarification to 5.12.3 about tree structure
Defined new SFty value for 8-bit samples
Made it clear that a missing smpl sub-chunk without an SFty value that implies 8-bit samples means that a bank is Structurally Unsound
Added 6.2c
Added the SFe Compression 1.0 standard based on FluidSynth Werner SF3 August 2021 specification
Versioning update again
More consistent use of words and formatting
Added SiliconSFe specification
Clarified that no new illustrations are required for SFe 4.0.
Removed reference to real-time synthesis, as that feature won't be added before SFe 5.0 |
-| 4.0.10 | Milestone | November 19, 2024 | Removed leading zeros in versioning
Updated license to be truly Open Source
SFty sub-chunk now required
Added SFvx and flag subchunks
Changed version planning
Removed references to new enum values for now (will be reintroduced in 4.1)
Added UTF-8 to isng
Removed info sub-chunk length limits
Updated structure in section 4
Fixed a pronoun
Merged SFe32 and SFe64 into a single specification once again
Added section about chunk header types and long term support of SFe 4 |
-| 4.0.9c | Update | November 16, 2024 | Updated SFe Team member listing |
-| 4.0.9b | Update | November 14, 2024 | Replaced wBank in a backwards-compatible manner to make it easier for developers to understand |
-| 4.0.9 | Milestone | November 14, 2024 | Updated definitions of "case-insensitive" and "case-sensitive" to use UTF-8 instead of Ascii.
7.2, 7.6 and 7.10 now use UTF-8 instead of ascii.
Changed wPreset to use the ISFe bank for implementation in 4.04.
Because the preset library management system values are DWORDs, reworking them for 4.05.
Added license
Re-added 9.7 from SF2.04 with updated information about implementation accuracy
Clarified incompatibility of cognitone-formatted banks
Changed format extensions
Changed ISFe-list sub-chunk to a list
Added SFty sub-chunk in ISFe-list sub-chunk |
-| 4.0.8 | Milestone | October 30, 2024 | Started to fix SFe RIFF structure for 4.1-4.4
Now consistent with WernerSF3
Clarified versioning information |
-| 4.0.7c | Update | October 17, 2024 | Fixed some more things
Name update |
-| 4.0.7b | Update | October 12, 2024 | Updated program SFe32-to-SFe64 specification
Fix capitalisation in 1.5a
Remove extraneous table of contents entries
Fix more registered trademark symbols
|
-| 4.0.7 | Milestone | October 10, 2024 | Table of contents added
Merge the pages into one
Fix the typos and formatting
Special thanks for spessasus for authoring these changes!
|
-| 4.0.6 | Milestone | October 3, 2024 | Added milestone classification for some draft specifications in 0.1a
Removed all SFe32-specific information, renamed to SFe64 spec
Renamed 3.1a to 3.1, 6.1a to 6.1, 6.1b to 6.1a, 6.2a to 6.2, and 6.2b to 6.2a, for consistency
Delayed modulator update to version 4.1
Removed 7.1a, because it's not relevant to versions before 5.00
Added LSB to example value in 10.1a
Added more information about future plans
Reworked SFe64 to be a simple 64-bit extension to SFe32 for now, features will come later |
-| 4.0.5c | Update | September 2, 2024 | Added clarification for timeframe in which 0.4 will be filled out
Rewritten 1.1a to be clearer, moving links from 1.1b
Removed redundant "important" words in 1.1b
Moved some compatibility info from sections 1.3 and 3.1 to compatibility spec
ROM samples no longer listed as deprecated in 3.2, 5.4, 5.5 and 6.1a
Error handling plans for version 4.00.6 added in 3.3
Fixed capitalisation in 4.5
Added section 4.5a for file format extensions, removed .sf32 and .sf64
Removed isfe reference for 5.1, SFe32 programs can determine WernerSF3 with wMajor=3
Fixed reference to compatibility spec in 5.1a, compatibility spec is not used in SFe64
Rewritten 5.2 to make it clearer, and to mention default modulator definitions for 4.01.
Added heading 3 in formatting of section 7 and section 7.1a for subchunk size alignment.
Removed reverb/chorus definitions in 8.1.2, 8.1.3 and 9.1.5 (will be restored in 4.1)
Fixed some other typos and added a few other clarifications |
-| 4.0.5b | Update | September 1, 2024 | Clarified information about sample rates in section 7.10 |
-| 4.0.5 | Milestone | August 30, 2024 | All remaining SF32/SF64 references should now be renamed to SFe32/SFe64
Added ROM sample specification for the AWE ROM emulator
Replaced draft number references with the new versioning system
Added clarification for the compatibility specification versioning
Fixed mistake in INFO chunk information in the compatibility specification
Clarified that this document is not created by E-mu
Added placeholder for the SF Server link
Specific version number added to title
Added instructions to compatibility spec about how to handle incompatible compression
Error messages modified to remove scom reference and fix version 3 reference to version 4
Added section 1.5a to mention future plans for the SFe format
Added 0.1a to describe specification versioning
Removed unnecessary information about Creative Technology
Proprietary compression formats are now forbidden in the program specification
Added references to SFe Team; a list of developers can be found in 0.3a.
Next version for release by early 2025 will have the SFe file repair program specification |
-| 4.0.4 | Milestone | July 4, 2024 | Clarified about legacy compliance and TSC in section 3.2.
Added more clarification in revision history
8-bit mode information updated again
Added info about how SFe32 can be parsed as SFe64
More information about the pdta structure added
Real time synthesis is no longer mandatory
Renamed to version 4 and updated versioning scheme
Added preliminary Werner SF3 compatibility
Removed scom sub-chunk
For now, removed increased character limits in SFe32.
Changed sleaf's name on the contact.
Added information on bank select and TSC mode
Added the isfe sub-chunk for SFe64
One mention of "back and forth" now "bidirectional"
Added and clarified some terms in glossary
Stated that incompatible compression is no longer allowed in 6.1b.
Renamed SF32 and SF64 to SFe32 and SFe64.
Added clarification of "SFe format developers" in 1.5.
Moved compatibility information to the compatibility specification.
Added 5.1a to describe ifil sub-chunk versioning. |
-| 4.0.3 | Milestone | September 6, 2022 | Added clarification
Renamed 32-bit SF version 3 to SF32
Overall format has been renamed to SFe (SF enhanced)
wBank bit 9 is no longer reserved.
Silicon SF banks for SF64
Added CM reset
Changed isng value
Fixed some pdta sub-chunks for SF64
Corrected sfSampleType reference from bit 15 to bit 16.
Renamed "back and forth" to "bidirectional"
Changed "improved" to "fixed" in revision log
Added a nicer diagram (can you find it?)
Fixed extraneous reference to wBank2 in section 4.
Modified information about the scom sub-chunk.
8-bit mode information updated |
-| 4.0.2 | Milestone | July 22, 2022 | Renamed 64-bit SF3 to SF64 version 3
32-bit SF3 is now 32-bit SF version 3
Changed ASCII to UTF-8
Fixed the wPreset and wBank (removed wBank2) |
-| 4.0.1 | Milestone | April 12, 2020 | First version |
-| (2.04a) | Final | (February 3, 2006) | (The date listed in the specification title, different to value in 0.1 table in SF2.04) |
-| (2.04) | Final | (September 10, 2002) | (Last version authored by E-mu until format abandoned) |
+| | | | |
+| -------- | ----------------- | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Revision | Type | Date | Description |
+| 4.0-rc2 | Development | December 26, 2024 | Made small changes to the feature flag system
Revised how duplicated presets between banks are handled
Deleted a few references to future versions |
+| 4.0-rc1a | Release candidate | December 18, 2024 | Human-readable version introduced
Fixed some words and formatting
Removed reference to dynamic RIFF for now |
+| 4.0-rc1 | Release candidate | December 10, 2024 | Overhauled specification structure
Included program and compatibility specifications, AWE ROM emulator specification and feature flags in same document
Removed references to future features
Got rid of even more redundant things
Added a few more sections
Changed some wordings
Added release candidate information
Shortened SF history to just the post-2.04 breakthroughs |
+| 4.0.11a | Update | December 9, 2024 | Corrected some hyphenations for the word "sub-chunk". |
+| 4.0.11 | Milestone | December 9, 2024 | Separated copyright/trademark and draft disclaimers
Rewritten 0.2
Separated SFe team and special thanks lists
Corrected a name
Added and changed a few definitions
Added concept of RIFF-type format structures and rewrote 3.1 accordingly
Added clarification to 5.12.3 about tree structure
Defined new SFty value for 8-bit samples
Made it clear that a missing smpl sub-chunk without an SFty value that implies 8-bit samples means that a bank is Structurally Unsound
Added 6.2c
Added the SFe Compression 1.0 standard based on FluidSynth Werner SF3 August 2021 specification
Versioning update again
More consistent use of words and formatting
Added SiliconSFe specification
Clarified that no new illustrations are required for SFe 4.0.
Removed reference to real-time synthesis, as that feature won't be added before SFe 5.0 |
+| 4.0.10 | Milestone | November 19, 2024 | Removed leading zeros in versioning
Updated license to be truly Open Source
SFty sub-chunk now required
Added SFvx and flag subchunks
Changed version planning
Removed references to new enum values for now (will be reintroduced in 4.1)
Added UTF-8 to isng
Removed info sub-chunk length limits
Updated structure in section 4
Fixed a pronoun
Merged SFe32 and SFe64 into a single specification once again
Added section about chunk header types and long term support of SFe 4 |
+| 4.0.9c | Update | November 16, 2024 | Updated SFe Team member listing |
+| 4.0.9b | Update | November 14, 2024 | Replaced wBank in a backwards-compatible manner to make it easier for developers to understand |
+| 4.0.9 | Milestone | November 14, 2024 | Updated definitions of "case-insensitive" and "case-sensitive" to use UTF-8 instead of Ascii.
7.2, 7.6 and 7.10 now use UTF-8 instead of ascii.
Changed wPreset to use the ISFe bank for implementation in 4.04.
Because the preset library management system values are DWORDs, reworking them for 4.05.
Added license
Re-added 9.7 from SF2.04 with updated information about implementation accuracy
Clarified incompatibility of cognitone-formatted banks
Changed format extensions
Changed ISFe-list sub-chunk to a list
Added SFty sub-chunk in ISFe-list sub-chunk |
+| 4.0.8 | Milestone | October 30, 2024 | Started to fix SFe RIFF structure for 4.1-4.4
Now consistent with WernerSF3
Clarified versioning information |
+| 4.0.7c | Update | October 17, 2024 | Fixed some more things
Name update |
+| 4.0.7b | Update | October 12, 2024 | Updated program SFe32-to-SFe64 specification
Fix capitalisation in 1.5a
Remove extraneous table of contents entries
Fix more registered trademark symbols
|
+| 4.0.7 | Milestone | October 10, 2024 | Table of contents added
Merge the pages into one
Fix the typos and formatting
Special thanks for spessasus for authoring these changes!
|
+| 4.0.6 | Milestone | October 3, 2024 | Added milestone classification for some draft specifications in 0.1a
Removed all SFe32-specific information, renamed to SFe64 spec
Renamed 3.1a to 3.1, 6.1a to 6.1, 6.1b to 6.1a, 6.2a to 6.2, and 6.2b to 6.2a, for consistency
Delayed modulator update to version 4.1
Removed 7.1a, because it's not relevant to versions before 5.00
Added LSB to example value in 10.1a
Added more information about future plans
Reworked SFe64 to be a simple 64-bit extension to SFe32 for now, features will come later |
+| 4.0.5c | Update | September 2, 2024 | Added clarification for timeframe in which 0.4 will be filled out
Rewritten 1.1a to be clearer, moving links from 1.1b
Removed redundant "important" words in 1.1b
Moved some compatibility info from sections 1.3 and 3.1 to compatibility spec
ROM samples no longer listed as deprecated in 3.2, 5.4, 5.5 and 6.1a
Error handling plans for version 4.00.6 added in 3.3
Fixed capitalisation in 4.5
Added section 4.5a for file format extensions, removed .sf32 and .sf64
Removed isfe reference for 5.1, SFe32 programs can determine WernerSF3 with wMajor=3
Fixed reference to compatibility spec in 5.1a, compatibility spec is not used in SFe64
Rewritten 5.2 to make it clearer, and to mention default modulator definitions for 4.01.
Added heading 3 in formatting of section 7 and section 7.1a for subchunk size alignment.
Removed reverb/chorus definitions in 8.1.2, 8.1.3 and 9.1.5 (will be restored in 4.1)
Fixed some other typos and added a few other clarifications |
+| 4.0.5b | Update | September 1, 2024 | Clarified information about sample rates in section 7.10 |
+| 4.0.5 | Milestone | August 30, 2024 | All remaining SF32/SF64 references should now be renamed to SFe32/SFe64
Added ROM sample specification for the AWE ROM emulator
Replaced draft number references with the new versioning system
Added clarification for the compatibility specification versioning
Fixed mistake in INFO chunk information in the compatibility specification
Clarified that this document is not created by E-mu
Added placeholder for the SF Server link
Specific version number added to title
Added instructions to compatibility spec about how to handle incompatible compression
Error messages modified to remove scom reference and fix version 3 reference to version 4
Added section 1.5a to mention future plans for the SFe format
Added 0.1a to describe specification versioning
Removed unnecessary information about Creative Technology
Proprietary compression formats are now forbidden in the program specification
Added references to SFe Team; a list of developers can be found in 0.3a.
Next version for release by early 2025 will have the SFe file repair program specification |
+| 4.0.4 | Milestone | July 4, 2024 | Clarified about legacy compliance and TSC in section 3.2.
Added more clarification in revision history
8-bit mode information updated again
Added info about how SFe32 can be parsed as SFe64
More information about the pdta structure added
Real time synthesis is no longer mandatory
Renamed to version 4 and updated versioning scheme
Added preliminary Werner SF3 compatibility
Removed scom sub-chunk
For now, removed increased character limits in SFe32.
Changed sleaf's name on the contact.
Added information on bank select and TSC mode
Added the isfe sub-chunk for SFe64
One mention of "back and forth" now "bidirectional"
Added and clarified some terms in glossary
Stated that incompatible compression is no longer allowed in 6.1b.
Renamed SF32 and SF64 to SFe32 and SFe64.
Added clarification of "SFe format developers" in 1.5.
Moved compatibility information to the compatibility specification.
Added 5.1a to describe ifil sub-chunk versioning. |
+| 4.0.3 | Milestone | September 6, 2022 | Added clarification
Renamed 32-bit SF version 3 to SF32
Overall format has been renamed to SFe (SF enhanced)
wBank bit 9 is no longer reserved.
Silicon SF banks for SF64
Added CM reset
Changed isng value
Fixed some pdta sub-chunks for SF64
Corrected sfSampleType reference from bit 15 to bit 16.
Renamed "back and forth" to "bidirectional"
Changed "improved" to "fixed" in revision log
Added a nicer diagram (can you find it?)
Fixed extraneous reference to wBank2 in section 4.
Modified information about the scom sub-chunk.
8-bit mode information updated |
+| 4.0.2 | Milestone | July 22, 2022 | Renamed 64-bit SF3 to SF64 version 3
32-bit SF3 is now 32-bit SF version 3
Changed ASCII to UTF-8
Fixed the wPreset and wBank (removed wBank2) |
+| 4.0.1 | Milestone | April 12, 2020 | First version |
+| (2.04a) | Final | (February 3, 2006) | (The date listed in the specification title, different to value in 0.1 table in SF2.04) |
+| (2.04) | Final | (September 10, 2002) | (Last version authored by E-mu until format abandoned) |
The revision history table refers to development versions as "This version" and includes the cumulative changes made to the specification since the last milestone revision.
diff --git a/sfe-specification-4.0-dev.md b/sfe-specification-4.0-rc2.md
similarity index 99%
rename from sfe-specification-4.0-dev.md
rename to sfe-specification-4.0-rc2.md
index 30e522b..1b4ed54 100644
--- a/sfe-specification-4.0-dev.md
+++ b/sfe-specification-4.0-rc2.md
@@ -1,6 +1,6 @@
# SF-enhanced (SFe) 4 specification
-## Machine readable version (Markdown) - 4.0-20241224a
+## Machine readable version (Markdown) - 4.0-rc2 (Release Candidate 2)
Copyright © 2024 SFe Team and contributors
@@ -29,7 +29,7 @@ The SFe standard has been created to provide a successor to E-mu Systems®'s Sou
| Revision | Date | Description |
| ------------ | ---------------- | ----------- |
-| This version | 24 December 2024 | n/a |
+| This version | 26 December 2024 | n/a |
For draft specification revision history, see `draft-revision-history.md` (available in the SFe specification package or on the GitHub repository).
@@ -524,7 +524,7 @@ Assume `Final` if contents are unknown.
The `WORD` value `wSFeDraftMilestone` contains the draft specification milestone or release candidate number that a bank was created to. This varies depending on the value of `achSFeSpecType`.
-The case-sensitive UTF-8 character field `achSFeFullVersion` contains the full version string of the specification used, for example `4.0-rc1a`.
+The case-sensitive UTF-8 character field `achSFeFullVersion` contains the full version string of the specification used, for example `4.0-rc2`.
If the `SFvx` sub-chunk is missing or of an incorrect size, assume these values:
@@ -1411,7 +1411,7 @@ If an implementation is unable to reach the layering requirements without crashi
- Upgrade the `ifil` version in the header from `wMajor=2`, `wMinor=4` to `wMajor=2`, `wMinor=1024`.
- Overwrite the `isng` value with `SFe 4`.
-- Create an `ISFe-list` sub-chunk with information: `SFty = "SFe-static"`, `SFvx = 4, 0, Release Candidate, 1, "4.0-rc1"`, `flag` corresponding to features used in the bank.
+- Create an `ISFe-list` sub-chunk with information: `SFty = "SFe-static"`, `SFvx = 4, 0, Release Candidate, 2, "4.0-rc2"`, `flag` corresponding to features used in the bank.
### 11.2.2 Conversion from SFe to legacy SF2.04