-
Notifications
You must be signed in to change notification settings - Fork 1
Home
| SAFC icon as is in v1.6 |
|---|
![]() |
SAFC - is a low level (as of abstractions) midi converter (merger) with quite a few of low-level features written entirely (GUI + core) in C++.
This converter's main desire was and still is mainly repairment of corrupted midis and PPQ/Tempo change. This is why it has converter in its name. Ability to merge midis with different PPQ values came as a side effect of this.
The following manual will cover a few features one-by one and will be slowly expanding in the future. Though, i'd recommend to read this text before proceeding.
As you open and maximize SAFC - you will see the following. The first thing to keep in mind while using this version of converter - every interactable object is wrapped in some window-like object. So, you may say that SAFC is multi-windowed in some sense, though it doesn't use multiple MS Windows windows, but rather draws these windows inside the main window.
| SAFC's main window |
|---|
![]() |
Since all the UI is being drawn using a very basic framework, every single piece of UI was boiled down to the least amount of visible features. The main window can be separated into 5 solid blocks. Each will be described in a wiki subpages.
| Blocks enumeration |
|---|
![]() |
-
List manipulation buttons
1.1. Add MIDIs
1.2. Remove selected
1.3. Remove all
-
Global settings prompt triggers
-
Modules global removal shortcuts
-
Global Settings
4.1
Settings...4.2
Save as...
* - Simple Player
Since UI was entirely made-up in a special "quasi-framework", some clarifications about it are needed.
- Inner windows. Windows behave essentially in a same way as you may expect them to behave in
MS Windowsor most of any other modern user friendly OS.
You can drag them, hover one above the other, pop one of windows to the top by clicking it. Obviously they cannot be detached from the app into the OS. - Most UI elements are active only when hovered, including input fields and maps. To type into an input field or manipulate an element with a keyboard, you must hover it with the mouse. The status of said element must visibly change to reflect its activation.
- Checkboxes are colored squares without text inside: green-ish = checked, red-ish = unchecked.
- Most buttons, input fields, and checkboxes have a tooltip that appears on hover. If one is missing, please report it.
- UI scaling. Since inner width of a pixel is fixed, and cannot be changed after start - the UI might look quite too tiny on modern resolutions (4K/8K). You can always change the scaling in runtime by pressing
Alt+Arrow up/down.


