-
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Also update the readme slightly, preparing for the first release.
- Loading branch information
Showing
2 changed files
with
25 additions
and
13 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
# GDSiON | ||
|
||
**GDSiON** is a software synthesizer library implemented as a GDExtension for the [Godot engine](https://godotengine.org/). It is originally based on [SiON](https://github.com/keim/SiON), a software synthesizer for the Flash and Adobe AIR platform, and just like its predecessor _GDSiON_ is self-sufficient and allows for easy dynamic sound generation. You can drive the process using Music Macro Language (MML) notation or direct API calls. | ||
**GDSiON** is a software synthesizer library implemented as a GDExtension for the [Godot engine](https://godotengine.org/). It is based on [SiON](https://github.com/keim/SiON), a software synthesizer for Flash and Adobe AIR platforms, and just like its predecessor _GDSiON_ is self-sufficient and allows for easy dynamic sound generation. You can drive the process using a SiON-specific flavor of Music Macro Language (MML) or by making direct API calls. | ||
|
||
The name of the synthesizer should be pronounced like the word "_scion_". | ||
|
||
|
@@ -9,14 +9,16 @@ The name of the synthesizer should be pronounced like the word "_scion_". | |
|
||
## Download | ||
|
||
This project is still in active development. There is no stable version available yet. You can download the **latest unstable** build and give it a try. | ||
This project is feature complete, but there is no stable release available yet. You can download the **latest unstable** build and give it a try. | ||
|
||
The project is compatible with Godot 4.3. It is recommended to use at least the [4.3-dev5](https://godotengine.org/download/archive/4.3-dev5/) release. | ||
The project is compatible with **Godot 4.3**. | ||
|
||
As _Godot 4.3_ is still being developed, there might be compatibility issues between _GDSiON_ and available builds of the engine. The project has been developed and tested with the [4.3-dev5](https://godotengine.org/download/archive/4.3-dev5/) release, so this is the minimum recommended version for now. | ||
|
||
* **[Download for Linux](https://github.com/YuriSizov/gdsion/releases/download/latest-unstable/libgdsion-linux.zip)** | ||
* **[Download for macOS](https://github.com/YuriSizov/gdsion/releases/download/latest-unstable/libgdsion-macos.zip)** | ||
* **[Download for Windows](https://github.com/YuriSizov/gdsion/releases/download/latest-unstable/libgdsion-windows.zip)** | ||
* **[Download for Web](https://github.com/YuriSizov/gdsion/releases/download/latest-unstable/libgdsion-web.zip)** (experimental, not guaranteed to work) | ||
* **[Download for Web](https://github.com/YuriSizov/gdsion/releases/download/latest-unstable/libgdsion-web.zip)** (requires _4.3-beta1_ or later) | ||
* **[Download for Android](https://github.com/YuriSizov/gdsion/releases/download/latest-unstable/libgdsion-android.zip)** | ||
|
||
_These archives contain both release and debug binaries._ | ||
|
@@ -31,7 +33,7 @@ Please make backups when working with unstable libraries! [Bug reports](https:// | |
4. Restart the editor, and start using the synth! | ||
|
||
> [!TIP] | ||
> You can type "SiON" in the editor's built-in help search to find available classes. | ||
> You can type "SiON" in the search bar of the editor's built-in help to find available classes. Complete class and method descriptions are coming once _Godot 4.3_ reaches a more stable state (the ability to create class reference has been added very recently). | ||
## Usage | ||
|
||
|
@@ -48,7 +50,9 @@ To confirm that everything works as intended, try playing a simple tune in the M | |
driver.play("t100 l8 [ ccggaag4 ffeeddc4 | [ggffeed4]2 ]2") | ||
``` | ||
|
||
You can also play a melody by directly feeding the driver your notes, one by one or as a sequence. _GDSiON_ is capable of emulating a variety of instruments and algorithms, which you can configure for your playback. | ||
You can also play a melody by directly feeding the driver your notes, one by one or as a sequence. | ||
|
||
_GDSiON_ is capable of emulating a variety of instruments and algorithms, which you can configure for your playback. You can use `SiONVoicePresetUtil` to generate presets for over 500 instrument voices. | ||
|
||
**Check the example project for an interactive demo!** | ||
|
||
|
@@ -75,17 +79,25 @@ scons | |
There are several build options available, allowing you to target a specific platform or build configuration, enable development features and change optimization level. Please refer to [Godot documentation for developers](https://docs.godotengine.org/en/latest/contributing/development/compiling/index.html) for more details. | ||
|
||
> [!NOTE] | ||
> This project uses [Git submodules](https://git-scm.com/book/en/v2/Git-Tools-Submodules). You need to use `git clone [email protected]:YuriSizov/gdsion.git` to correctly check out everything needed for the build. The ZIP archive generated by GitHub **does not** contain submodules and is not enough to compile _GDSiON_. | ||
> This project uses [Git submodules](https://git-scm.com/book/en/v2/Git-Tools-Submodules). You need to use a git client to correctly check out everything needed for the build. The ZIP archive generated by GitHub **does not** contain submodules and is not enough to compile _GDSiON_. | ||
> ``` | ||
> git clone [email protected]:YuriSizov/gdsion.git | ||
> git submodule init | ||
> ``` | ||
## How can I help the project? | ||
First and foremost, using _GDSiON_ and reporting problems is already a great help! Please, don't hesitate to submit reports of any stability issues, incorrect behavior, or missing API access for some classes and functions. | ||
## How can I help? | ||
If you have a functional suggestion, feel free to submit it as well! But please do be patient. Authors of this project are not very well versed in audio and music production. It may take a bit of time to understand and address your needs. | ||
You can help, first and foremost, by testing _GDSiON_ and reporting any stability issues, incorrect behavior, and missing API. | ||
### Contributions and pull-requests | ||
At the current stage the project is still considered to be incomplete, and efforts are made to port the remaining classes and systems to the new platform. As a developer and a potential contributor you can assist in these efforts. Please try to get in touch first if you want to work on porting any of the missing parts. Existing FIXMEs and TODOs are open for everyone. | ||
At this stage the project is considered feature complete. The main focus right now is on testing and improving the general state of it. You can help the efforts by creating unit tests, enhancing CI with additional checks and code style validation, writing documentation, etc. For code contributions, the biggest target is addressing memory management issues. There is also a number of TODOs and FIXMEs already present in the codebase which can be a good starting point for a quality PR! | ||
We would also appreciate assistance with setting up the CI, introducing tests, code style enforcement, writing documentation, etc. Code style, code quality, and architecture/design suggestions are welcomed as well. | ||
If you want to work on a new feature, or perhaps have an idea for a better code architecture and design, please try to get in touch first. Such contributions are ultimately welcome, however the project is still going through its early days, so changes must be considered carefully. | ||
If you have a functional suggestion, feel free to submit it! But please do be patient. Authors of this project are not very well versed in audio production and currently aim to get what already exists in the original SiON project working and available in this extension. It may take a bit of time to understand and address your needs. | ||
There are also a few features that didn't make it into this initial release, namely MIDI support and Godot audio stream support for input and sampling. These are areas worth of exploration as a target for a future release of the library. | ||
## License | ||
|