From a4e98f5755a17738bfa6e66daabf0aa3a53e84ab Mon Sep 17 00:00:00 2001 From: spessasus Date: Fri, 21 Jun 2024 11:04:38 +0200 Subject: [PATCH] update readme --- README.md | 51 ++++++++++++++++++++++++------------------ src/website/manager.js | 1 + 2 files changed, 30 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 7584e42b..ef98b9ca 100644 --- a/README.md +++ b/README.md @@ -12,19 +12,12 @@ SoundFont2 based realtime synthetizer and MIDI player written in JavaScript usin [Watch the YouTube video](https://youtu.be/6rUjjVcMXu8) +This repo is essentially 2 programs in one: +# spessasynth_lib +A flexible, powerful, and feature-packed soundfont synthesizer library for JavaScript. + +[Documentation](../../wiki/Home) ## Features -### Web app / Local Edition -- Visualization of the played sequence with effects like visual pitch bend and note on effects -- Playable keyboard with various sizes -- Integrated controller for the synthetizer with a lot of options -- Mutliple languages support, currently: english, polish, japanese -- `Web MIDI API` support (Enables physical MIDI devices to be used with the program) -- [WebMidiLink](https://www.g200kg.com/en/docs/webmidilink/) support -- Play around with the MIDI file, edit instruments controllers and more! -- Render the MIDI file (either modified or unmodified) to wav -- Comes bundled with a compressed [SGM](https://musical-artifacts.com/artifacts/855) SoundFont to get you started - -### spessasynth_lib - SoundFont2 Generator Support - SoundFont2 Modulator Support - SoundFont3 (vorbis compressed sf2) Support (thanks to [stbvorbis.js](https://github.com/hajimehoshi/stbvorbis.js)) @@ -43,28 +36,43 @@ SoundFont2 based realtime synthetizer and MIDI player written in JavaScript usin - Written in pure JavaScript using WebAudio API (Every modern browser supports it) - No dependencies -### Limitations -- It might not sound as good as other synthetizers (e.g. FluidSynth or BASSMIDI) -- The performance is questionable, especially on mobile devices +## Limitations +- The performance is questionable, especially on mobile devices. + +### Installation +1. Clone this repository. +2. copy `src/spessasynth_lib` to your project. +3. [Use the library](../../wiki/Home) -## [How to use the web app](../../wiki/How-To-Use-App) / [Check out the library documentation](../../wiki/Home) +# Web app / Local Edition +The complete GUI for spessasynth_lib, allowing remixing experimenting and playing MIDIs in the coolest way possible. -[How to use SpessaSynth in your project](../../wiki/Usage-As-Library) +[How to use](../../wiki/How-To-Use-App) +## Features +- Visualization of the played sequence with effects like visual pitch bend and note on effects +- Playable keyboard with various sizes +- Integrated controller for the synthetizer with a lot of options +- Mutliple languages support, currently: english, polish, japanese +- `Web MIDI API` support (Enables physical MIDI devices to be used with the program) +- [WebMidiLink](https://www.g200kg.com/en/docs/webmidilink/) support +- Play around with the MIDI file, edit instruments controllers and more! +- Render the MIDI file (either modified or unmodified) to wav +- Comes bundled with a compressed [SGM](https://musical-artifacts.com/artifacts/855) SoundFont to get you started -## Installation of the Local Edition +### Installation > [!IMPORTANT] > Firefox is recommended, due to unconstrained memory size. -### [Recommended high quality soundfont (better than the built-in one)](https://musical-artifacts.com/artifacts/1176) +[Recommended high quality soundfont (better than the built-in one)](https://musical-artifacts.com/artifacts/1176) **Requires Node.js** -### Windows +#### Windows 1. Download the code as zip and extract or use `git clone https://github.com/spessasus/SpessaSynth` 2. Put your soundfonts into the `soundfonts` folder. (you can select soundfonts in the program) 3. Double click the `start.bat` 4. Enjoy! -### Linux +#### Linux 1. ```shell git clone https://github.com/spessasus/SpessaSynth cd SpessaSynth @@ -79,7 +87,6 @@ SoundFont2 based realtime synthetizer and MIDI player written in JavaScript usin #### todo - make the worklet system perform good - port the worklet system to emscripten (maybe) -- fix rare clicking in volenv attack (TR-909 kick for example) ### Special thanks diff --git a/src/website/manager.js b/src/website/manager.js index ad257335..6cb0a0dd 100644 --- a/src/website/manager.js +++ b/src/website/manager.js @@ -107,6 +107,7 @@ const RENDER_AUDIO_TIME_INTERVAL = 500; }, RENDER_AUDIO_TIME_INTERVAL); const buf = await offline.startRendering(); clearInterval(interval); + SpessaSynthInfo(buf) return buf; } else