Skip to content
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

Release Candidate 2 #73

Merged
merged 5 commits into from
Dec 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/communication.md
Original file line number Diff line number Diff line change
@@ -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.
4 changes: 3 additions & 1 deletion draft-revision-history.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
# SFe Draft Specification Revision History 4.0-rc1
# SFe Draft Specification Revision History 4.0-20241224

| | | | |
| -------- | ----------------- | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Revision | Type | Date | Description |
| 4.0-rc2 | Development | December 26, 2024 | Made small changes to the feature flag system<br>Revised how duplicated presets between banks are handled<br>Deleted a few references to future versions |
| 4.0-rc1a | Release candidate | December 18, 2024 | Human-readable version introduced <br>Fixed some words and formatting <br>Removed reference to dynamic RIFF for now |
| 4.0-rc1 | Release candidate | December 10, 2024 | Overhauled specification structure <br>Included program and compatibility specifications, AWE ROM emulator specification and feature flags in same document <br>Removed references to future features <br>Got rid of even more redundant things <br>Added a few more sections <br>Changed some wordings <br>Added release candidate information <br>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 <br> Rewritten 0.2 <br> Separated SFe team and special thanks lists <br> Corrected a name <br> Added and changed a few definitions <br> Added concept of RIFF-type format structures and rewrote 3.1 accordingly <br> Added clarification to 5.12.3 about tree structure <br> Defined new SFty value for 8-bit samples <br> 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 <br> Added 6.2c <br> Added the SFe Compression 1.0 standard based on FluidSynth Werner SF3 August 2021 specification <br> Versioning update again <br> More consistent use of words and formatting <br> Added SiliconSFe specification <br> Clarified that no new illustrations are required for SFe 4.0. <br> Removed reference to real-time synthesis, as that feature won't be added before SFe 5.0 |
Expand Down
27 changes: 13 additions & 14 deletions sfe-specification-4.0-rc1a.md → sfe-specification-4.0-rc2.md
Original file line number Diff line number Diff line change
@@ -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-rc2 (Release Candidate 2)

Copyright © 2024 SFe Team and contributors

Expand All @@ -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 | 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).

Expand Down Expand Up @@ -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:

Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -1017,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

Expand All @@ -1027,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

Expand Down Expand Up @@ -1412,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

Expand Down